ich habe folgendes Problem:
Ich muss aus 3 Excel-Dateien jeweils eine Spalte in eine neue Excel-Datei importieren bzw. kopieren. 2 dieser 3 Spalten haben zwischen 1.000 und 2.000 Zeilen die 3. Datei hat um die 30.0000 Zeilen. Diese 3 Spalten muss ich dann in der neuen Excel-Datei miteinander auf die selben Inhalte vergleichen und in den nebenstehenden Spalten anmerken, ob ein doppelter Inhalt in den Spalten besteht.
Ein Problem dabei ist, dass die Dateinamen sich ändern können, daher wäre es wahrscheinlich am besten mit einer Inputbox die Dateien und die jewieligen Spalten auswählen zu können.
Einen Code für das Kopieren der Spalten habe ich gefunden:
Sub test()
Dim icnt As Long
'Variablendeklarationen
Dim rngTarget As Range, rngSource As Range
'Bei Fehler weiter mit nächstem Kommando
On Error Resume Next
'Kopierbereich auswaehlen
Set rngSource = Application.InputBox("Wählen Sie den Bereich zum Kopieren aus:", _
"Bereich kopieren", , , , , , 8)
If rngSource Is Nothing Then Exit
Sub ' Auswahl abgebrochen
'Zielzelle auswaehlen - obere linke zelle des Einfuegebereichs
'Hinweis: Keine Fehlerpruefung auf Auswhal mehrere Zellen
Set rngTarget = Application.InputBox("Wählen Sie die Zelle zum Einfügen aus:", _
"Bereich kopieren", , , , , , 8)
'Fehlerbehandlung Ende
On Error GoTo 0
If rngTarget Is Nothing Then Exit
Sub ' Auswahl abgebrochen
'Bereich kopieren
rngSource.Copy
'Daten einfuegen
rngTarget.PasteSpecial
'Spaltenbreite kopieren
rngTarget.PasteSpecial Paste:=8
'Schleife ueber alle Zeilen
For icnt = rngTarget.Row To rngTarget.Row + Selection.Rows.Count - 1
'Zeilenhoehe uebernehmen
Rows(icnt).RowHeight = rngSource.Rows(icnt).RowHeight
'Ende Schleife ueber alle Zeilen
Next
End Sub
Dieser Code macht seinen Job eigentlich auch ganz gut. Nur ich muss die Dateien bereits davor geöffnet haben, es wäre schöner wenn ich die Datei in einem Dialog auswählen und dann die zu kopierende Spalte markieren könnte.
Und eines der Dateien hat um die 30.000 Zeilen. Die Zeile hier, die kopiert werden soll, hat aber nur um die 9.000 Zeilen beschrieben. Diese zu kopieren klappt einfach mit dem Code nicht. Excel hängt sich jedes mal auf.
Kann mir jemand helfen?