Kezdőlap › Fórumok › Excel programozás › [Resolved] Office 2019 makró!
- This topic has 27 hozzászólás, 3 résztvevő, and was last updated 5 years, 7 months telt el by frank.
-
SzerzőBejegyzés
-
2019-02-11-18:05 #5602
Sziasztok!
Az alábbi makróval nem működik a pdf mentés office 2019 alatt. Ma telepítettem – mivel gyorsabb és újabb függvények vannak benne – de ezt a makrót valamiért nem hajlandó futtatni! Tudna valaki segítenimi a kínja? Az előző ofice 2016 alatt tökéletesen működött!
Köszönettel:
Frank
Sub PDFActiveSheet()
‘www.contextures.com
‘for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandlerSet wbA = ActiveWorkbook
Set wsA = ActiveSheet
strTime = Format(Now(), „yyyymmdd\_hhmm”)‘get active workbook folder, if saved
strPath = wbA.Path
If strPath = „” Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & „\”‘replace spaces and periods in sheet name
strName = Replace(wsA.Name, ” „, „”)
strName = Replace(strName, „.”, „_”)‘create default name for savng file
strFile = strName & „_” & strTime & „.pdf”
strPathFile = strPath & strFile‘use can enter name and
‘ select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:=”PDF Files (*.pdf), *.pdf”, _
Title:=”Select Folder and FileName to save”)‘export to PDF if a folder was selected
If myFile <> „False” Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
‘confirmation message with file info
MsgBox „PDF file has been created: ” _
& vbCrLf _
& myFile
End IfexitHandler:
Exit Sub
errHandler:
MsgBox „Could not create PDF file”
Resume exitHandler
End Sub2019-02-11-18:30 #5603Mégis hol áll meg, mit ir ki?
Rakerestel-e a problémára?Imre
2019-02-11-19:04 #5604Szia!
Igen próbáltam megoldani de nem jutottam sokra.
Itt áll meg:strTime = Format(Now(), „yyyymmdd\_hhmm”)A makró innen van: https://www.contextures.com/excelvbapdf.html
A harmadik változat működik de az nem megfelelő mert nem oda ment ahová szeretném és nem ír megfelelő fájlnevet!
Üdvözlettel:
Frank2019-02-11-20:51 #5606Kipróbáltam Office 365-ön, simán lefut.
Imre
2019-02-12-08:21 #5609Format(Now(), “yyyymmdd\hhmm”)
Vagy
Format(Now, „yyyymmdd hhmm”)
https://www.ms-office-forum.net/forum/showthread.php?t=3575982019-02-12-08:26 #5610Szia!
Nos ezt írja ki!
„Compile error:
Can’t find project or library”
Az office 2016 dobozost szedtem le és installáltam az office 2019-es dobozos változatot!
A 365 túl drága hosszú távon, bár ez nem ide tartozik!Üdv:
Frank2019-02-13-13:59 #5613Na.
Az irodai gépemen 2019 van.
Azon is megy.Szóval itt valami más lesz a probléma.
Nem nagyon tudom, hogy mi, de a leveszem a régit és felteszem az újat környékén keresgélnék.
Nálam olyan telepítés volt, hogy nem volt előtte másik office.
Javaslatom:
A makró szerkesztőben:Tools-> References
Itt nézd meg, hogy van-e olyan tétel, ahol van pipa, de mellette az van, hogy Missing.ha van ilyen, vedd ki a pipát.
Mentés, bezárás, újra nyitás
???
Imre
- A hozzászólás módosításra került: 5 years, 9 months telt el-horvimi.
2019-02-14-07:52 #5615Szia!
99% hogy ott a probléma, én is kipróbáltam az irodai gépen tökéletesen fut!
Nekem Mac van paralell portos windows-al. ez lehet a baj bár az office 2016 alatt simán működött!
Megnéztem a Tools részt is semmi gond vele!
Lehet bele kellene írni a pontos elérési utat, mert szerintem az a baja. Csak ennyire ebbe nem merültem bele, merthogy sosem írtam makrót.
A számlázóm is csinál néha olyan problémát – mint utólag eszembe jutott – hogy nem lát bizonyos mappákat.
Azután gondol egyet és semmi gond.
Nekem elég lenne az ha az adott lapról készítene egy pdf mentést egy általam megjelölt mappába időbélyeggel.
Érdekes, hogy a harmadik makróval viszont gond nélkül működik de az ugye kérdezés nélkül ment abba a mappába ahol maga az excel fájl található.
Vagyis mégis látja az excel dokumentum helyét.
Na itt van vége a tudományomnak.
Marad a kézzel mentés, illetve azért hogy ne tévesszek – volt már, hogy nem váltottam át pdf mentésre és fél napot a képletekkel kellett szórakoznom, mert máshová mentettem az egész táblát – egy makró rögzítéssel oldottam meg egyenlőre a dolgot. Végigkattintgatom és rögzítem, így is működik csak ezen sincs időbélyeg mikor készült!
Pedig a 2019-es nagyon tetszik mert gyors valóban.Üdv:
Frank2019-03-02-17:17 #5672Sziasztok!
Ha az alábbi sort kiveszem a makróból akkor működik a többi rész, vagyis kiválaszthatom hová mentsem a pdf lapot és jelzi ha elvégezte.
strTime = Format(Now(), „yyyymmdd\_hhmm”)Emiatt azonban nem csatol a fájlnévhez dátumot ami fontos lenne!
Mi lehet a kínja.
A Format parancs nem tetszik neki ahogy észrevettem.
Üdvözlettel:
Frank2019-03-04-08:40 #5673Mit ír ki egy MsgBox Format(Now(), “yyyymmdd\_hhmm”)
???2019-03-04-14:00 #5674Szia!
Ez a hibaüzenet jön!
“Compile error:
Can’t find project or library”2019-03-04-14:06 #5675Így ?
Msgbox Format(DateTime.Now, „yyyy-MM-dd hh:mm:ss”)2019-03-04-14:11 #5676Nem a tetején van a makró! Abból vettem ki azt a sort.
Írjam be ezt?2019-03-04-14:13 #5677A formátumkód lesz rossz, azért áll meg. Amíg nem tudod kiiratni a dátumot, addig ne fog menni.
Próbálkozz pár variációval.2019-03-04-14:40 #5678Na kipróbáltam ugyanaz a hibajel.
Itt a kód a kiegészítéssel.
Sub PDFActiveSheet()
‘www.contextures.com
‘for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandlerSet wbA = ActiveWorkbook
Set wsA = ActiveSheet
MsgBox Format(DateTime.Now, „yyyy-MM-dd hh:mm:ss”)‘get active workbook folder, if saved
strPath = wbA.Path
If strPath = „” Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & „\”‘replace spaces and periods in sheet name
strName = Replace(wsA.Name, ” „, „”)
strName = Replace(strName, „.”, „_”)‘create default name for savng file
strFile = strName & „_” & „2019” & „.pdf”
strPathFile = strPath & strFile‘use can enter name and
‘ select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:=”PDF Files (*.pdf), *.pdf”, _
Title:=”Select Folder and FileName to save”)‘export to PDF if a folder was selected
If myFile <> „False” Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
FileName:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
‘confirmation message with file info
MsgBox „PDF file has been created: ” _
& vbCrLf _
& myFile
End IfexitHandler:
Exit Sub
errHandler:
MsgBox „Could not create PDF file”
Resume exitHandler
End Sub2019-03-04-14:52 #5679Egy ötlet:
MsgBox Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now())
Ha msgbox Now()-t írsz, azt kiírja?
(mert ha jól értem, akkor strTime=”2222.13.32.25:61:62″ esetén (ha nem függvénnyel veszed ki az értéket) jól menne)2019-03-06-14:05 #5691Szia!
Így kiírja vagy az évet vagy a hónapot stb. de a pontosvesszőnél elakad az egész sort nem fogadja el!
Set wbA = ActiveWorkbook
Set wsA = ActiveSheet
MsgBox Day(Now())Ez már nem tetszik neki a pontos vesszőt jelzi hibának.
MsgBox Day(Now())MsgBox Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now())2019-03-06-14:10 #5692VBA-ban nincs pontosvessző, csak ha cellába akarsz képletet beíratni, akkor a képlet szövegébe ” között lehet.
Én nem látom a pontosvesszőket, valami szar beállítás miatt.
Azok ott veszzők lesznek.
De hol is van neked pontosvessződ?2019-03-06-14:14 #5693Igen ezzel így működik.
strTime = „2019.04.06”De ide kellene beillesztenem az aktuális dátumot legalább automatikusan.
üdv:
2019-03-06-14:29 #5694Így elkezdett működni! Wow.
A fájlnevet azonban nem írja ki így,(2019.03.06) csak így,(2019.3.6).
Ez már apróság de ezen tudok valamivel változtatni?Sub PDFActiveSheet()
‘www.contextures.com
‘for Excel 2010 and later
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strDate As String
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandlerSet wbA = ActiveWorkbook
Set wsA = ActiveSheetstrDate = Year(Now()) & „.” & Month(Now()) & „.” & Day(Now())
strTime = Hour(Now()) & „:” & Minute(Now())‘get active workbook folder, if saved
strPath = wbA.Path
If strPath = „” Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & „\”‘replace spaces and periods in sheet name
strName = Replace(wsA.Name, ” „, „”)
strName = Replace(strName, „.”, „_”)‘create default name for savng file
strFile = strName & „_” & strDate & „_” & strTime & „.pdf”
strPathFile = strPath & strFile2019-03-06-14:38 #5695Persze.
ho=Month(Now())
If ho<10 then ho = „0”&ho
nap = day(Now())
If nap<10 then nap = „0”&nap
strTime= Year(Now())&ho&nap
De ezek szerint a formatban megadott formátumot nem ismeri fel, az az alaphiba.2019-03-06-14:40 #5696Az amp után
MsgBox Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now())2019-03-06-14:44 #5697Szóval a Format(Now(), „yyyymmdd”) sem megy?
2019-03-06-15:00 #5698Nem csak ahogy az előbb leírtam.
még ezt megpróbálom, de tulajdonképpen azért amit akartam működik.
ho=Month(Now())
If ho<10 then ho = “0”&ho
nap = day(Now())
If nap<10 then nap = “0”&nap
strTime= Year(Now())&ho&napNa kipróbáltam syntax error!Ennyit szól hozzá!
2019-03-06-15:07 #5699És ha így:
If ho*1<10 then ho = “0” & ho2019-03-06-15:35 #5700Úgy sem megy!
2019-03-06-15:47 #5701A Format parancsal van kínja.
Más működik2019-03-18-16:32 #5726Sziasztok!
Újabb felfedezésre jutottam! Az össze táblázatomban működik a „Format” parancs csak abban az egyben nem amiben használni szeretném.
Ha nyitok egy üres munkafüzetet és oda bemásolom a makrót azt csatolom ahhoz amiben használni szeretném működik.
Ha az üres füzet bezáródik a makró, újra nem hajlandó a Format parancsot használni.
Más hasonló táblában – szintén én készítettem – tökéletesen működik.
Mi lehet az xlsm fájl hibája? Az összes ugyanazt a vezérlőt használja nem?Köszönettel:
Frank -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.