-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Fferi50
Topikgazda
válasz
DopeBob
#51260
üzenetére
Szia!
Nem nagyon látok más megoldási lehetőséget (persze ettől még lehet). Talán egyszerűbbé teszi a helyzetet, ha minden adatsort külön-külön veszel fel, úgy ahogyan a képen látod:
Ezután adatsoronként végig csinálod a következőt:
Kijelölöd az adatsort - vonal nincs - a vége időponthoz tartozó adatpontot kijelölöd - vonal automatikus.
Ezt kapod eredménynek:
Illetve:
A diagramot egy lépésben létre tudod hozni az adatok kijelölése után, majd végig lehet/kell lépkedni minden adatsoron az előbbi műveletekkel.
Persze makrót lehet írni rá, de az is időbe telik.
Üdv.
Ps. tudom, sok adatsornál nem kevés idő, de más lehetőséget most nem látok. -
Fferi50
Topikgazda
válasz
DopeBob
#47182
üzenetére
Szia!
" de nem találtam semmi olyan, hogy rejtett, szűrt, vagy bármi egyértelműbb"
Pedig van:Range.SpecialCells(xlCelltypeVisible) csak a látható cellákat tartalmazza.
Viszont figyelembe kell venni, hogy a szűrés eredménye nem feltétlenül lesz összefüggő tartomány. Ezért a szűrt tartomány egy oszlopát kell használni.
Pl.Range("A1:X100").SpecialCells(xlCelltypeVisible).Columns(1).Cells.Count
megmutatja a szűrés eredmény sorainak számát - ha fejléc van és 1 az eredmény, akkor nincs szűrt sor.
Az oszlop celláin végig lehet menni aFOR EACH .... NEXTciklussal. Ekkor csak a látható sorok adataival tudsz foglalkozni.
Üdv. -
slashing
senior tag
válasz
DopeBob
#22246
üzenetére
=SZUM(HA(HÓNAP(A1:A5)=1;B1:B5;)) ctrl+shift+enter....
Összeadja azokat ami 1. hó mivel mindenhol csak 1-esek vagy 0-ák vannak így nem kell külön nézni hogy hány 1-es van a második oszlopban mivel az összegük annyi lesz mint ahány sorban 1-es van.... ha jól gondoltam a feladatot
(#22244) botond187: egyszerű keres/csere ctrl+f ?
-
-
DopeBob
addikt
-
Delila_1
veterán
válasz
DopeBob
#22062
üzenetére
"a mai naphoz képes egy héten belülre kerül".
Ezt úgy érted, hogy az aktuális dátumhoz képest az 1 héttel előbbi, és 1 héttel későbbi dátumot tartalmazó cellákat akarod formázni? Ha igen, a képlet a lenti (persze ha A1-ben kezdődnek a dátumaid.
=ÉS(A1>=MA()-7;A1<=MA()+7)
-
pdw_ph
tag
-
válasz
DopeBob
#13453
üzenetére
Private Sub CommandButton1_Click()
Dim MyParamsRateValue As Integer
Dim MyParamsValue As Integer
Dim MyParamsCount As Integer
Dim MyRange As Range
Dim MyParams As Variant
'NMÉ képlet RÁTA paraméterének értéke
MyParamsRateValue = 25
'NMÉ képlet ÉRTÉK paramétereinek értéke
MyParamsValue = 1000
'NMÉ képlet ÉRTÉK paraméterinek a száma
MyParamsCount = 1
'A CELLA címe, ahova képletet szánod
Set MyRange = Range("A5")
MyParams = "=NPV(" & MyParamsRateValue
For i = 1 To MyParamsCount
MyParams = MyParams & "," & MyParamsValue
Next i
MyParams = MyParams & ")"
MyRange.Formula = MyParams
End Sub -
válasz
DopeBob
#13453
üzenetére
Akkor légy oly szíves vagy írni, vagy az adatlapodon feltüntetni, mert nem tudhatjuk, én meg 2010 x64-et használok, amit adok megoldást az ebben biztosan megy, de ha valaki korábbi verziót használ (és tudom, mert írta, vagy feltüntette az adatlapján, aláírásában stb), akkor igyekszem ahhoz alakítani a megoldást.

Elméletben lehet rá makrót írni.
-
válasz
DopeBob
#13450
üzenetére
"Az NMÉ képlet paramétereit be lehet valahogy egyszerűen írni, ha mondjuk 100 nagyságrendű paramétere van?"
Nem, mivel max 29 értéket lehet megadni. -
m.zmrzlina
senior tag
válasz
DopeBob
#12900
üzenetére
Nem tudom milyen Excel verziót használsz de a 2007 előttieknél ez a módszer működik. Valójában arról szól, hogy beállítod a kérdéses lap visible tulajdonságát xlSheetVeryHidden-re majd egy jelszóval levéded a projektet. Excel97-tel kipróbáltam, működik.
2007-nél kicsit más a helyzet ott ez az út makrómentes (*.xlsx) fájllal nem járható. Vagy csak én csinálok valamit rosszul.

-
-
ArchElf
addikt
válasz
DopeBob
#10531
üzenetére
Alapból nem eszi meg, mert a vesszó az tizedesjegy (tehát a bevitelt számként értelmezi - a dátumot pedig az excel úgy tárolja (egyész szám - dátum; törtszám - óra-perc-másodperc-töredék). Pl ha 12,30-at írsz be, aakorazt automatikusan 1900.01.12 07:12-re konvertálja - de ahogy előttem leírták, két oszloppal már megoldható (vagy esetleg makróval, ami az összes bevitel után lefut az oszlopra).
Esetleg makróból:
Private Sub Worksheet_Change(ByVal Target As Range)
'+ jelre átalakít dátummá
'a 3. oszlopban
Dim OSZLOPSZÁM As Integer
OSZLOPSZÁM = 3
Dim c As Range
Dim dt As Date
If (Target.Columns.Count = 1 And Target.Column = OSZLOPSZÁM) Then
For Each c In Target.Cells
If InStr(c.Value, "+") > 0 Then
dt = CDate(Replace(c.Value, "+", ":", 1, 2))
c.Value = dt
End If
Next
End If
End SubAE
-
bugizozi
őstag
válasz
DopeBob
#10278
üzenetére
Szia,
ez a probléma engem is foglalkoztat

hasonló a szitu: Excelbe szedek át adatot gombnyomásra makróval Accessből, és amikor egyszer lefutott a kód és az Excel nyitva marad, akkor az Access-t - ahogy írtad - csak írásvédettként lehet megnyitni
vannak a kódomban olyan részek, hogyMode=Share Deny Write;
....
Jet OLEDB:Database Locking Mode=0;ezeket próbáltam variálni kevés sikerrel
Valakinek valami ötlet?
Ha szükséges bemásolhatom azt a részt a programból ami az Access-re vonatkozik...Előre is köszönöm a segítő hsz-okat!

-
m.zmrzlina
senior tag
válasz
DopeBob
#10197
üzenetére
Nyilván te is észrevetted, hogy a #10200-ban lévő képlet elég könnyen hibázik.Pl ha a megnevezés két szóból áll és szóköz van közte, vagy ha előfordul benne a "db"karaktersorozat.
Ennek kiküszöbölésére nyiss a VB szerkesztőben egy új modult és másold bele ezt:
Function CSAKSZAM(szoveg As String)
Dim szam As String, i As Integer
szam = ""
For i = 1 To Len(szoveg)
If Asc(Mid(szoveg, i, 1)) <= 58 And Asc(Mid(szoveg, i, 1)) >= 47 Then
szam = szam & Mid(szoveg, i, 1)
End If
Next i
CSAKSZAM = szam
End FunctionEttől lesz egy CSAKSZAM() nevű új függvényed amit nagyon könnyen tudsz használni a következőképpen:
Ha az ÉRTÉK() fv-be beágyazod ahogyan a képen van akkor számolni is tudsz a darabszámokkal.
-
-
válasz
DopeBob
#10121
üzenetére
Igen, megoldható, a szabályban az ÉRVÉNYESSÉG-ben megadod a színezendő tartományt
(Itt a B oszlopban 5-nél nagyobb számok esetén színezi, az A oszlop megfelelő celláit) -
perfag
aktív tag
válasz
DopeBob
#9263
üzenetére
Nézd meg Chip Pearson-nál és John Walkenbach-nál. Esetleg az ozgrid-on.
-
-
válasz
DopeBob
#9249
üzenetére
Osztom perfag válaszát, azzal kiegészítve, ha már makróban kezeled a cellák zárolását(és a lapvédelemhez mondjuk jelszó is van beállítva), akkor arrról nem szabad megfeledkezni, hogy magát a makrót is levédd jelszóval, hisz ha valaki belenézhet, akkor onnan kiszedheti a jelszót és ez esetben adtunk a guanónak egy nagy pofont...

-
-
bugizozi
őstag
válasz
DopeBob
#9231
üzenetére
hja mostmár értem hogy mi a problémád

sajnis eddig én nem használtam ilyet, ehhez nem értek
bár lényegesen egyszerűb lenne kiköszöbölni vhogy ezt a hibát, mint amit én ajálottam makrós dolgot
esetleg próbáltad azt amit Delila_1 írt? sry lehet hogy próbáltad, csak azért kérdezem, mert nem írtad ide a fórumba
-
-
bugizozi
őstag
válasz
DopeBob
#9229
üzenetére
Én ilyet csináltam meloban...a tiéd szvsz annyiban különbözne hogy konkrét nevet kellene megadni meg pár dolgot kivenni és akkor láható hogy pl adott hónapban mennyit dolgozott az illető...(az orak oszlopban a végén automatice összeadja mindig az órákat)
Amúgy lehet hogy ezt a dátumos problémádat is meg lehetne valahogy oldani és az egyszerűbb lenne, de arra sajna nem tudok megoldást
-
válasz
DopeBob
#9229
üzenetére
Azért nem értem/tudom, hogy Nálad mi lehet a gond, mert Nálam(Office 2010 x64-et használok), ha beimportálom az adatokat egy megadott táblából, akkor az excel automatikusan ellátja szűrővel, mindenféle beavatkozás nélkül.
Itt a gyári NorthWind adatbázis egyik tábláját importáltam be: [link]Na most ha ebből csinálok egy kimutatást, akkor megint teljesen automatikusan ott a szűrő: [link]
Az adatok külön beimportálását természetesen ki lehet hagyni, és közvetlenül kimutatást készíteni az adott adatbázis, adott táblája alapján, csak ez esetben nem szabad megfeledkezni, hogy a Jelentésszűrő csoportba be kell "húzni"/másolni azt a mezőt, ami alapján szűrni szeretnél [Bekeretezett részek]
-
bugizozi
őstag
válasz
DopeBob
#9227
üzenetére
Szóval, az adatforrás egy ACCESS adatbázis, a lényeges részek most: dátum, név, ledolgozott óra.
Excellel szerettem volna egy egyszerű kis kimutatást, adott hónapban az emberkéknek hány ledolgozott órájuk van.Amikor az Excel külső adatot importál accessből, akkor az Adatimportálásnál van egy olyan gomb, hogy "Lekérdezés szerkesztése..." és ott te pl így szerkeszthetnéd a lekérdezést és megkapdnád az adott hónapra vonatkozó adatokat
(office 2002
de biztos van ilyen lehetőség az újban is)Esetleg ha nagyon perverz vagy akkor ezt csinálhatnád makróban, és akkor megadsz 2 cellában 2 dátumot és egy gomb lenyomásával megkapdnád az adott időszakra vonatkozóan ki mennyit dolgozott
ha érdekel segíthetek bennek, mert jelenleg ilyeneket csinálok a munkámban 
-
-
Delila_1
veterán
válasz
DopeBob
#8997
üzenetére
Mintának itt van egy olyan eseménykezelő makró.
A keresendő értéket a C oszlopban adod meg, ennek a sorában az A oszlopba beírja az fkeres függvényt, ami a D:E tartomány 2. oszlopában talált értéket adja vissza.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 Then
Application.DisplayAlerts = False
Cells(Target.Row, 1) = "=VLOOKUP(C" & Target.Row & ",D:E,2,0)"
Application.DisplayAlerts = True
End If
End SubA képletben a C helyére a hosszú útvonalat add meg, ahogy Fire írta.
-
-
-
válasz
DopeBob
#8995
üzenetére
Jaaa, az más...

Így függvényt szúrhatsz be egy cellába
Range("B1").Formula = "=SUM(A1:A10)"
Ez meg a konkrét kérdésedre
Macroban az angol függvénynevekre lehet hivatkozni, az, hogy egy magyar függvénynek mi is az angol "neve", ahhoz itt találsz segítséget: FUNCS.XLS a lényeg
-
-
DopeBob
addikt
válasz
DopeBob
#8987
üzenetére
Bocsánat tárgytalan, összegányoltam közben én is, csak előbb elnéztem valamit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = 2 Then
Cells(.Row, 1).Value = Date
End If
End With
Next Cell
End SubHátha valakinek segít
Ha a 2. oszlopba érték kerul, akkor az A oszloba beírja mellé a mai dátumot.Viszont valami nem megy, Függvényt hogy tudok beszűrni egy cellába?
-
DopeBob
addikt
válasz
DopeBob
#8027
üzenetére
Ameddig nem lesz jobb, itt egy ilyen tákolós megoldás

Egy VB Script ami elindítja az excelt megnyitja a fájlt aztán bezárja:
Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample()
Dim xlApp
Dim xlBookSet xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("C:\Temp\Munkafüzet2.xlsm", 0, True)xlApp.Quit
Set xlBook = Nothing
Set xlApp = NothingEnd Sub
Meg egy makró ami szétbobja a munkafüzetet munkalapokra
'Creates an individual workbook for each worksheet in the active workbook.
Dim wbDest As Workbook
Dim wbSource As Workbook
Dim sht As Object 'Could be chart, worksheet, Excel 4.0 macro,etc.
Dim strSavePath As StringApplication.ScreenUpdating = False 'Don't show any screen movement
strSavePath = "C:\Temp\" 'Change this to suit your needs
Set wbSource = ActiveWorkbook
For Each sht In wbSource.Sheets
sht.Copy
Set wbDest = ActiveWorkbook
wbDest.SaveAs strSavePath & sht.Name
wbDest.Close 'Remove this if you don't want each book closed after saving.
NextApplication.ScreenUpdating = True
Ha a Workbook.Open-hez teszed, lefut minden indulások.
Elvileg a VBSriptbe is be lehetne írni, hogy futtasson makrót ( xlApp.Run "MyMacro" ) de nálam nem akar menni valamiért

Az e-mail küldés meg megy akkor.

-
-
Delila_1
veterán
válasz
DopeBob
#7999
üzenetére
Fire most nem ér rá, azért szállok be a megoldásba.
Vegyük, hogy az első lapon vannak a szűrt adataid, a Munka2 lapon lesz a "népszámlálás", ott is a B1 cellában.Sub MennyiAzAnnyi()
Sheets(2).Range("A:A") = ""
Sheets(1).Range("A:A").Copy Destination:=Sheets(2).Range("A1")
Sheets(2).Range("A2").Select
Range(Selection, Selection.End(xlDown)).Select
ActiveWorkbook.Names.Add Name:="ter", RefersTo:="=Munka2!" & Selection.Address
Range("B1").FormulaArray = "=SUM(1/COUNTIF(ter,ter))"
End Sub -
-
válasz
DopeBob
#7986
üzenetére
Hali!
Ebben az esetben az A:A megadása nem célszerű, hisz akkor gondoskodni kell arról, hogy az A oszlop minden cellájában legyen valamilyen érték, ellenkező esetben #ZÉRÓOSZTÓ hibát kapsz. Másrészt meg az Excel 2003-ban 65536 sor a maximum(meg 256 oszlop), de pl 2007-ben ez már lényegesen több(több mint 1 millió sor és 16384 oszlop)
Annyit tehetsz, hogy pl elnevezel tartományokat pl az A2:A10000 NEVEK-nek és akkor a korábbi képlet így módosul
=SZUM(1/DARABTELI(NEVEK;NEVEK))Itt ha beszúrsz vagy törölsz egy sort, akkor az Excel gondoskodik róla, hogy növelje vagy csökkentse az elnevezett tartomány értéktartományát.
Az Autoszűrős dolgot nem teljesen értem, mert az nem befolyásolja a képlet működését...

Fire.
-
válasz
DopeBob
#7984
üzenetére
Hali!
Egy általad választott cellába beviszed ezt a képletet tömbképletként (F2->beilleszted az alábbi képleted->CTLR+SHIFT+ENTERT-t ütsz)
=SZUM(1/DARABTELI(A1:A6;A1:A6))
Értelem szerűen az A1:A6 tartományt oda állítod, ahol a nevek vannak.
Fire.
UI: A nevek közt nem lehet üres cella, mindnek kitöltve kell lennie ebben az esetben, ha nem így van akkor #ZÉRÓOSZTÓ hibát kapsz..
Új hozzászólás Aktív témák
- Lenovo ThinkPad T14 Gen1 Ryzen5 4650U
- Bomba ár! Lenovo X1 Yoga 1st - i7-6G I 8GB I 256SSD I 14" WQHD Sérült I HDMI I W10 I CAM I Garancia
- Bomba ár! HP ProBook 430 G5 - i3-7GEN I 4GB I 128GB SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Samsung Galaxy Z Fold6 ,Navy ,120 Hz AMOLED dupla kijelző, Snapdragon 8 Gen 3,12/512 GB,2027. 07. 11
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest






Ha szükséges bemásolhatom azt a részt a programból ami az Access-re vonatkozik...



bár lényegesen egyszerűb lenne kiköszöbölni vhogy ezt a hibát, mint amit én ajálottam makrós dolgot![;]](http://cdn.rios.hu/dl/s/v1.gif)


Fferi50
