mit VBA Teile einer unbekannten Excel Datei in eine neue kopieren
Hallo Forum User, bastla, biber und alle die anderen,
ich bin mal wieder kurzzeitig von meinen Servern weg und stehe erneut vor einem kleinen VBA Problem.
Ich möchte per Makro aus einer unbestimmten Datei Teile in meine Datei kopieren.
Dieser erste Code soll den gesammten Inhalt von der Quelldatei in meine Zieldatei kopieren. Das Makro starte ich von der Zieldatei heraus.
Bis jetzt kopiert er den Inhalt der Quelldatei in die Zwischenablage. Wie wechsel ich zur Zieldatei zurück, ohne ihren Namen dafür angeben zu müssen? (falls nicht möglich natürlich auch mit Namen)
Anschließend möchste ich in der Zieldatei "ausmisten", d.h. Zeilen Löschen wenn in Spalte xy nicht "Y" drin steht und ähnliches. Welchen Befehl kann man nehmen, um nur z.B. die ersten beiden Buchstaben einer Zelle ab zu fragen? (mit den WENN Funktionen kenne ich dies, aber mit VBA?)
Grüße, Gregor
ich bin mal wieder kurzzeitig von meinen Servern weg und stehe erneut vor einem kleinen VBA Problem.
Ich möchte per Makro aus einer unbestimmten Datei Teile in meine Datei kopieren.
Dieser erste Code soll den gesammten Inhalt von der Quelldatei in meine Zieldatei kopieren. Das Makro starte ich von der Zieldatei heraus.
Bis jetzt kopiert er den Inhalt der Quelldatei in die Zwischenablage. Wie wechsel ich zur Zieldatei zurück, ohne ihren Namen dafür angeben zu müssen? (falls nicht möglich natürlich auch mit Namen)
Application.Dialogs(xlDialogOpen).Show
Sheets("Tabelle1").Range("1:65535").Copy
'wie wechsel ich hier zur Zieldatei zurück?
Sheets("TT").Range("1:65535").PasteSpecial _
Paste:=xlPasteValues
Sheets("TT").Activate
Sheets("TT").Cells(1, 1).Select
Anschließend möchste ich in der Zieldatei "ausmisten", d.h. Zeilen Löschen wenn in Spalte xy nicht "Y" drin steht und ähnliches. Welchen Befehl kann man nehmen, um nur z.B. die ersten beiden Buchstaben einer Zelle ab zu fragen? (mit den WENN Funktionen kenne ich dies, aber mit VBA?)
Grüße, Gregor
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 82577
Url: https://administrator.de/contentid/82577
Ausgedruckt am: 22.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Moin,
das geht folgendermaßen:
Abfrage der ersten beiden Zeichen einer Zelle:
MfG,
Henrik
das geht folgendermaßen:
Dim wb As Workbook 'Arbeitsmappe def.
Set wb = ActiveWorkbook 'Arbeitsmappe auf das aktive Workbook setzen
Application.Dialogs(xlDialogOpen).Show 'Nun ist das aktive Workbook das neu geöffnete
Sheets("Tabelle1").Range("1:65535").Copy
'wie wechsel ich hier zur Zieldatei zurück? -> wb ansprechen
wb.Sheets(1).Range("1:65535").PasteSpecial _
Paste:=xlPasteValues
erstebeidezeichen = Left(ActiveSheet.Cells(1,1).value, 2)
MfG,
Henrik
Hallo Shaggy84!
Einfach die aktuelle Mappe als Objekt zwischenspeichern:
"Sheets()" habe ich durch "Worksheets()" ersetzt, da es hier ja um Tabellenblätter geht (besonders dann ein Thema, wenn Du nicht über den Namen, sondern über Index darauf zugreifen willst).
Für die ersten 2 Zeichen einer Zeichenkette kannst Du "Left()" verwenden, also etwa
Weitere in diesem Zusammenhang nützliche Funktionen wären "Right()" und "Mid()" sowie "InStr()" ...
Grüße
bastla
[Edit] Wer hat an der Uhr gedreht? Sorry, wakko, als ich mit dem Kommentar begonnen habe, war Dein Posting noch nicht da ... [/Edit]
Einfach die aktuelle Mappe als Objekt zwischenspeichern:
...
Dim Ziel As Workbook
Set Ziel = ThisWorkbook
Application.Dialogs(xlDialogOpen).Show
Worksheets("Tabelle1").Range("1:65535").Copy
Ziel.Worksheets("TT").Range("1:65535").PasteSpecial _
Paste:=xlPasteValues
Application.CutCopyMode = False
Ziel.Worksheets("TT").Activate
Worksheets("TT").Cells(1, 1).Select
...
Für die ersten 2 Zeichen einer Zeichenkette kannst Du "Left()" verwenden, also etwa
If Left(Worksheets("TT").Cells(3, 5).Value, 2) = "AB" Then ...
Grüße
bastla
[Edit] Wer hat an der Uhr gedreht? Sorry, wakko, als ich mit dem Kommentar begonnen habe, war Dein Posting noch nicht da ... [/Edit]