Anzeige
Archiv - Navigation
1676to1680
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 11:14:52
Datei
Hallo zusammen,
ich habe ein Makro welches mich Bilder auswählen lässt und anschließend in einen Ordner schiebt, das funktioniert problemlos. Jetzt kann es aber sein, dass es diese Bezeichnung in dem Ordner bereits vorhanden ist. Wenn dem so ist kommt ein Fehler.
Besteht die Möglichkeit erst zu prüfen ob es diese Bezeichnung bereits gibt und wenn ja das ausgewählte Bild umbenennen damit es sich im dafür vorgesehenen Ordner ablegen lässt!?
Sub Artikelbild_auswählen_und_verschieben()
Dim strPfad As String
Dim NewPfad As String
Dim Datei As String
NewPfad = "C:\Testprogramm\Datenbanken\Artikelbilder\"
Dim fso As Object
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Bitte Bild auswählen"
.Filters.Clear
.Filters.Add "Bild Datei", "*.jpg" 'zeigt nur JPG Datein an
.Filters.Add "Bild Datei", "*.bmp" ' zeigt nur bmp Datein an
If .Show = -1 Then
strPfad = .SelectedItems(1)
Datei = Dir(strPfad)
End If
End With
If Datei = "" Then 'hör auf
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile strPfad, NewPfad
UserForm6.Dateipfad_Bild.Caption = NewPfad & Datei 'Dateipfad_Bild.Text = strPfad ' fügt  _
den Dateipfad in die Textbox ein
UserForm6.Image1.Picture = LoadPicture(NewPfad & Datei) 'lädt das Bild als Vorschau
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 14:36:39
Datei
Hi,
die Klasse FileSystemObject enthält die Methode "FileExists(FilePath)" mit der Du das bewerkstelligen könntest.
LG
AW: Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 15:11:43
Datei
Danke Rob,
habe Google zu deinem Hinweis FileExists(FilePath) befragt und folgendes zusammengebaut was nicht so recht funktioniert.
If FileExists(strPfad, NewPfad) then
MsgBox"bereits vorhanden"
end if
AW: Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 16:47:10
Datei
Du musst die Instanz für die Klasse von FileSystemObject angeben, also z.B.:
If fso.FileExists(strPfad, NewPfad) then

AW: Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 16:54:46
Datei
Außerdem darfst Du nur einen Pfad angeben, also entweder strPfad oder NewPfad.
Anzeige
AW: Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 17:03:34
Datei
Alles klar, habe ich probiert, jdoch funktionieren beide Varianten nicht:
If fso.FileExists(NewPfad, Datei) Then
MsgBox "bereits vorhanden"
If fso.FileExists(NewPfad & If fso.FileExists(NewPfad & Datei) Then
MsgBox "bereits vorhanden"
Die Dopplung kann nur im neuen Pfad vorkommen, der aus Pfad+Dateiname des neuen Bildes besteht.
AW: Wenn Name von Datei bereits vorhanden,dann..
04.03.2019 19:15:25
Datei

If fso.FileExists(NewPfad & Datei) Then
Wenn das immer noch nicht funktioniert, dann poste mal wo Du den Code in Dein Makro eingefügt hast.
AW: Wenn Name von Datei bereits vorhanden,dann..
05.03.2019 07:58:06
Datei
Guten Morgen Rob,
er markiert mir die Zeile "If fso.FileExists(NewPfad & Datei) Then" Objektvariable oder With-Blockvariable nicht festgelegt.
hier mein Code:
Sub Artikelbild_auswählen_und_verschieben()
Dim strPfad As String
Dim NewPfad As String
Dim Datei As String
NewPfad = "C:\Testprogramm\Datenbanken\Artikelbilder\"
Dim fso As Object
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Bitte Bild auswählen"
.Filters.Clear
.Filters.Add "Bild Datei", "*.jpg" 'zeigt nur JPG Datein an
.Filters.Add "Bild Datei", "*.bmp" ' zeigt nur bmp Datein an
If .Show = -1 Then
strPfad = .SelectedItems(1)
Datei = Dir(strPfad)
End If
End With
If Datei = "" Then 'hör auf
If fso.FileExists(NewPfad & Datei) Then
MsgBox "ja"
Else
Set fso = CreateObject("Scripting.FileSystemObject")
fso.MoveFile strPfad, NewPfad
UserForm6.Dateipfad_Bild.Caption = NewPfad & Datei 'Dateipfad_Bild.Text = strPfad ' fügt  _
den Dateipfad in die Textbox ein
UserForm6.Image1.Picture = LoadPicture(NewPfad & Datei) 'lädt das Bild als Vorschau
End If
End Sub

Anzeige
AW: Wenn Name von Datei bereits vorhanden,dann..
05.03.2019 08:33:13
Datei

Sub Artikelbild_auswählen_und_verschieben()
Dim strPfad As String
Dim NewPfad As String
Dim Datei As String
NewPfad = "C:\Testprogramm\Datenbanken\Artikelbilder\"
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFilePicker)
.Title = "Bitte Bild auswählen"
.Filters.Clear
.Filters.Add "Bild Datei", "*.jpg" 'zeigt nur JPG Datein an
.Filters.Add "Bild Datei", "*.bmp" ' zeigt nur bmp Datein an
If .Show = -1 Then
strPfad = .SelectedItems(1)
Datei = Dir(strPfad)
End If
End With
'If Datei = "" Then 'hör auf
If fso.FileExists(NewPfad & Datei) Then
MsgBox "ja"
Else
fso.MoveFile strPfad, NewPfad
UserForm6.Dateipfad_Bild.Caption = NewPfad & Datei 'Dateipfad_Bild.Text = strPfad ' fügt  _
den Dateipfad in die Textbox ein
UserForm6.Image1.Picture = LoadPicture(NewPfad & Datei) 'lädt das Bild als Vorschau
End If
End Sub

Anzeige
AW: Wenn Name von Datei bereits vorhanden,dann..
05.03.2019 08:36:38
Datei
Zur Erklärung: Du musst die Klasse FileSystemObject vorher initiieren, bevor Du damit arbeiten kannst:
Set fso = CreateObject("Scripting.FileSystemObject")
Außerdem noch die folgende Zeile auskommentieren. Das ist eine zusätzliche if-Schleife, die Du hier nicht mehr benötigst.
 If Datei = "" Then 'hör auf
Oder am besten den korrigierten Code nochmal komplett kopieren/einfügen.
AW: Wenn Name von Datei bereits vorhanden,dann..
05.03.2019 08:43:03
Datei
Jetzt funktioniert es, danke dir!!
AW: Wenn Name von Datei bereits vorhanden,dann..
05.03.2019 09:24:17
Datei
Gerne!

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige