Anzeige
Archiv - Navigation
644to648
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
644to648
644to648
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten vergleichen

Spalten vergleichen
04.08.2005 10:11:22
Roho
Ich möchte von Laufwerk C: die Dateinamen in Spalte B einlesen, mit Spalte A vergleichen und nur die noch nicht vorhandenen Dateinamen in Spalte A hinzufügen.
Wobei die alten Einträge in Spalte A unverädert bleiben.
(Die Einträge in Spalte B können Überschrieben oder gelöscht werden)
Weis jemand rat? Mir würde eine VBA lösung am besten gefallen.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten vergleichen
04.08.2005 20:05:25
Matthias
Hallo Roho,

Sub Einlesen()
Dim i As Integer, lz As Long
With Application.FileSearch
.LookIn = "c:\"
.FileType = msoFileTypeAllFiles
.Execute
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
If WorksheetFunction.CountIf(Range("A:A"), .FoundFiles(i)) = 0 Then
lz = Range("A65536").End(xlUp).Row + 1
Cells(lz, 1).Value = .FoundFiles(i)
End If
Next i
End With
End Sub

Hier wird mit einer Spalte gearbeitet, es wird einfach vor dem Schreiben in Spalte A geprüft, ob der Eintrag schon darin vorkommt (Worksheetfunction.CountIf)
Gruß Matthias
Anzeige
AW: Spalten vergleichen
05.08.2005 00:06:15
Roho
Hallo,
das hat alles wunderbar funktioniert, aber die Dateiordner von Laufwerk C: werden nicht angezeigt.
Es wäre auch schön wenn man die Pfadangabe (C:), beim Eintrag in die Liste unterbinden könnte.
Gibts hierfür auch eine Lösung?
Im voraus besten Dank für die Mühe.
AW: Spalten vergleichen
05.08.2005 00:23:21
Matthias
Hallo Roho,
Wenn du auch Verzeichnisse brauchst, ist die Dir() Funktion besser:

Sub Einlesen2()
Dim i As Integer, lz As Long, fn As String
fn = Dir("C:\*.*", 31)
Do While fn <> ""
If WorksheetFunction.CountIf(Range("A:A"), fn) = 0 Then
lz = Range("A65536").End(xlUp).Row + 1
Cells(lz, 1).Value = fn
End If
fn = Dir()
Loop
End Sub

Das Argument 31 bei Dir("C:\", 31) heißt, es sollen alle Dateien angezeigt werden (normale, schreibgeschützte, Systemdateien, versteckte, Verzeichnisse..)
Genaueres in der VBA-Hilfe (im VB-Editor mit dem Cursor auf das Wort Dir gehen und F1 drücken).
Gruß Matthias
Anzeige
AW: Spalten vergleichen
05.08.2005 08:43:18
Roho
Hallo, (ich bins schon wieder)
Die letzte Lösung war Ok aber leider werden nur die aktuellen Ordner+Dateien angezeigt. Ich wollte das nur Dateien+Ordner hinzukommen die nicht schon in der Spalte stehen und die "alten" vorhanden bleiben, auch wenn diese nicht mehr da sind (auf C:).
Weist du hier auch Abhilfe?
Besten Dank für die Geduld.
AW: Spalten vergleichen
05.08.2005 09:43:31
Matthias
Hallo Roho,
hast du das auch gestestet?
Der Code löscht keine vorhandenen Einträge in Spalte A.
Er schaut, ob ein (auf C:) gefundener Eintrag schon in Spalte A sthet, wenn nicht, hängt er ihn an.
Wo ist jetzt das Problem?
Gruß Matthias
Anzeige
AW: Spalten vergleichen
05.08.2005 19:49:55
Roho
Hallo,
ja ich habe es ausprobiert, habe Programme erstellt und gelöscht und dann das VBA gestartet, dabei wuden die alten Einträge gelöscht und nur die aktuellen Dateien+Ordner
eingelesen.

AW: Spalten vergleichen
05.08.2005 20:06:29
Matthias
Hallo Roho,
du hast den Code von hier kopiert und eingefügt?
Zumindest kein Tippfehler?
Ansonsten weiß ich auch nicht mehr weiter...
Gruß Matthias
AW: Spalten vergleichen
05.08.2005 20:22:04
Roho
Hy,
Sorry, Sorry, Sorry,
ich habe den Fehler gefunden, ich hatte am Anfang meiner VBA eine "Selection.ClearContents" Anweisung stehen!
Besten Dank für die Hilfe !

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige