- Hivatalos a OnePlus 13 startdátuma
- Milyen okostelefont vegyek?
- Telekom mobilszolgáltatások
- Minden a BlackBerry telefonokról és rendszerről
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Vivo X200 Pro - a kétszázát!
- Sony Xperia 1 VII - Látod-e, esteledik
- Szakít a OnePlus és a Hasselblad?
- Mindenki Z Fold7-et akar
- Köredzésen járt az Exynos 1680
Hirdetés
-
Mobilarena
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
-
Delila_1
veterán
válasz
the radish #28326 üzenetére
Az eredeti makró végére, az End Sub fölé tegyél be egy sort:
WSM.Rows(1) = ""
Ennyi az egész, ezzel a másolt lap első sorából kitörlöd az adatokat.
-
Delila_1
veterán
válasz
the radish #28322 üzenetére
Figyelmetlenül olvastam az előbb.
Egy jól működő makrót ne írjunk át azért, amit könnyedén a makró nélkül is elintézhetsz. Kijelölöd a címsort, és nyomsz egy Delete-t. Ha meg úgyis törlődik, akkor ezt sem kell billentyűzetről elvégezned.
-
Delila_1
veterán
válasz
the radish #28322 üzenetére
Rows(1).Copy WSM.Range("A1") 'fejléc másolása ezt sort töröld ki a makróból.
-
Delila_1
veterán
válasz
the radish #28199 üzenetére
Szívesen.
Én az elejére tettem.
-
Delila_1
veterán
válasz
the radish #28197 üzenetére
Ki kellene ürítenie a lapot.
Legyen helyette WSM.Cells.ClearContents -
Delila_1
veterán
válasz
the radish #28189 üzenetére
Sub masolas()
Dim tol, ig
Dim WSI As Worksheet, WSM As Worksheet
Dim sorszam 'az A oszlop értékei
Dim sorM As Long 'ahova másolsz
Set WSI = Workbooks("Innen masol.xlsm").Sheets("Innen_lap")
Set WSM = Workbooks("Masolat.xlsx").Sheets("Masolat_lap")
WSM.Cells = "" 'másolat lapjának kiürítése
WSI.Activate
Rows(1).Copy WSM.Range("A1") 'fejléc másolása
sorszam = 1: tol = 2
Do While Cells(tol, 1) <> ""
sorM = Application.CountA(WSM.Columns(1)) + 1 'ebbe a sorba kell másolni
tol = Application.Match(sorszam, Columns(1), 0)
If VarType(tol) = vbError Then 'ha nem talált tol értéket
MsgBox "Kesz"
Exit Sub
Else
ig = Application.Match(sorszam, Columns(1), 1)
Rows(tol & ":" & ig).Copy WSM.Range("A" & sorM)
Makro 'Itt indul a saját makród
sorszam = sorszam + 1 'növeljük a keresendő értéket
End If
Loop
End Sub
Sub Makro() 'ez a saját makród
MsgBox "Makró"
End Sub -
Fferi50
Topikgazda
válasz
the radish #28189 üzenetére
Szia!
Legyen egy fejléc az első sor.
Utána autoszűrő az A oszlopra, értéke 1, ami látszik - SpecialCells(xlCellTypeVisible - azt átmásolod - a fejlécet "kiütöd belőle" az új helyen. (Ezt akár makrórögzítő mellett is megteheted).
Ezután szűrő 2 és másolás, kiütés.
Ezt folytatod addig, amíg a szűrés után egyetlen sor marad látható - a fejléc.Vagy: A megkapott adatokat rendezed az A oszlop szerint és utána az egészet átmásolod (szerintem ez az igazán nyerő).
Üdv.
-
Fferi50
Topikgazda
válasz
the radish #23083 üzenetére
Szia!
Az index és a hol.van függvényt próbáld meg:
=Hol.van("*darab";2:2;0) megmondja azt az oszlopot, amelyben a darab(számok) vannak listázva, ha a fejléc a 2.sorban van. Természetesen ha másik sorban van a fejléc, akkor annak a számát kell odaírni.Ha a fejléc másik munkalapon/másik munkafüzetben van, akkor a teljes hivatkozást be kell írnod a sor elé:
=Hol.van("*darab";Munka2!2:2;0), vagy = hol.van"*darab"; '[file name.xlsx]Munka2'!2:2;0)
Ezután az Index függvénnyel megtudod kapni a tényleges értéket:
=index(Munka2!A2:I200; 3;hol.van("*darab";munka2!2:2;0)) képlettel megkapod a 3.sorban levő értét a darab fejlécet tartalmazó oszlopból.
Ezáltal nem kell pontosan tudnod, hogy a fejlécben melyik oszlop tartalmazza a darab szöveget.
A sorokat pedig természetesen folyamatosan növelned kell, erre jó például a sor függvény, amit ha paraméter nélkül írsz be, akkor az adott cella sorát tartalmazza:
Tehát, ha az 5. sorban van az adat és az 5 sorba teszed a képleted, akkor a fenti képletben az ;3; helyett beírhatod a ;sor(); képletet.
Ha másik táblára váltasz és ott újra a 3. sortól kezdődnek az értékek, akkor az addig teleírt sorok számát ki kell vonnod:
Pl. 15. sorban végződött az előző tábla, akkor a 16.sorba jön a következő tábla adata:
A képletben kicseréled a munkalap nevét, a sor() helyett pedig beírod, hogy sor()-13, mert ez adja ki a 3. sor számát, ahol a forrástáblában kezdődik az adat.
Ezt a képletet is lehúzhatod addig, amíg üressé nem válik a cella értéke (0-át nem ad vissza).
Majd névváltás, sorváltás és lehet tovább lehúzni a képletet.Remélem elég érthető volt.
Üdv.
-
lappy
őstag
válasz
the radish #21257 üzenetére
Talán az a megoldás járható hogy írsz egy saját függvényt ami félkövérbe állítja a ( ) közötti részt.
-
Delila_1
veterán
válasz
the radish #20719 üzenetére
Szívesen.
A helyedben a cbEv AfterUpdate eseményébe tennék egy feltételt
if cbHonap>"" then
'ide jön a cbHonap makrója
end ifMikor csak az évet váltod, a febr. akkor is az évre jellemző napszámot adja.
-
Delila_1
veterán
válasz
the radish #20714 üzenetére
A Munka!A1:A12-be vittem be a hónapok nevét, melléjük a B-be, hogy melyik hány napos. Februárhoz 28-at adtam.
D1-től D31-ig a napok jönnek 1-től 31-ig, és valahova a választható évszámok.A formon 3 combobox van. A cbEv rowsource tulajdonságához fixen megadtam az évek tartományát, a cbHonap-hoz az A1:A12-t. Ez utóbbihoz jön a makró.
Private Sub cbHonap_AfterUpdate()
If cbEv * 1 Mod 4 = 0 And cbHonap = "febr" Then
cbNap.RowSource = "Munka1!D1:D29"
Else
cbNap.RowSource = "Munka1!D1:D" & Application.WorksheetFunction _
.VLookup(cbHonap, Range("A2:B12"), 2, 0)
End If
End Sub -
Delila_1
veterán
válasz
the radish #20614 üzenetére
Szívesen.
Mindenki elakad, még akkor is, mikor már azt gondolja, hogy jól belejött.
-
Delila_1
veterán
válasz
the radish #20612 üzenetére
Ahol a kiválasztott adatot a füzetedbe fel akarod írni, pl. egy gomb click eseményében.
A Cdate a lapon időértékké alakítja a kiválasztott szöveges értéket, és a füzetben már tudsz vele számolni. -
Delila_1
veterán
válasz
the radish #20610 üzenetére
A füzetben a tartomány, ahonnan a combobox választható értékeit megadod, szöveg formátumúak legyenek.
A mentés pedig sheets("Munka1").range("a1")=cdate(combobox1) -
Delila_1
veterán
válasz
the radish #20607 üzenetére
Miért van szükség erre a change eseményre? A választható adatokat – gondolom – a füzetedből kapja a combobox, és a megfelelő formában jelenik meg.
Csak akkor van értelme a change makródnak, ha nem a saját értékének a megváltoztatása van benne.
-
Delila_1
veterán
válasz
the radish #20602 üzenetére
Ha a textbox1-be bevitt értékkel a label2 és label5 értékét akarod megváltoztatni, akkor csak ezt a kettőt vidd be az afterupdate eseményébe.
-
Mutt
senior tag
válasz
the radish #20594 üzenetére
Hello,
Két megoldás van:
1. A Style tulajdonságát állítsd át fmStyleDropDownList -re és/vagy
2. A MatchRequired tulajdonságot True-ra.üdv
-
Delila_1
veterán
válasz
the radish #20591 üzenetére
Szivi.
-
Delila_1
veterán
válasz
the radish #20589 üzenetére
A labelre írási részt tedd át a gomb Click eseményéből a textbox AfterUpdate eseményébe. A füzetbe írást viszont hagy a gombnál, mert a dátumon még módosíthatsz a gomb megnyomása előtt.
-
Delila_1
veterán
válasz
the radish #20579 üzenetére
-
Delila_1
veterán
válasz
the radish #20577 üzenetére
Nincs szükség a B1:C2, és D1:D7 tartományokra.
A Mutt által írt makróba egyetlen sort kell beírnod a tInput.SetFocus sor alá:Label1 = Format(Weekday(Range("A1"), 2), "dddd")
A Label1 Caption tulajdonságából töröld ki a Label1 szöveget, mert az zavaró.
Látod, itt nem textbox, hanem label szerepel, mert ezt nem a felhasználónak kell megadnia, hanem a bevitt dátum alapján a makró írja be.
A füzetben is elég lenne a B1 képlete, ahol a formátumot az egyéni kategóriában nnnn-nek állítod be. Erre csak akkor van szükség, ha a lapodon is rögzíteni akarod, hogy a bevitt dátum milyen napra esik. Még jobb, ha egyáltalán nincs függvény a lapon, hanem a weekday-es sor után a makróba beírt
range("b1")=label1 sorral fixen megadod a cellába a napot. -
Mutt
senior tag
válasz
the radish #20572 üzenetére
Vmi ilyenre gondoltál?
-
Mutt
senior tag
válasz
the radish #20568 üzenetére
Hello,
Létrehoztam egy "userformot", bemásoltam az általad leírtakat, de nem tudom működésre bírni.
A macro-ba kell valami hivatkozás, hogy menjen?A userformot be kell tölteni, majd meg kell jeleníteni. Ezt mind egy modulban, a userformon kívül kell megtenned.
A betöltés elhagyható, csak akkor érdemes külön foglalkozni vele, ha a form elindítása időigényes és nem akarod hogy a felhasználó erre várjon.Tipikusan egy form elindítása így megy:
Sub SajatForm()
UserForm.Show
End SunEkkor a UserForm Initialize eseményében megadott eljárások futnak le és megjelenik a form.
A form bezárása annyiban tér el, hogy a UserForm egyik eleméhez (többnyire egy Bezárás gombhoz) írod, nem pedig egy külön modulba. A bezárás Unload paranccsal megy, el is lehet rejteni a Hide-al, ekkor memórában marad, de nem látható.
Ide felraktam egy egyszerű mintát.
...TextBox1.Text = Format$(Date, "yyyy.mm.dd")
miért csak a mai dátummal tölti ki a cellát amit ráadásul át sem tudok írni.A Date VBA függvény, amit használsz mindig az aktuális dátumot adja meg.
A szövegdonboz vezérlőnek valószínű a locked tulajdonsága True-ra van állítva. Esetleg az Enabled pedig Falsera, ekkor szürke a tartalma.Az egyik nagy hiányosság, hogy alapból nincs olyan vezérlő az Excelben, amely a dátumválasztást segíti. Korábbi változatokban volt egy DatePicker, de az megszűnt, helyette mindenki vmit összerakott és azt használja. Én ezt használom.
üdv
-
the radish
senior tag
válasz
the radish #20565 üzenetére
Private Sub TextBox1_Change()
TextBox1.Text = Format$(Date, "yyyy.mm.dd")
End SubMost már csak egy kérdésre nem tudom a választ, mégpedig, hogy miért csak a mai dátummal tölti ki a cellát amit ráadásul át sem tudok írni.
-
the radish
senior tag
válasz
the radish #20561 üzenetére
Még mindig a formátum:
Private Sub TextBox1_Change()
TextBox1.Value = Format(TextBox1, "yy-mmm-dd")
End SubA végeredmény azonban:
Mit és hol szúrok el?
-
Delila_1
veterán
válasz
the radish #20529 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #20526 üzenetére
CommandButton1.ForeColor = &HFF& 'piros
CommandButton1.ForeColor = &H8000& 'zöld -
Delila_1
veterán
válasz
the radish #20524 üzenetére
Private Sub UserForm_Activate()
Application.Wait Now() + TimeValue("00:00:03")
gomb.Visible = True
gomb.Enabled = True
End Sub3 mp után látható, és engedélyezett lesz a gomb. Nincs szükség mindkét beállításra.
Azt is megteheted, hogy a gomb felirata pl. piros, míg le nem telt a késleltetés, majd megváltozik. -
the radish
senior tag
válasz
the radish #20512 üzenetére
DARABTELI függvénnyel sikerült megoldani
-
Mutt
senior tag
válasz
the radish #20500 üzenetére
Hello,
1. A makró futását követően x ideig ne lehessen újra futtatni, akkor sem, ha újraindítjuk az excelt.
A registryben lehet rögzíteni adatokat a SaveSetting függvénnyel, kiolvasni GetSetting-el lehet, törolni pedig DeleteSetting-el.
Pihi = TimeSerial(0, 30, 0) '30 perc kell 2 futtatás között
'HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ProgiM bejegyzés alatt lesz megtalálható az érték
'kiolvassuk az UtolsóFutás értékét, ha nem létezik akko 0-nak vesszük
'ha eltelt 30 perc akkor futhat, különben hibaüzenetet adunk
If CDate(GetSetting("ProgiM", "Defaults", "UtolsoFutas", 0)) + Pihi < Now Then
'eredeti makró rész jön ide
'mentjük az utolsó futtatás idejét
SaveSetting "ProgiM", "Defaults", "UtolsoFutas", Now
Else
MsgBox ("A makró futtatása még " _
& Format(CDate(GetSetting("ProgiM", "Defaults", "UtolsoFutas")) + Pihi - Now, "N") _
& " percig nem engedélyezett!")
End If2 ...az első vesszőig lévő tartalomra
Makró nélkül is megoldható.=HA(HIBÁS(BAL(A1;SZÖVEG.KERES(",";A1)-1));A1;BAL(A1;SZÖVEG.KERES(",";A1)-1))
A 18684-es hozzászólásban egy függvényt is bemutattam, amely itt is használható.
üdv
-
the radish
senior tag
válasz
the radish #20478 üzenetére
Elnézést, a szerkesztési idő lejárt.
Az idő formátum megoldva, figyelmetlen voltam. (
Date, Time)Már csak a 2. részben kérem a segítségeteket.
Köszönöm.
-
Mutt
senior tag
válasz
the radish #20380 üzenetére
Hello,
Meg lehet azt oldani, hogy a helyette függvénnyel két, vagy több szót is kicseréljek egy menetben?
Saját függvénnyel megoldható.
Public Function Cserek(bemenet, ParamArray keres())
Dim i As Long
Cserek = bemenet
For i = LBound(keres) To UBound(keres) Step 2
Cserek = WorksheetFunction.Substitute(Cserek, keres(i), keres(i + 1))
Next i
End Function.Használata: =Cserek("56 alma 64 banán";"alma";"magyar";"banán";"déli")
Termeszetesen cella hivatkozásokat is használhatsz. Ha páratlanul adod meg a szövegpárokat, akkor hibára fut!
üdv
-
Delila_1
veterán
válasz
the radish #20415 üzenetére
Szívesen. Sajnos nem tudok jobbat. A második függvény a B2-re hivatkozzon.
-
Delila_1
veterán
válasz
the radish #20380 üzenetére
A második részt a C2-be tedd.
-
Delila_1
veterán
válasz
the radish #20305 üzenetére
=DÁTUM(ÉV(MA())-1;HÓNAP(MA());NAP(MA()))
-
Mutt
senior tag
válasz
the radish #20176 üzenetére
Hello,
... "X" ... legyen mondjuk a munka1 A1 celllában.
MyNote = "Helyezz a nyomtatóba " & Sheets("Munka1").Range("A1") & " papírt!"
üdv
-
válasz
the radish #20176 üzenetére
Dim Answer As String
Dim MyNote As String
Dim Papirlap As String
Papirlap=Worksheets("Munka1").Cells(1,1)
'Place your text here
MyNote = "Helyezz a nyomtatóba " & Papirlap & " papírt!"
'Display MessageBox
Answer = MsgBox(MyNote, vbQuestion + vbYesNo, "Lapok nyomtatása")
If Answer = vbNo Then
MsgBox "Akkor majd később.", vbInformation, "Ejnye-bejnye..."
'Code for No button Press
Else
'Code for Yes button Press -
the radish
senior tag
válasz
the radish #20172 üzenetére
Közben megoldódott.
Ha valakit érdekel:
[link] -
Delila_1
veterán
válasz
the radish #20167 üzenetére
Örülök, hogy sikerült.
-
Delila_1
veterán
válasz
the radish #20165 üzenetére
Range("B" & sor & ":C" & sor).Copy
Sheets("MásikLap").Range("A1").PasteSpecial Paste:=xlPasteValuesNem lesz tapsikoló figura, ha kijelölöd a képletet, és Konvertálatlan gombot nyomsz.
-
Delila_1
veterán
válasz
the radish #20163 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #20157 üzenetére
Sub Feltetel()
Dim sor As Long
For sor = 1 To 18
If Cells(sor, "A") = 1 Then
Cells(sor, "B").Copy Sheets("MásikLap").Range("A1")
Sheets("MásikLap").Range("A1:I30").PrintOut Copies:=1, Collate:=True
End if
Next
End SubA másolás területét írd át a saját területed címére.
-
Delila_1
veterán
válasz
the radish #20138 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #20133 üzenetére
Adatok | Szűrő | Irányított szűrő | Csak az egyedi rekordok megjelenítése.
-
Delila_1
veterán
válasz
the radish #20131 üzenetére
Sub Feltetel()
Dim sor As Long
For sor = 1 To 18
If Cells(sor, "A") = 1 Then Cells(sor, "B").Copy Sheets("MásikLap").Cells(sor, "I")
Next
End SubA feltétel sorában a másolás helyét (Copy és szóköz után) írd át.
-
válasz
the radish #20133 üzenetére
adatok/adateszközök/ismétlődések eltávolítása?
-
Delila_1
veterán
válasz
the radish #20125 üzenetére
A kérdésed szerint ha az A1 cella üres, akkor legyen, vagy ne valami. Később azt írod, hogy ha 0, akkor... Nem mindegy. Melyik az igazi?
Az első 7 sor helyett ezt írhatod, és ez a többi részre is vonatkozik:
Sheets("00").Range("S7,U7:V7").Copy
Sheets("Vágólap").Range("I2").PasteSpecial Paste:=xlPasteValuesAz utána következő részben láthatóvá teszed a Csekk.xls füzetet, de ezzel nem az lesz az aktív. Nem derül ki számomra, hogy melyik füzet tartományát akarod nyomtatni.
Miért szelektálsz néhány cellát a mentés előtt (Range("A6:C6").Select)?
Többször írod a feltételt, de mindegyik rész csak akkor fusson, ha egy bizonyos cella értéke 0. Ha az érték 1, akkor mi fusson, hiszen nincs "következő" ?
-
Mutt
senior tag
válasz
the radish #20018 üzenetére
Hello,
A SZUMHA függvényben használhatóak a joker karakterek (* tetszőleges számú karaktert, a ? egy karaktert tud helyettesíteni).
A képleted tehát: =SZUMHA(A:A;"Horváth*";B:B)
Ha pedig az első szöközig van a keresési kifejezésed, akkor: =SZUMHA(A:A;BAL(A1;SZÖVEG.KERES(" ";A1))&"*";B:B)
üdv
-
Delila_1
veterán
válasz
the radish #20018 üzenetére
A képlet, ha a szöveged az A1 cellában van:
=JOBB(A1;HOSSZ(A1)-SZÖVEG.TALÁL(")";A1)-1)*1
Ezt másolhatod a többi adatod mellé.
Szerk.: a szövegegyezésről szóló részt nem értem.
-
lappy
őstag
válasz
the radish #19961 üzenetére
Nem a macro szedi szét neked? Talán azt kellene megnézni, hogy mit is csinál és utána azt a részt törölni.
-
lappy
őstag
válasz
the radish #19892 üzenetére
megoldás erre, ami akár negatív, akár pozitiv érték és ha közben van üres cella is
=INDIREKT(CÍM(HA(HOL.VAN(-100000000;E:E;-1)>HOL.VAN(0;E:E;-1);HOL.VAN(-100000000;E:E;-1);HOL.VAN(0;E:E;-1));5))
ahol E az ötödik oszlop, amiben keresünk.
-
Mutt
senior tag
válasz
the radish #19859 üzenetére
Hello,
Azaz a B oszlopban is csak addig az celláig legyen SZUM érték, ameddig a C oszlopban is van érték.
Delila_1 megoldása mellett ez is működik:
=SZUM(ELTOLÁS(B1;0;0;ÖSSZESÍT(15;6;SOR(C:C)/ÜRES(C:C);1)-1))C-oszlop első üres mezőjéig összesíti a B-oszlopot.
üdv
-
Delila_1
veterán
válasz
the radish #19861 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #19859 üzenetére
Egy cellában kikerestetjük, a C oszlopban hányadik sorban van az utolsó érték. Keresési értékként egy olyan nagy számot adunk meg, ami biztosan nem szerepel a C oszlopban. A cella legyen a példában az E1.
=HOL.VAN(999999;C:C;1)Az összegző képlet
=SZUM(INDIREKT("B1:B"&$E$1))A második képletben a $E$1 helyére beillesztjük annak a képletét, és akkor nincs szükség az eredeti kereső függvényre a külön cellában.
=SZUM(INDIREKT("B1:B"&HOL.VAN(999999;C:C;1))) -
Mutt
senior tag
válasz
the radish #19489 üzenetére
Hali,
Jó lesz az, csak a csv formátumot is hozzád kell fűznöd vagyis kell elé a &-jel.
DIM valtozo$
valtozo$=Cstr(Range ("A1").Value) 'biztosra megyünk hogy szöveges értéket kapjunk
ActiveWorkbook.SaveAs Filename:=utvonal$ & valtozo$ & ".csv", FileForm.....Fontos, hogy az útvonal végén legyen backslash. Ezt így tudod ellenőrizni és javítani.
If Right(utvonal$, 1) <> "\" Then utvonal$ = utvonal$ & "\"
üdv
-
thee
csendes tag
válasz
the radish #19341 üzenetére
-
Mutt
senior tag
válasz
the radish #19327 üzenetére
Hello,
Én ritkán szoktam megszakítani egy programot, de a lenti példában láthatod hogy a Msgbox-ra adott választ egy változóba lehet tenni, és ez alapján tudsz elágaztatni.
Sub KilepDemo()
Dim lngOsszeg As Long
Dim blnVege As Boolean
Dim vResponse
lngOsszeg = 0
blnVege = False
Do
'bekérünk egy számot
vResponse = Application.InputBox("Adj meg egy egyjegyű számot:", "Összegzés (eddig " & lngOsszeg & ")", , , , , , 1)
'ha egynél többet adtak meg, akkor rákérdezünk a kilépésre
If Len(vResponse) > 1 Then
vResponse = MsgBox("Hé nem figyeltél!", vbOKCancel, "Irgum-burgum")
'ha okét nyom akkor kilépünk a ciklus végén
If vResponse = vbOK Then blnVege = True
Else
'ha egy számot adott meg akkor számolunk vele
lngOsszeg = lngOsszeg + vResponse
End If
'addig maradunk a ciklusban míg ki nem léphetünk
Loop Until blnVege
End Subüdv.
-
Delila_1
veterán
válasz
the radish #19325 üzenetére
Feltételnek azt a kérdést tettem be, hogy az A1 értéke egyenlő-e a B1-ével.
Sub valami()
If Cells(1) = Cells(2) Then
Exit Sub
Else
MsgBox "Hé, nem figyeltél!", vbOKOnly + vbExclamation, "Figyelmeztetés"
End If
End Sub -
Mutt
senior tag
válasz
the radish #19290 üzenetére
Hello,
Ha jól értem, akkor a sSheetsToPrint = "Export,Import" részben interaktívan szeretnéd a lapok nevét.
Ez a kódrészlet megoldja ezt:sSheetsToPrint = ""
For Each cell In Range("A1:Z1")
If cell <> "" Then
sSheetsToPrint = sSheetsToPrint & cell & ","
End If
Next
sSheetsToPrint = Left(sSheetsToPrint, Len(sSheetsToPrint) - 1)Az első mondatodból kiindulva van alternatív megoldás is?
Én csak akkor tenném külön szubrutinba őket, ha teljes más eredményt/feldolgozást kell elvégezni 0 és 1 esetén. Ha van átfedés, akkor egyben hagynám mert ekkor csak 1x kell a közös részt megírni és csak a megfelelő részeken ágaznék el.üdv.
-
Mutt
senior tag
válasz
the radish #19287 üzenetére
Hello,
Lehet az általad megírt módon is megcsinálni.
pl.
Sub Indit()
Select Case ActiveSheet.Range("A1")
Case 0
makro0
Case 1
makro1
End Select
End Sub
Sub makro0()
MsgBox "Első ág"
End Sub
Sub makro1()
MsgBox "Másik ág"
End Subüdv
-
Mutt
senior tag
válasz
the radish #19283 üzenetére
Hello,
Az ÖSSZEFŰZ függvény szöveges eredményt ad, ezért hiába állítasz be számformátumot, nem fogja használni.
Az én javaslatom a SOKSZOR függvény.
pl. =SOKSZOR(0;3-HOSSZ(HÓNAP(MA())))&HÓNAP(MA())A fenti példa mindig 3 karakter hosszan fogja megjeleníteni az aktuális hónap sorszámát; annyiszor ismétli a 0-t, hogy 3 karakteres legyen a végeredmény.
üdv.
-
the radish
senior tag
válasz
the radish #19283 üzenetére
Megoldva... Bocsi, megint láma voltam.
-
Mutt
senior tag
válasz
the radish #19277 üzenetére
Hello,
Ha D-oszlopban vannak a sor azonosítók, akkor az INDIREKT függvény segít:
=HA(INDIREKT("Q"&D3)<CD$1;0;INDIREKT("M"&D3))üdv
-
the radish
senior tag
válasz
the radish #19268 üzenetére
Szerintem lükén kérdeztem:
Szóval nem jövök rá, és nem sorozatról van szó a képletben.
Köszi előre is.
-
Mutt
senior tag
válasz
the radish #19259 üzenetére
Hello,
Szóval van egy számhalmaz pl. 100-10000 között. Kéne belőle az első, ami 1000-nél nagyobb...
CSE-képlet:
{=INDEX(A:A;MATCH(1;((A:A>100)*(A:A<10000));0))}üdv.
-
lappy
őstag
válasz
the radish #19259 üzenetére
Szia!
Ez a képletet használd:
=INDEX(A1:A20;HOL.VAN(MIN(ABS(A1:A20-D1));ABS(A1:A20-D1);0))
De CSE módban!! (Ctrl + Shift + Enter)
és a segédcellába az 1 nagyobb számot írd be majd. -
Mutt
senior tag
válasz
the radish #19232 üzenetére
Hello,
Megnéztem 2003-asban és a #Szám# hiba azért van mert a teljes oszlopra hivatkozva túlcsordul a számítás; de egy sorral kevesebbre már jó. Szóval A:A hivatkozás helyett A1:A65535 -el működik. Természetesen ha van sejtésed, hogy az adatsor maximum mennyi elemet tartalmazhat, akkor inkább azt add meg a gyorsabb működés érdekében.
Az első képlet pedig egy tömbképlet, vagyis kapcsos zárójelek nélkül kell bevinni, majd a végén Ctrl+Shift+Entert nyomni. Ez is jól működik ha nem teljes oszlopra hivatkozol.
üdv
-
Mutt
senior tag
válasz
the radish #19225 üzenetére
Hello,
A listából az a szám kell, melyek a kritériumnál kisebb...
CSE képlettel (C1-ben van a határérték, A oszlopban a számok):
{=MAX((A:A<C1)*(A:A))}Szorzatösszeggel pedig:
=SZORZATÖSSZEG(MAX((A:A<C1)*(A:A)))Ha két szám (C1,C2) közötti legnagyobb kell akkor:
{=MAX((A:A<C1)*(A:A>C2)*(A:A))}
=SZORZATÖSSZEG(MAX((A:A<C1)*(A:A>C2)*(A:A)))A képletek 0-t adnak vissza ha nincs megfelelő szám!
üdv.
-
Delila_1
veterán
válasz
the radish #19228 üzenetére
Ugyanannyiszor szívesen.
-
Delila_1
veterán
válasz
the radish #19225 üzenetére
A
If WorksheetFunction.Max(Range("A:A")) > krit Then
sor helyesen:
If WorksheetFunction.Max(hol) > krit Then
-
Delila_1
veterán
válasz
the radish #19225 üzenetére
Írtam hozzá egy kis makrót. Mivel ez funkció, úgy kell alkalmaznod, mint bármelyik függvényt.
A cellába, ahol az eredményt akarod megkapni, az=Max_1(A1:A7;E1)
képletet írd be. A képlet 2 paramétere a keresés területe (hol As Range), és a kritérium helye (krit As Range).
A felsorolt értékeidet az A1:A7 tartományba írtam, a 120-at az E1-be.
Function Max_1(hol As Range, krit As Range)
Dim szam As Single, CV As Object
If WorksheetFunction.Max(Range("A:A")) > krit Then
For Each CV In hol
If CV < krit And CV > szam Then szam = CV
Next
Else
Max_1 = krit.Value
End If
Max_1 = szam
End Function -
Delila_1
veterán
válasz
the radish #19223 üzenetére
Akkor feltétel (Ha függvény) nélkül írd be a NAGY függvényt.
A kérdésed az előbb nem így szólt. -
Delila_1
veterán
válasz
the radish #19221 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #19219 üzenetére
A példában az E1 cella tartalmazza azt a számot, aminél kisebb max értékre van szükséged.
=HA(MAX(A:A)<E1;MAX(A:A);NAGY(A:A;2))
-
lappy
őstag
válasz
the radish #19211 üzenetére
Pontosan miből mit szeretnél?
-
Delila_1
veterán
válasz
the radish #19209 üzenetére
Nincs mit.
-
Delila_1
veterán
válasz
the radish #19207 üzenetére
D1 cella -> =MAX(A:A)
E1 cella -> =INDEX(A:B;HOL.VAN(D1;A:A;0);2) -
Delila_1
veterán
válasz
the radish #19119 üzenetére
Sub direktor()
Dim utvonal$
utvonal$ = Range("B1")
ChDir utvonal$
ActiveWorkbook.SaveAs Filename:=utvonal$ & "proba.xls"
End SubNem szerencsés dolog személy szerint valakinek címezni a kérdésedet. Ha nincs itt a címzett, vagy nem tud-, nem akar válaszolni, akkor várhatsz a sorodra.
-
Delila_1
veterán
válasz
the radish #19115 üzenetére
Ha előtte más meghajtó volt aktuális, előbb át kell váltanod a chdir paranccsal a D-re.
ChDir "D:\"
ActiveWorkbook.SaveAs Filename:="export.txt", FileFormat:=xlTextMSDOSRemélem, jól írtam, mert nem próbáltam ki.
-
Delila_1
veterán
válasz
the radish #19108 üzenetére
Megjegyzel?!!!
Szívesen.
-
Delila_1
veterán
válasz
the radish #19104 üzenetére
kr1 = ">=" & CDate(Sheets("Munka1").Range("A1"))
kr2 = "<=" & CDate(Sheets("Munka2").Range("B2")) -
Delila_1
veterán
válasz
the radish #19101 üzenetére
Az R3 képlete =HA($C3="A";KICSI($A:$A;SOR()-2);"")
Ezt másold az S3-ba, és az "A"-t írd át "B"-re. -
Delila_1
veterán
válasz
the radish #19101 üzenetére
A változót így add meg:
kr1= ">=" & sheets("Munka1").range("a1") -
Delila_1
veterán
válasz
the radish #19098 üzenetére
Szívesen.
-
Delila_1
veterán
válasz
the radish #19096 üzenetére
"A Munka1 lap A1 cellájába írd be idézőjelek nélkül a >=0:00:45 szöveget", de az is jó, amit most írtál, csak akkor a cellában ne szerepeljenek relációs jelek (=, >, <).
-
Delila_1
veterán
válasz
the radish #19092 üzenetére
A Munka1 lap A1 cellájába írd be idézőjelek nélkül a >=0:00:45 szöveget, a Munka2 lap B2 cellájába pedig <=0:02-t. A két cella értékét 1-1 változóba teszed, és kritériumként ezeket a változókat adod meg.
kr1 = Sheets("Munka1").Range("A1")
kr2 = Sheets("Munka2").Range("B2")
Sheets("Filter").Select
ActiveSheet.Range("$A$1:$C$5001").AutoFilter Field:=3, Criteria1:= _
kr1, Operator:=xlAnd, Criteria2:=kr2 -
the radish
senior tag
válasz
the radish #19090 üzenetére
Köszi, régen tudtam és meg is találtam, már nem aktuális.
Új hozzászólás Aktív témák
- Játékkulcsok olcsón: Steam, Uplay, GoG, Origin, Xbox, PS stb.
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- Adobe Előfizetések - Adobe Creative Cloud All Apps - 12 Hónap
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- Azonnali készpénzes AMD Radeon RX 6000 sorozat videokártya felvásárlás személyesen/csomagküldéssel
- MacBook Pro 16 2021 M1 Pro 32GB 512GB 1 év garancia
- HP ZBook 15 G6 i7-9850H 32GB RAM 1000GB SSD NVIDIA Quadro T2000 15.6 FHD 1 év garancia
- Eladó Karcmentes Xiaomi Mi 14T Pro 12/512GB / 12 hó jótállással
- Konzol felvásárlás!! Nintendo Switch
Állásajánlatok
Cég: FOTC
Város: Budapest