Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA Zeile in anderes Blatt kopieren wenn
#1
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
Antworten Top
#2
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
Gruß Jonas
[-] Folgende(r) 1 Nutzer sagt Danke an Jonas0806 für diesen Beitrag:
  • Don Ramses
Antworten Top
#3
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
Antworten Top
#4
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:
  • Don Ramses
Antworten Top
#5
Hi Uwe,

da hast Du wohl Recht, nette Lösung ;)
Gruß Jonas
Antworten Top
#6
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
Code:
.Resize(1, 10)

?

Danke und schöne Grüße,
Don Ramses
Antworten Top
#7
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!
Antworten Top
#8
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:
  • Don Ramses
Antworten Top
#9
Hi André,

danke Dir! Traumhaft, so langsam beginnt sich mir ein Sinn zu erschließen ;)

Beste Grüße,
Don Ramses
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste