Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
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
Inhaltsverzeichnis

schleifen einbauen?

schleifen einbauen?
19.02.2017 13:29:48
Thomas
Hallo excelfreunde,
ich habe in der Spalte b eine liste mit dateinamen von Datein.
Nun würde ich gern die Datein anhand dieser liste löschen.
dazu habe ich folgenden ansatz gefunden.
Sub datein_löschen()
Dim Pfad As String
Dim Datei As String
Pfad = "C:\Users\Thomas\Desktop\Neuer Ordner\testmacrokopieren\"
Datei = Dir(Pfad & "*.txt")
Do While Datei  ""
Kill Pfad & Datei  ' .
Datei = Dir 'nächste Datei suchen
Loop
End Sub

dieser ansatz löscht gnadenlos alle textdatein aus dem ordner.
Ich schaffe es einfach nicht diesen "*" aus "*.txt" in eine schleife zu bauen so das die spalte b abgearbeitet wird.
alternativ könnte ich auch ohne probleme den kompletten pfad in die spalte b schreiben
("C:\Users\Thomas\Desktop\Neuer Ordner\testmacrokopieren\beispiel .txt )
hatt jemand eine idee und könnte mir sie aufzeigen?
habt besten dank schon mal im voraus
mfg thomas

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: schleifen einbauen?
19.02.2017 14:00:33
onur
Hi,
Kill Pfad & Datei ist falsch ("&" wird nur von Excel benutzt), nimm:
Kill Pfad + Datei
Gruß
Onur
AW: schleifen einbauen?
19.02.2017 14:01:43
Werner
Hallo Thomas,
du musst eine Schleife über deine Einträge in Spalte B laufen lassen. Ist aber mit Vorsicht zu genießen, die Dateien werden ohne jede Sicherheitsabfrage gelöscht.
Sub datein_löschen()
Dim Pfad As String
Dim Datei As String
Dim Dateiname As String
Dim i As Long
Dim loLetzte As Long
Pfad = "C:\Users\Thomas\Desktop\Neuer Ordner\testmacrokopieren\"
loLetzte = Sheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row 'Tabelle ggf. anpassen
For i = 1 To loLetzte 'von Zeile 1 bis letzte befüllte in B ggf. anpassen
Dateiname = Sheets("Tabelle1").Cells(i, 2).Value 'Tabelle ggf. anpassen
Datei = Dir(Pfad & Dateiname & ".txt")
If Not Datei = vbNullString Then
Kill Pfad & Datei
Else
MsgBox "Datei " & Dateiname & ".txt im Verzeichnis nicht vorhanden."
End If
Next i
End Sub
Gruß Werner
Anzeige
AW: schleifen einbauen?
19.02.2017 14:03:51
Michael
Hi Thomas,
mit dem Dir durchläufst Du alle im Ordner vorhandene Textdatein.
Du mußt stattdessen die Liste durchlaufen:
Sub datein_löschen()
Dim Pfad As String, Datei As String
Dim Spalte as String
Dim Zeile as Long
Pfad = "C:\Users\Thomas\Desktop\Neuer Ordner\testmacrokopieren\"
Spalte = "B"
Zeile = 2 ' wenn 1 = Überschrift
While Range(Spalte & Zeile)  ""
Datei = Range(Spalte & Zeile).Value & ".txt" ' falls Datei ohne Endung
' Datei = Range(Spalte & Zeile).Value        ' falls Datei mit Endung
If Dir(Pfad & Datei) "" Then Kill Pfad & Datei
Zeile = Zeile + 1
Wend
End Sub
Schöne Grüße,
Michael
Anzeige
AW: schleifen einbauen?
19.02.2017 14:06:44
onur
Ich habe offensichtlich am Thema vorbei gepostet, sorry!
das passt perfekt
19.02.2017 15:12:19
Thomas
Hallo Werner, Michael und onur,
habt alle recht vielen vielen dank für eure Hilfe.
Beide Vorschläge laufen durch und sind richtig schnell.
Ich werde mich bestimmt wegen der msgbox für die Version von werner entscheiden.
Die version von michael werde ich aber auch noch viel untersuchen denn den befehl Wend habe ich noch nie gelesen oder gehört.
besten dank auch noch für den hinweis das es kein zurück mehr gibt? wenn man so etwas nicht beachten hat man 100 punkte. Deshalb baue ich lieber noch zum anfang vom macro eine ja, nein abbrechen Abfrage einbauen.
ich wünsche euch noch ein schönes WE
viele liebe grüsse thomas
Anzeige
Gerne u. Danke für die Rückmeldung. o.w.T.
19.02.2017 16:54:40
Werner
freut mich, außerdem...
19.02.2017 16:56:19
Michael
Hi,
guck mal hier: http://de.wikibooks.org/wiki/VBA_in_Excel/_Schleifen
Do While ... Loop und While ... Wend machen prinzipiell das Gleiche - ich persönlich bevorzuge die zweite Variante, weil sie mich mehr an Pascal erinnert...
Happy Exceling,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige