Wie wählt man mehrere Blätter und Bereiche mit VBA InputBox aus und fügt diese Daten in ein markiertes Blatt ein?

Antwort

Um mehrere Blätter und Bereiche mit einer VBA InputBox auszuwählen und diese Daten in ein durch Markieren ausgewähltes Blatt einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code zeigt, wie du eine InputBox verwenden kannst, um die Blätter und Bereiche auszuwählen und die Daten dann in ein Zielblatt einzufügen. ```vba Sub CopyDataToSelectedSheet() Dim ws As Worksheet Dim targetSheet As Worksheet Dim targetRange As Range Dim sourceRange As Range Dim sheetNames As String Dim sheetName As Variant Dim prompt As String Dim title As String ' Prompt for sheet names prompt = "Gib die Namen der Blätter ein, getrennt durch Kommas:" title = "Blätter auswählen" sheetNames = InputBox(prompt, title) ' Split the sheet names into an array Dim sheetArray() As String sheetArray = Split(sheetNames, ",") ' Prompt for target sheet prompt = "Wähle das Zielblatt aus:" title = "Zielblatt auswählen" Set targetSheet = Application.InputBox(prompt, title, Type:=8) ' Prompt for target range prompt = "Wähle den Zielbereich aus:" title = "Zielbereich auswählen" Set targetRange = Application.InputBox(prompt, title, Type:=8) ' Loop through each sheet name and copy data For Each sheetName In sheetArray Set ws = ThisWorkbook.Sheets(Trim(sheetName)) ' Prompt for source range in each sheet prompt = "Wähle den Bereich in " & ws.Name & " aus:" title = "Quellbereich auswählen" Set sourceRange = Application.InputBox(prompt, title, Type:=8) ' Copy data from source range to target range sourceRange.Copy Destination:=targetRange ' Adjust target range for next paste Set targetRange = targetRange.Offset(sourceRange.Rows.Count, 0) Next sheetName End Sub ``` Dieser Code führt folgende Schritte aus: 1. Fragt den Benutzer nach den Namen der Blätter, getrennt durch Kommas. 2. Fragt den Benutzer nach dem Zielblatt. 3. Fragt den Benutzer nach dem Zielbereich im Zielblatt. 4. Durchläuft jedes Blatt, das in der InputBox angegeben wurde, und fragt nach dem Quellbereich in jedem Blatt. 5. Kopiert die Daten aus dem Quellbereich in den Zielbereich und passt den Zielbereich für die nächste Kopie an. Bitte beachte, dass dieser Code davon ausgeht, dass die Blätter und Bereiche korrekt eingegeben und ausgewählt werden. Es gibt keine Fehlerbehandlung für ungültige Eingaben oder Bereiche.

KI fragen

Verwandte Fragen

Wie kann ich mit VBA einen Zellenbereich kopieren und in die nächste freie Zeile einfügen?

Um mit VBA einen bestimmten Zellenbereich (z.B. `A1:C3`) zu kopieren und in die nächst freie Zeile einer anderen Spalte oder Tabelle einzufügen, kannst du folgenden Beispielcode verwenden:... [mehr]

Warum tritt in Access VBA bei der Abfrage 'If AnlageNeu = "Schleifmaschine" And Nachklassifizierung Is Null Then' die Fehlermeldung 'Objekt erforderlich' auf?

Die Fehlermeldung **"Objekt erforderlich"** in VBA tritt meist auf, wenn du versuchst, auf ein Objekt zuzugreifen, das nicht existiert oder falsch deklariert wurde. In deinem Fall liegt das... [mehr]

Wie kann man Zahlen in Excel-VBA ohne wissenschaftliches Format in eine .txt-Datei schreiben?

Um Zahlen wie 6,9999999999 in Excel-VBA beim Schreiben in eine .txt-Datei **nicht** im wissenschaftlichen Format (z. B. 6,9999999999E+00), sondern exakt so wie sie sind (mit allen Nachkommastellen), z... [mehr]

Wie lautet die Syntax, um in Excel VBA ein bestimmtes Tabellenblatt zu aktivieren?

Um in Excel VBA ein bestimmtes Tabellenblatt zu aktivieren, verwendest du folgende Syntax: ```vba Worksheets("Tabellenblattname").Activate ``` Ersetze dabei `"Tabellenblattname"`... [mehr]

Wie kann ich mit VBA Daten zeilenweise aus mehreren Tabellen in eine Gesamttabelle kopieren?

Um mit VBA Daten zeilenweise aus mehreren Tabellenblättern in eine Gesamttabelle zu kopieren, kannst du folgenden Ansatz verwenden: 1. **Alle relevanten Tabellenblätter durchlaufen** 2. **D... [mehr]

Wie kann man in Access VBA eine Pause von 10 Sekunden einlegen?

In Access VBA kannst du eine Pause von 10 Sekunden mit der Sleep-Funktion aus der Windows-API einlegen. Hier ein Beispiel, wie das funktioniert: ```vba Declare PtrSafe Sub Sleep Lib "kernel32&qu... [mehr]

Wie kann man eine per Access-VBA automatisch geöffnete Excel-Datei direkt wieder schließen?

Um eine Excel-Datei, die per Access-VBA geöffnet wurde, automatisch wieder zu schließen, solltest du das Excel-Objektmodell in deinem Access-VBA-Code verwenden. Hier ein Beispiel, wie das g... [mehr]

Was bedeutet der Befehl "QuellBlatt1.Rows(2).Copy" in VBA?

Der Befehl `QuellBlatt1.Rows(2).Copy` in VBA (Visual Basic for Applications) bedeutet, dass die **zweite Zeile** (Row 2) des Arbeitsblatts mit dem Namen oder Objektverweis `QuellBlatt1` **kopiert** wi... [mehr]

Wie funktioniert oPPT.Presentations.Open(sFile) in VBA?

Die Methode `oPPT.Presentations.Open(sFile)` stammt aus der Automatisierung von Microsoft PowerPoint mit VBA (Visual Basic for Applications) oder anderen Programmiersprachen, die COM-Automatisierung u... [mehr]

Wie kann ich mit VBA den Wert einer benannten Zelle in eine Zelle eines anderen Arbeitsblatts kopieren?

Um mit VBA den Wert einer Zelle, der ein definierter Name zugewiesen wurde, in eine Zelle eines anderen Arbeitsblatts zu kopieren, kannst du folgenden Code verwenden: ```vba Sub WertKopieren() &#... [mehr]