Telefonszámunk: 1-472-0679

[Resolved] Office 2019 makró!

Kezdőlap Fórumok Excel programozás [Resolved] Office 2019 makró!

Topic Resolution: Resolved
28 bejegyzés megtekintése - 1-28 / 28
  • Szerző
    Bejegyzés
  • #5602
    frank
    Felhasználó

      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 errHandler

      Set 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 If

      exitHandler:
      Exit Sub
      errHandler:
      MsgBox „Could not create PDF file”
      Resume exitHandler
      End Sub

      #5603
      horvimi
      Adminisztrátor

        Mégis hol áll meg, mit ir ki?
        Rakerestel-e a problémára?

        Imre

        #5604
        frank
        Felhasználó

          Szia!

          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:
          Frank

          #5606
          horvimi
          Adminisztrátor

            Kipróbáltam Office 365-ön, simán lefut.

            Imre

            #5609
            Titok
            Felhasználó

              Format(Now(), “yyyymmdd\hhmm”)
              Vagy
              Format(Now, „yyyymmdd hhmm”)
              https://www.ms-office-forum.net/forum/showthread.php?t=357598

              #5610
              frank
              Felhasználó

                Szia!

                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:
                Frank

                #5613
                horvimi
                Adminisztrátor

                  Na.
                  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, 2 months telt el-horvimi.
                  #5615
                  frank
                  Felhasználó

                    Szia!

                    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:
                    Frank

                    #5672
                    frank
                    Felhasználó

                      Sziasztok!

                      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:
                      Frank

                      #5673
                      Titok
                      Felhasználó

                        Mit ír ki egy MsgBox Format(Now(), “yyyymmdd\_hhmm”)
                        ???

                        #5674
                        frank
                        Felhasználó

                          Szia!

                          Ez a hibaüzenet jön!
                          “Compile error:
                          Can’t find project or library”

                          #5675
                          Titok
                          Felhasználó

                            Így ?
                            Msgbox Format(DateTime.Now, „yyyy-MM-dd hh:mm:ss”)

                            #5676
                            frank
                            Felhasználó

                              Nem a tetején van a makró! Abból vettem ki azt a sort.
                              Írjam be ezt?

                              #5677
                              Titok
                              Felhasználó

                                A 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.

                                #5678
                                frank
                                Felhasználó

                                  Na 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 errHandler

                                  Set 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 If

                                  exitHandler:
                                  Exit Sub
                                  errHandler:
                                  MsgBox „Could not create PDF file”
                                  Resume exitHandler
                                  End Sub

                                  #5679
                                  Titok
                                  Felhasználó

                                    Egy ö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)

                                    #5691
                                    frank
                                    Felhasználó

                                      Szia!

                                      Í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())

                                      #5692
                                      Titok
                                      Felhasználó

                                        VBA-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?

                                        #5693
                                        frank
                                        Felhasználó

                                          Igen ezzel így működik.
                                          strTime = „2019.04.06”

                                          De ide kellene beillesztenem az aktuális dátumot legalább automatikusan.

                                          üdv:

                                          #5694
                                          frank
                                          Felhasználó

                                            Í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 errHandler

                                            Set wbA = ActiveWorkbook
                                            Set wsA = ActiveSheet

                                            strDate = 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 & strFile

                                            #5695
                                            Titok
                                            Felhasználó

                                              Persze.
                                              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.

                                              #5696
                                              frank
                                              Felhasználó

                                                Az amp után
                                                MsgBox Year(Now()) & Month(Now()) & Day(Now()) & Hour(Now()) & Minute(Now())

                                                #5697
                                                Titok
                                                Felhasználó

                                                  Szóval a Format(Now(), „yyyymmdd”) sem megy?

                                                  #5698
                                                  frank
                                                  Felhasználó

                                                    Nem 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&nap

                                                    Na kipróbáltam syntax error!Ennyit szól hozzá!

                                                    #5699
                                                    Titok
                                                    Felhasználó

                                                      És ha így:
                                                      If ho*1<10 then ho = “0” & ho

                                                      #5700
                                                      frank
                                                      Felhasználó

                                                        Úgy sem megy!

                                                        #5701
                                                        frank
                                                        Felhasználó

                                                          A Format parancsal van kínja.
                                                          Más működik

                                                          #5726
                                                          frank
                                                          Felhasználó

                                                            Sziasztok!

                                                            Ú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

                                                          28 bejegyzés megtekintése - 1-28 / 28
                                                          • Be kell jelentkezni a hozzászóláshoz.