Hirdetés
- Meggyi001: Kuponok....
- gerner1
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- lezso6: Miért is jó, ha dohányzol?! Megéri rászokni!
- Mr Dini: Mindent a StreamSharkról!
- Brogyi: CTEK akkumulátor töltő és másolatai
- MasterDeeJay: Gigabyte GA-B350M-D2 - AM4 lap 2016-ból, amikor még nem volt Ryzen!
-
LOGOUT
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
daddy9 #45520 üzenetére
Szia!
Először a második kérdésedre a válasz:
"egy Modulban megírt SUB-ot (vagy Function-s) hogyan tudok "meghívni" a Userform egy gombjával?"
Ha általános modulban vannak az eljárásaid, akkor egyszerűen az eljárás nevét kell megadnod, de használhatod a Modulnév.Eljárásnév formát is.sub Gomb_click
eljárásnév
end sub
A fentiekből következik, hogy nem kell a Userform kódlapjára átmásolnod a modulokban levő eljárásokat, ha használni szeretnéd azokat.
Egyébként mit jelent az, hogy nem látja a SUB a bemásolt Function-t? Mi a hibaüzenet?
Üdv. -
Delila_1
veterán
válasz
daddy9 #42948 üzenetére
A tiédben sem volt.
Az aktuális oszloptól BALRA lévőt fedte fel, amit az előző lépésben elrejtettél, ha éppen üres volt a 36. sor az oszlopban.
A második feltétel abszolút felesleges volt. Azt vizsgálta, hogy az aktuális oszloptól balra lévőben van-e adat, és ha igen, felfedte, de mivel az előző ciklusban nem rejtette el, hiszen nem volt üres, semmi szükség erre a sorra a makróban.
Mi az, hogy nyisson új oszlopot? Szúrjon be az aktuális oszloptól balra egyet? Melyik esetben? Ha az aktuális üres, vagy nem? -
Delila_1
veterán
válasz
daddy9 #42944 üzenetére
Ezt a makrót modulba kellene tenni, nem eseményvezéreltbe. Bár így is jó, bármelyik cellára kattintasz, lefut.
Modulba:Sub Rejt()
Dim LastColumn, i As Integer
Application.ScreenUpdating = False
LastColumn = 27 'Last Column
For i = 5 To LastColumn 'Lopping through each Column
If Cells(36, i) = "" Then
Columns(i).EntireColumn.Hidden = True
Else
Columns(i).EntireColumn.Hidden = False
End If
Next
Application.ScreenUpdating = True
End Sub -
Delila_1
veterán
válasz
daddy9 #42788 üzenetére
Közben megadtad a választ arra, hogy ki mikor milyen oklevelet kap. Itt a módosított makró:
Sub Pdf()
Dim sor As Integer, oszlop As Integer, utvonal As String, FN As String
Application.ScreenUpdating = False
oszlop = 3
Do While Cells(4, oszlop) <> ""
utvonal = Cells(24, oszlop)
If Cells(7, oszlop) = "fiú" Then sor = 25 Else sor = 26
FN = Cells(sor, oszlop)
Sheets(Cells(sor, 1)).Select 'lapra állás
With Sheets("Adatbekérő")
Range("A7") = .Cells(6, oszlop) & ", " & .Cells(5, oszlop)
Range("A13") = .Cells(8, oszlop)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=utvonal & FN, _
Quality:=xlQualityStandard, IgnorePrintAreas:=False, OpenAfterPublish:=False
If .Cells(9, oszlop) = "Ügyes" Then
Sheets(.Cells(sor + 1, 1)).Select 'lapra állás
If .Cells(7, oszlop) = "fiú" Then sor = sor + 2 Else sor = sor + 1
FN = .Cells(sor, oszlop)
Range("A7") = .Cells(6, oszlop) & ", " & .Cells(5, oszlop)
Range("A13") = .Cells(8, oszlop)
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=utvonal & FN, _
Quality:=xlQualityStandard, IgnorePrintAreas:=False, OpenAfterPublish:=False
End If
End With
Sheets("Adatbekérő").Select
oszlop = oszlop + 1
Loop
Application.ScreenUpdating = True
MsgBox "Az oklevelek el vannak mentve", vbInformation
End Sub -
válasz
daddy9 #42785 üzenetére
Szerintem erre a Word körlevél bőven elég, nem kell makró, meg ilyenek:
https://support.office.com/hu-hu/article/k%C3%B6rlev%C3%A9l-funkci%C3%B3-haszn%C3%A1lata-a-t%C3%B6meges-e-mailhez-levelekhez-c%C3%ADmk%C3%A9khez-%C3%A9s-bor%C3%ADt%C3%A9kokhoz-f488ed5b-b849-4c11-9cff-932c49474705 -
Fferi50
Topikgazda
válasz
daddy9 #33262 üzenetére
Szia!
Egy "szép" tömbképlet megoldja a problémádat:
=HELYETTE(JOBB(A1;HOSSZ(A1)-NAGY((KÖZÉP($A$1;SOR($A1:$A50);1)="\")*SOR($A1:$A50);2));"\";"")
A tömbképletet Ctrl+Shift+Enter billentyű kombóval lehet bevinni, a szerkesztőlécen a képletet kapcsos zárójelbe teszi az Excel maga.Ha hosszabb lenne az elérési út mint 50 betű, akkor a $A50 helyett írj nagyobb számot. Ha az elérési út végén nincs "\" ,akkor egyszerűbb a képlet (ez is tömbképlet!):
=JOBB(A1;HOSSZ(A1)-MAX((KÖZÉP($A$1;SOR($A1:$A50);1)="\")*SOR($A1:$A50)))
Üdv.
Új hozzászólás Aktív témák
- Xbox Series X|S
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Meggyi001: Kuponok....
- BMW topik
- Battlefield 6
- Hivatalos a OnePlus 13 startdátuma
- Borderlands 4
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- A Motorola is Air mobillal készül
- Vezeték nélküli fülhallgatók
- További aktív témák...
- Asus TUF Gaming A17 - 17.3"FHD IPS 144Hz - Ryzen 7 6800H - 16GB - 512GB - Win11 - RTX 3050 Ti - HUN
- HIBÁTLAN iPhone 14 128GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3528, 93% Akkumulátor
- Dell Latitude 3340 Core i3-4005U CPU hibás laptop
- Magyarország piacvezető szoftver webáruháza
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest