Wie kann ich mehrere Blätter auswählen, aus diesen gleichzeitig einen definierten Bereich kopieren und in ein ausgewähltes Blatt einfügen?

Antwort

Um in Excel VBA mehrere Blätter auszuwählen, einen definierten Bereich aus diesen Blättern zu kopieren und in ein ausgewähltes Blatt einzufügen, kann der folgende Code verwendet werden. Dieser Code nutzt `Application.InputBox`, um den Benutzer zur Eingabe des Bereichs und des Zielblatts aufzufordern: ```vba Sub CopyRangeFromMultipleSheets() Dim ws As Worksheet Dim targetSheet As Worksheet Dim targetRange As Range Dim sourceRange As Range Dim userRange As String Dim targetSheetName As String Dim lastRow As Long ' Eingabe des zu kopierenden Bereichs userRange = Application.InputBox("Gib den Bereich ein, der kopiert werden soll (z.B. A1:D10):", Type:=8).Address ' Eingabe des Zielblatts targetSheetName = Application.InputBox("Gib den Namen des Zielblatts ein:", Type:=2) ' Überprüfen, ob das Zielblatt existiert On Error Resume Next Set targetSheet = ThisWorkbook.Sheets(targetSheetName) On Error GoTo 0 If targetSheet Is Nothing Then MsgBox "Das Zielblatt existiert nicht.", vbExclamation Exit Sub End If ' Schleife durch alle Blätter außer dem Zielblatt For Each ws In ThisWorkbook.Sheets If ws.Name <> targetSheetName Then ' Bereich auf dem aktuellen Blatt festlegen Set sourceRange = ws.Range(userRange) ' Letzte belegte Zeile im Zielblatt finden lastRow = targetSheet.Cells(targetSheet.Rows.Count, "A").End(xlUp).Row + 1 ' Bereich kopieren und einfügen sourceRange.Copy Destination:=targetSheet.Cells(lastRow, 1) End If Next ws MsgBox "Bereich wurde erfolgreich kopiert.", vbInformation End Sub ``` Dieser Code führt folgende Schritte aus: 1. Fordert den Benutzer auf, den zu kopierenden Bereich einzugeben. 2. Fordert den Benutzer auf, den Namen des Zielblatts einzugeben. 3. Überprüft, ob das Zielblatt existiert. 4. Durchläuft alle Blätter außer dem Zielblatt. 5. Kopiert den definierten Bereich von jedem Blatt und fügt ihn in das Zielblatt ein, wobei die Daten untereinander eingefügt werden. Weitere Informationen zu `Application.InputBox` findest du in der [Microsoft-Dokumentation](https://docs.microsoft.com/de-de/office/vba/api/excel.application.inputbox).

Kategorie: Software Tags: Blätter Kopieren VBA
Neue Frage stellen

Verwandte Fragen

Wie kann man mehrere Sheets in Excel mit VBA gleichzeitig sichtbar machen?

In VBA (Visual Basic for Applications) kannst du mehrere Arbeitsblätter nicht direkt in einer Zeile wie in deinem Beispiel sichtbar machen. Der Ausdruck `Sheets("TP1", "TP2").... [mehr]

Gibt es VBA für Word, wie unterscheidet es sich von VBA für Excel und wofür wird es hauptsächlich verwendet?

Ja, es gibt auch VBA (Visual Basic for Applications) für Word. VBA ist eine Programmiersprache, die in vielen Microsoft-Office-Anwendungen wie Excel, Word, PowerPoint und Access integriert ist.... [mehr]

Wirken sich Application.OnKey und Application.CommandBars auf andere geöffnete Excel-Dateien aus?

Ja, sowohl `Application.OnKey` als auch `Application.CommandBars` wirken sich auf die gesamte Excel-Anwendung aus – und damit auf **alle geöffneten Arbeitsmappen** (Excel-Dateien) in dieser... [mehr]

Wie zeige ich per VBA in Excel eine Messagebox an, wenn ein bestimmter Wert überschritten oder erreicht wird?

Um in Excel mit VBA eine MessageBox anzuzeigen, wenn ein bestimmter Wert überschritten oder gleich ist, kannst du beispielsweise folgenden Code verwenden. Angenommen, du möchtest prüfen... [mehr]

Wie zeige ich in Excel per VBA eine Messagebox an, wenn eine Zelle einen bestimmten Wert unterschreitet?

Um in Excel per VBA eine MessageBox erscheinen zu lassen, wenn eine Zelle einen bestimmten Wert unterschreitet, kannst du das Worksheet-Change-Ereignis verwenden. Hier ein Beispiel, wie du das umsetze... [mehr]