Supportnet / Forum / Tabellenkalkulation
mit kontrollkästchen markierte Tabelleneinträge kopieren
Frage
Hallo!
Erste Frage:
Wie kann ich in Excel über Kontrollkästchen markierte Tabellenzeilen in eine andere Tabelle kopieren?
Zweite Frage:
Wie kann ich von diesen Zeilen nur bestimmte Spalten kopieren?
Vielen Dank an denjenigen der Rat weiss!
Antwort 1 von Guenter
Hallo,
mit diesem MAkro kannst Du z.B. die erste Zeile in dem Tabellenblatt bei kopieren in Tabelle2.
Wenn beim Kontrollkästchen ein Haken gesetzt wird, läuft das Makro los und kopiert.
Das Makro musst Du natürlich auf Deine Bedürfnisse anpassen. Natürlich könne auch Spalten, oder einzelne Zellen kopiert werden.
Gruß
Günter
mit diesem MAkro kannst Du z.B. die erste Zeile in dem Tabellenblatt bei kopieren in Tabelle2.
Wenn beim Kontrollkästchen ein Haken gesetzt wird, läuft das Makro los und kopiert.
Option Explicit
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Rows(1).Select
Selection.Copy
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("Tabelle1").Select
End If
End Sub
Das Makro musst Du natürlich auf Deine Bedürfnisse anpassen. Natürlich könne auch Spalten, oder einzelne Zellen kopiert werden.
Gruß
Günter
Antwort 2 von Björn
Hallo Günter,
Vielen dank für die prompte Antwort. Ich komme erst wieder am Mo dazu es auszuprobieren und denke mal das es dann auch läuft. Falls nicht meld ich mich nochmal.
Grüsse Björn
Vielen dank für die prompte Antwort. Ich komme erst wieder am Mo dazu es auszuprobieren und denke mal das es dann auch läuft. Falls nicht meld ich mich nochmal.
Grüsse Björn
Antwort 3 von nighty
hi alle :)
ich brauch immer laenger :)
hier ein makro was von der aktiven tabelle beliebig viele bereiche nach tabelle2 kopiert OHNE selection :)
Private Sub CheckBox1_Click()
Call Makro01
End Sub
Sub Makro01()
With Worksheets("Tabelle2")
rem hier deine bereiche bzw. spalten angeben
Range("$A$5:$A$6,$C$5:$C$6").Copy
.Paste Destination:=.Range("A1:A1")
End With
Application.CutCopyMode = False
End Sub
ich brauch immer laenger :)
hier ein makro was von der aktiven tabelle beliebig viele bereiche nach tabelle2 kopiert OHNE selection :)
Private Sub CheckBox1_Click()
Call Makro01
End Sub
Sub Makro01()
With Worksheets("Tabelle2")
rem hier deine bereiche bzw. spalten angeben
Range("$A$5:$A$6,$C$5:$C$6").Copy
.Paste Destination:=.Range("A1:A1")
End With
Application.CutCopyMode = False
End Sub
Antwort 4 von coros
Moin,
ich hab auch noch einen. Bei meinem Code werden nur einzellne Zellen kopiert, nichtaber die gesamte Zeile. In diesem Beispiel sind es die Zellen A2, C2 und D2. Diese werden in Tabelle2 in A2 kopiert. Nachfolgenden Code dem Kontrollkästchen zuweisen.
Sollen noch andere Zellen kopiert werden, müssen die Zellenbezeichnungen in Zeile
Range("A2,C2,D2").Copy Worksheets("Tabelle1").Cells(2, 1)
in der Rangeanweisung immer durch ein Komma getrennt angehängt werden. Das geht aber nur für Zellen, die in einer Zeile liegen. Sollen auch Zellen aus anderen Zeilen kopiert werden, so muss obige Zeile kopiert und vor dem End If- Befehl eingefügt werden. Es müssen dann noch die Zellbezeichnungen geändert werden.
Wenn die Daten in eine andere Exceldatei kopiert werden sollen, muss der Code folgendermaßen aussehen.
Der Code macht eigentlich das gleiche wie der andere, bis auf dass die Datei, in die Daten kopiert werden sollen, vorher geöffnet werden muss. In dem Code muss in Zeile
Workbooks.Open "C:\Deine Datei.xls"
der korrekte Pfad, in dem sich die Datei befoindet, eingetragen werden.
So, ich hoffe, dass einer der Tipps Dich weiterbringt. Wenn nciht, melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
ich hab auch noch einen. Bei meinem Code werden nur einzellne Zellen kopiert, nichtaber die gesamte Zeile. In diesem Beispiel sind es die Zellen A2, C2 und D2. Diese werden in Tabelle2 in A2 kopiert. Nachfolgenden Code dem Kontrollkästchen zuweisen.
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("A2,C2,D2").Copy Worksheets("Tabelle2").Cells(2, 1)
End If
End Sub
Sollen noch andere Zellen kopiert werden, müssen die Zellenbezeichnungen in Zeile
Range("A2,C2,D2").Copy Worksheets("Tabelle1").Cells(2, 1)
in der Rangeanweisung immer durch ein Komma getrennt angehängt werden. Das geht aber nur für Zellen, die in einer Zeile liegen. Sollen auch Zellen aus anderen Zeilen kopiert werden, so muss obige Zeile kopiert und vor dem End If- Befehl eingefügt werden. Es müssen dann noch die Zellbezeichnungen geändert werden.
Wenn die Daten in eine andere Exceldatei kopiert werden sollen, muss der Code folgendermaßen aussehen.
Private Sub CommandButton1_Click()
Workbooks.Open "C:\Deine Datei.xls"
Range("A2,C2,D2").Copy Workbooks("Deine Datei.xls").Sheets("Tabelle1").Cells(2, 1)
End Sub
Der Code macht eigentlich das gleiche wie der andere, bis auf dass die Datei, in die Daten kopiert werden sollen, vorher geöffnet werden muss. In dem Code muss in Zeile
Workbooks.Open "C:\Deine Datei.xls"
der korrekte Pfad, in dem sich die Datei befoindet, eingetragen werden.
So, ich hoffe, dass einer der Tipps Dich weiterbringt. Wenn nciht, melde Dich.
MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von Björn Herbig
Vielen Dank für die Tipps coros,nighty und günter. Weitergeholfen haben sie mir auf jeden Fall. Mein kleines Problem ist jetzt, dass ich sobald ich den Haken gesetzt habe auch kopiere - ist ja auch erstmal so gewollt- wenn ich mich jetzt aber entscheide den Haken wieder weg zu nehmen, müßte ich irgendwie ne Löschanweisung verfassen - also ne Art else --> if checkbox1.value=false --> erase. Falls ihr ne schnelle Lösung parat habt wäre es super, wenn nicht wäre ich auch schon über eine gute Einsteigerbuchempfehlung sehr dankbar.
Vielen Dank nochmal für die wirklich gute Hilfe.
Björn
Vielen Dank nochmal für die wirklich gute Hilfe.
Björn
Antwort 6 von Guenter
Hallo,
wenn ich das Makro von coros verwende, kann ich wie folgt erweitern:
Das Makro sollte noch angepasst werden, jenachdem was Du machen willst (shift:=xlTo...).
Gruß
Günter
wenn ich das Makro von coros verwende, kann ich wie folgt erweitern:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("A2,C2,D2").Copy Worksheets("Tabelle2").Cells(2, 1)
End If
If CheckBox1.Value = False Then
Worksheets("Tabelle2").Range("A2:C2").Delete Shift:=xlToLeft
End If
End Sub
Das Makro sollte noch angepasst werden, jenachdem was Du machen willst (shift:=xlTo...).
Gruß
Günter
Antwort 7 von Björn
Vielen Dank !!!
Gruss Björn
Gruss Björn

