Abfrage VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Abfrage VBA
von: Jens
Geschrieben am: 14.09.2015 15:30:12

Hallo zusammen,
ich bin der Jens und versuche mich ein wenig in Excel VBA. Leider habe ich ein kleines Problem, mit dem ich nicht recht weiter komme.
Ich möchte eine Datei auf Knopfdruck über den Butto "Speichern" in einem bestimmten Ordner als PDF ablegen. Der Dateiname wird aus der Zelle "C3" genommen.
Wenn ich jetzt auf "Speichern" klicke möchte ich, dass Excel vorher Prüft, ob die Datei schon vorhanden ist. Ist das der fall soll ein Fenster mit einem Warnhinwei geöffnet werden.
So sieht es bissher bei mir aus:

Sub PDFAblegen()
'
' PDFAbfrage Makro
'
'
    If Dir("C:\Users\DFPJLU\Desktop\Range("C3").pdf")  Then
        MsgBox "Datei bereits vorhanden"
    Else
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\DFPJLU\Desktop\" & Range("C3"), Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        True
        
        End If
End Sub
Speichern als PDF ist kein Problem. Das Problem ist die Abfrage vorher. Leider komme ich hier nicht weiter.
Es gibt immer die Fehlermeldung "Listentrennzeichen"
Hoffe auf Hilfe ;-)
Grüße
Jens

Bild

Betrifft: AW: Abfrage VBA
von: Rudi Maintaire
Geschrieben am: 14.09.2015 16:06:13
Hallo,
If Dir("C:\Users\DFPJLU\Desktop\" & Range("C3") &".pdf") <>"" Then
Gruß
Rudi

Bild

Betrifft: AW: Abfrage VBA
von: Jens
Geschrieben am: 15.09.2015 09:29:33
Danke für die Antwort! Es klappt jetzt super.
Kann mir trotzdem jemand erklären wie das richtig zu verstehen ist?
Warum muss ich nach """& Range("C3")""" den Aufbau so machen? &".pdf") <>"" Then
Also warum &".pdf" ? Vielleicht kann mir das ja jemand verständlich erklären.
Grüße
Jens

Bild

Betrifft: AW: Abfrage VBA
von: Matthias
Geschrieben am: 15.09.2015 15:09:49
Hallo Jens,
ganz einfach: Alles was innerhalb von Anführungszeichen steht wird als Text wahrgenommen. Um also deinen Namen mit der Range-Anweisung zu holen, muss dieser außerhalb der Anführungszeichen stehen.
Text-Segmente und Anweisungen müssen durch ein "&" verbunden werden. In deinem Beispiel werden drei Teilstücke verbunden: Der Pfad & Name & Endung ("Text" & Range-Anweisung & "Text").
Der letzte Teil mit der Endung ist nur notwendig wenn dieser noch nicht in deinem Namen (Zelle C3) enthalten ist.
lg Matthias

Bild

Betrifft: AW: Abfrage VBA
von: Jens
Geschrieben am: 16.09.2015 08:27:08
Hallo Matthias,
danke für die Antwort und die verständliche Erklärung.
Grüße
Jens

Bild

Betrifft: AW: Abfrage VBA
von: Jens
Geschrieben am: 17.09.2015 08:44:33
Hallo zusammen,
nun habe ich wieder eine Frage.
Ich würde gerne aus einer Excel Datei einen Bereich kopieren und diesen in eine andere Excel Datei einfügen an einer bestimmten Stelle.
Dieses soll über einen Button geschehen.
Der Name der ersten Excel Datei ist immer anders. Ich habe es mir so vorgestellt:
In das Feld "C3" gebe ich eine Nummer ein (z.B 3001717). Wenn ich jetzt den Button drücke sucht Excel in einem vorgegebenen Verzeichnis die Datei mit dem Namen 3001717.xlsm und Kopiert aus dieser den Bereich (A1:H60).
Dieses soll nun in der zweiten Datei eingefügt werden an der Stelle "C3"
Dieses möchte ich dann auch mit anderen Dateien machen. Alles soll in einer Excel zusammen laufen.
Am Ende möchte ich dann ein PDF erstellen und dieses Ablegen.

Bild

Betrifft: AW: Abfrage VBA
von: matthias
Geschrieben am: 17.09.2015 11:30:38
Hallo Jens,
bitte benutze die Suchfunktion des Forums. Wie man per Makro eine andere Datei öffnet und dann dort etwas rauskopiert ist schon hundertfach behandelt worden.
Den Namen kannst du als String aus Pfad und Zellenwert zusammensetzen:

Datei = "C:\Desktop\Test" & Range("C3").Value
lg Matthias

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Abfrage VBA"