Excel: Beim Öffnen abfragen, ob in Blatt „ODaten“ Daten von Typ1 oder Typ2 kopiert werden sollen?

Antwort vom

Das geht am einfachsten mit einem VBA-Makro, das beim Öffnen der Arbeitsmappe eine Auswahl abfragt und dann je nach Auswahl den passenden Bereich nach `ODaten` kopiert. 1) In Excel: `ALT + F11` → links „DieseArbeitsmappe“ doppelklicken → folgenden Code einfügen: ```vba Option Explicit Private Sub Workbook_Open() Dim auswahl As VbMsgBoxResult auswahl = MsgBox( _ "Welche Daten sollen nach 'ODaten' kopiert werden" & vbCrLf & vbCrLf & _ "Ja = Typ1" & vbCrLf & _ "Nein = Typ2" & vbCrLf & _ "Abbrechen = nichts tun", _ vbYesNoCancel + vbQuestion, _ "Daten kopieren" _ ) Select Case auswahl Case vbYes KopiereTyp "Typ1" Case vbNo KopiereTyp "Typ2" Case Else ' nichts End Select End Sub Private Sub KopiereTyp(ByVal typName As String) Dim wsQuelle As Worksheet, wsZiel As Worksheet Set wsQuelle = ThisWorkbook.Worksheets(typName) ' Blattnamen: "Typ1" / "Typ2" Set wsZiel = ThisWorkbook.Worksheets("ODaten") ' Ziel ggf. leeren (optional): ' wsZiel.Cells.Clear ' Beispiel: Bereich A1:Z100 kopieren (anpassen!) wsQuelle.Range("A1:Z100").Copy Destination:=wsZiel.Range("A1") End Sub ``` 2) Speichern als „Excel-Arbeitsmappe mit Makros“ (`.xlsm`). 3) Beim Öffnen Makros aktivieren; dann erscheint die Abfrage und es wird Typ1 oder Typ2 nach `ODaten` kopiert. (Anpassen musst du nur die Blattnamen `"Typ1"`/`"Typ2"` und den zu kopierenden Bereich `"A1:Z100"`.)

Kategorie: Technologie Tags: Excel VBA Abfrage

Verwandte Fragen

Syntax von IsNumeric in Excel-VBA?

IsNumeric(Ausdruck) Beispiel: vba If IsNumeric(Range("A1").Value) Then MsgBox "Zahl" Else MsgBox "Keine Zahl" End If Rückgabewert: True = numerisch False = nich...

Gibt es die Excel-Funktion ZÄHLENWENN auch in Excel-VBA?

Ja. In Excel-VBA gibt es dafür WorksheetFunction.CountIf oder direkt Application.CountIf. Beispiel: vba Dim erg As Long erg = Application.WorksheetFunction.CountIf(Range("A1:A10"), &...

Wie nennt man das Zerlegen einer Excel-VBA-Prozedur in mehrere Teile?

Das nennt man meist Refactoring, genauer: Modularisierung: eine große Prozedur in mehrere kleinere Prozeduren/Funktionen aufteilen Extrahieren von Methoden/Prozeduren (Extract Method): Teilcode...

Wie lege ich in Excel eine UserForm an?

„UnserForm“ ist in Excel kein gängiger Begriff. Gemeint ist sehr wahrscheinlich UserForm. So legst du in Excel eine UserForm an: 1. Entwicklertools aktivieren Excel öffnen Date...

Kann man in Excel-VBA die Schriftgröße der MsgBox ändern?

Nein. Die Schriftgröße der eingebauten VBA-MsgBox lässt sich nicht direkt ändern. Möglichkeiten: Eigene UserForm verwenden → volle Kontrolle über Schriftgrö&s...

Ist dieser Excel-VBA-Code korrekt, um Spalten auszublenden und einen Bereich wieder einzublenden?

Nein. Korrekt ist bei Columns die Angabe von Spaltenbuchstaben oder Spaltennummern als Bereich, nicht "spaltevon:spaltebis" wörtlich. Beispiel: vba With Sheets("Tab1") .Co...

Excel-Makro: Spalten E:G per Button ein- und ausblenden?

Ja. Verwende dieses Makro und weise es dem Button zu: vba Sub SpaltenEGUmschalten() Columns("E:G").EntireColumn.Hidden = Not Columns("E").EntireColumn.Hidden End Sub So funktio...

Kann man in Excel nur einen bestimmten Bereich schützen, ohne den Blattschutz zu verwenden?

Nein. In Excel lässt sich ein bestimmter Bereich nicht wirksam separat schützen, ohne am Ende doch den Blattschutz zu verwenden. Das Prinzip ist: Zellen bekommen die Eigenschaft „Gesp...

Wie Excel-Tabelle in Word-Datei umwandeln?

Eine Excel-Tabelle lässt sich in Word auf mehrere Arten übernehmen: 1. Kopieren und einfügen Tabelle in Excel markieren Strg + C In Word klicken Strg + V 2. Als verknüpfte Tabell...

Excel-Makro: Im Bereich B10:B20, wenn der IndentLevel in Spalte B = 1 ist, dann in dieser Zeile in B:O oben eine dünne Rahmenlinie setzen?

vba Sub RahmenObenBeiIndent1() Dim ws As Worksheet Dim c As Range Set ws = ActiveSheet For Each c In ws.Range("B10:B20") If c.IndentLevel = 1 Then With ws.Range(ws.Cells(c.Row, &q...