Microsoft Excel

Herbers Excel/VBA-Archiv

if dir problem


Betrifft: if dir problem
von: Pascal
Geschrieben am: 28.11.2018 10:30:48

Hallo Zusammen,

hab da ein kleines Problem und ich komme einfach nicht auf dir Lösung.
Mein Makro soll gucken ob es im Ordner schon eine PDF mit Namen "N******" gibt. Falls nicht diese erstellt werden, falls doch unter 1N****** abgelegt werden, und so weiter.

If Dir(ThisWorkbook.Path & "\N" & Range("U25")) = "" Then
ChDir ThisWorkbook.Path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\N" & Range("U25"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
GoTo Ende
Else:
GoTo Sektion2

End If

Sektion2:
If Dir(ThisWorkbook.Path & "\1N" & Range("U25")) = "" Then
ChDir ThisWorkbook.Path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ThisWorkbook.Path & "\1N" & Range("U25"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
GoTo Ende
Else:
MsgBox "schon X Nutzermitteilungen im ordner abgelegt"

Ende:
End If
End Sub


hoffe jemand kann mich da auf den richtigen weg bringen.

Mit freundlichen Grüßen
Pascal

  

Betrifft: AW: if dir problem
von: Daniel
Geschrieben am: 28.11.2018 10:56:05

Hi

da du nicht weißt, wieviele Versionen es schon gibt, solltest das ganze mit einer Schleife programmieren, die solange den Zähler erhöht, bis die Datei gespeichert werden konnte:

Dim Datei as string, Dat as string
dim Zähler as string

Datei = ThisWorkbook.Path & "\###N" & Range("U25")

Do
    Dat = Replace(Datei, "####", iif(zähler = 0, "", Zähler))
    if Dir(Dat) = "" Then
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dat, ....
        Exit Do
    end if
    Zähler = Zähler + 1
Loop
gruß Daniel



  

Betrifft: AW: if dir problem
von: Pascal
Geschrieben am: 28.11.2018 12:18:03

Dat = Replace(Datei, "###", IIf(Zähler = 0, "", Zähler))

funktioniert leider nicht.


  

Betrifft: AW: if dir problem
von: Pascal
Geschrieben am: 28.11.2018 12:19:18

Danke dir schonmal Daniel.
das klingt vernünftig
allerdings nimmt der den folgenden befehl nicht


Dat = Replace(Datei, "###", IIf(Zähler = 0, "", Zähler))


  

Betrifft: AW: if dir problem
von: Daniel
Geschrieben am: 28.11.2018 12:38:46

du musst Zähler als LONG deklarieren.
Gruß Daniel