Registriert seit: 03.04.2017
Version(en): Excel 2007
Hallo liebe VBA-ler,
Ich habe folgenden Code erfolgreich eingesetzt:
Sub Test()
Sheets("Buttonpage").Range("A9:J9").Copy
Sheets("Test").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Jetzt würde ich ihn gern folgendermaßen ergänzen:
Wenn in der Auswahl (Range"A9:J9) das Wort "X" in Zelle "A9" ist, soll die gesamte Auswahl in Sheet "Test" eingefügt werden,
wenn in der Auswahl (Range"A9:J9) das Wort "Y" in Zelle "A9" ist, soll die gesamte Auswahl in Sheet "Test2" eingefügt werden,
und so weiter.
Könnte jemand weiterhelfen, um mich und meine bescheidenen VBA-Kenntnisse ein Stück weit nach vorne zu bringen?
Erklärungen dazu wären das absolute Sahnehäubchen :)
Vielen Dank im Voraus!
Don Ramses
Registriert seit: 04.04.2017
Version(en): 2013
Hallo Ramses,
Code:
Sub Test()
Dim strWks As String
With Sheets("Buttonpage")
.Range("A9:J9").Copy
Select Case .Cells(9, 1).Value: Case "X": strWks = "Sheet1": Case "Y": strWks = "Sheet2": End Select
End With
Sheets(strWks).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Registriert seit: 03.04.2017
Version(en): Excel 2007
Hi Jonas,
danke für die schnelle Antwort. Habe es gerade mal ausprobiert, funktioniert perfekt. Jetzt werd ich mich mal dahinterklemmen um zu verstehen, wie du das gemacht hast ;)
Schöne Grüße,
Don Ramses
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Jonas,
wenn Du schon Select Case in eine Zeile quetschst, ginge auch gleich sowas:
Code:
Sub Test1()
Sheets(Switch(Sheets("Buttonpage").Cells(9, 1).Value = "X", "Sheet1", Sheets("Buttonpage").Cells(9, 1).Value = "Y", "Sheet2")).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Resize(1, 10).Value = Sheets("Buttonpage").Range("A9:J9").Value
End Sub
Gruß Uwe :17:
Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:1 Nutzer sagt Danke an Kuwer für diesen Beitrag 28
• Don Ramses
Registriert seit: 04.04.2017
Version(en): 2013
Hi Uwe,
da hast Du wohl Recht, nette Lösung ;)
Registriert seit: 03.04.2017
Version(en): Excel 2007
Hallo Kuwer,
habe gerade deinen Code ausprobiert, der aber nicht funktioniert bei mir (Index außerhalb des gültigen Bereichs).
Liegt es an mir oder könnte es sein, dass sich ein Fehler eingeschlichen hat?
In ersterem Fall würde ich wohl nicht umhin kommen, eine Beispielmappe zu erstellen.
Jonas' Code funktioniert, scheint aber enorme Rechenkraft zu ziehen.
Was bewirkt
?
Danke und schöne Grüße,
Don Ramses
Registriert seit: 03.04.2017
Version(en): Excel 2007
Es ist ein Laufzeitfehler 9, was (meines Wissens nach) auf Rechtschreibfehler oder falsche Benennung meinerseits hindeutet. Kontrolliere gerade.
Die Frage bzgl. "Resize" bleibt.
Schöne Grüße!
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
.Resize verändert die Bereichsgröße. Das kann z.B. die Programmierung vereinfachen, da man nur die linke obere Ecke eines Bereichs programmieren muss und selbigen dann mit .Resize wie gewünscht und ggf. variabel anpasst.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• Don Ramses
Registriert seit: 03.04.2017
Version(en): Excel 2007
Hi André,
danke Dir! Traumhaft, so langsam beginnt sich mir ein Sinn zu erschließen ;)
Beste Grüße,
Don Ramses