Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Werte in anderes Tabellenblatt kopieren
27.03.2019 14:06:37
Matthias
Hallo zusammen,
ich hab ein kleines Problem und würde eure Hilfe benötigen.
Ich möchte einen Bereich in ein anderes Tabellenblatt kopieren, soweit so gut, das bekomm ich hin.
Nun würde ich aber gerne durch die Eingabe des Namens des Blattes in eine Zelles das gewünschte sheet auswählen.
Als beispiel:
In die Zelle geb ich "Daten 1" ein und nun sollen die Werte in das Tabellenblatt Daten 1 kopiert werden.
Bei Eingabe von "Daten 2" in Daten 2.
Und so weiter.
Könnt ihr mir hier weiterhelfen?
In der Suche bin ich leider nicht fündig geworden und weiß nicht wie ich das Problem alleine lösen soll.
Vielen dank und grüße
Matthias

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte in anderes Tabellenblatt kopieren
27.03.2019 14:19:02
Werner
Hallo Matthias,
Annahme: Das Blatt von dem du kopieren willst hat den Namen "Quelle" und dort in Zelle A1 steht der Name des Blattes in das du kopieren willst.
Worksheets("Quelle").Range("B1:B10").Copy _
Worksheets(Worksheets("Quelle").Range("A1").Value).Range("B1")
Blattname und Zelle mußt du an deine Gegebenheiten anpassen.
Gruß Werner
AW: Werte in anderes Tabellenblatt kopieren
27.03.2019 14:53:50
Matthias
Hallo Werner,
vielen Dank, genau danach hab ich gesucht!
Eine Frage hätte ich dazu noch:
Wenn nun in der Zelle A1 (bezogen auf dein Beispiel) ein Wert steht der nicht zu einem Tabellenblatt passt kommt ein Fehler, logisch.
Wäre es nun auch möglich dass eine Fehlermeldung angezeigt wird um eine neue Eingabe zu fordern?
Wie könnte man das lösen?
Grüße Matthias
Anzeige
AW: Werte in anderes Tabellenblatt kopieren
27.03.2019 14:54:43
Matthias
Vollständigkeitshalber hier auch noch mein aktueller Code:
Private Sub CommandButton1_Click()
Worksheets("Alle").Columns("D:D").Insert Shift:=xlToLeft
Worksheets(Worksheets("Eingabe").Range("D3").Value).Columns("D:D").Insert Shift:=xlToLeft
Range("D3:D31").Copy
Worksheets("Alle").Range("D2").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks  _
_
:=False, Transpose:=False
Worksheets(Worksheets("Eingabe").Range("D3").Value).Range("D2").PasteSpecial Paste:= _
xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub

Anzeige
AW: Werte in anderes Tabellenblatt kopieren
27.03.2019 15:34:13
Bernd
Servus Matthias,
indem du die Auswahlzelle als Dropdown zur Verfügung stellst.
Dadurch können keine Falscheingaben entstehen und der Fehler tritt folglich nie auf...
Das Dropdown-Feld kannst du z.B. beim Öffnen der Datei integrieren:

Private Sub Workbook_Open()
Dim ws As Worksheet
Dim arrNamen() As Variant
Dim i As Integer
i = ThisWorkbook.Worksheets.Count
ReDim arrNamen(1 To i)
i = 1
For Each ws In ThisWorkbook.Worksheets
arrNamen(i) = ws.Name
i = i + 1
Next ws
With Sheets(1).Range("C1").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=Join(arrNamen, ",")
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Grüße, Bernd
Anzeige
AW: Werte in anderes Tabellenblatt kopieren
28.03.2019 11:09:56
Matthias
Hallo bernd,
vielen Dank für die Antwort!
So wie ich das verstehen checkt dein Code erstmal welche sheets vorhanden sind und weißt diesen dann Variablen zu, wobei die Namen dann im Dropdown Menü angezeigt werden, versteh ich das richtig?
Da ich relativ viele Worksheets habe, will ich ein Dropdown menü eigentlich vermeiden, deswegen auch die Idee mit der Texterkennung.
Hat hier vielleicht noch wer eine andere Idee wie man das umsetzen könnte?
Hab von VBA leider nicht viel Ahnung, bin eher im C bereich unterwegs..
Grüße Matthias
AW: Werte in anderes Tabellenblatt kopieren
28.03.2019 11:44:57
Werner
Hallo Matthias,
so:
Public Sub aaa()
Dim Meldung
Application.ScreenUpdating = False
On Error GoTo Ausgang
Worksheets("Quelle").Range("B1:B10").Copy _
Worksheets(Worksheets("Quelle").Range("A1").Value).Range("B1")
Exit Sub
Ausgang:
Meldung = MsgBox("Ein Blatt mit dem Namen " & Worksheets("Quelle").Range("A1") _
& " gibt es nicht." & vbLf & vbLf & "Bitte Blattname prüfen und ggf. ändern.", _
vbCritical, "Fehler")
On Error GoTo 0
End Sub
Gruß Werner
Anzeige
AW: Werte in anderes Tabellenblatt kopieren
28.03.2019 12:57:03
Matthias
Hallo Werner,
genauso hab ich mir das vorgestellt, vielen vielen Dank!
Grüße Matthias
Gerne u. Danke für die Rückmeldung. o.w.T.
28.03.2019 13:16:47
Werner

340 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige