Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1456to1460
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen nach ausgewählten Kontrollkästchen kopieren

Zeilen nach ausgewählten Kontrollkästchen kopieren
14.11.2015 11:43:31
Kaomoji
Hallo hilfreiche Forumsmitglieder.
Ich bin VBA Anfänger und kämpfe momentan mit einen Makro, das ich hier im Forum gefunden und abgewandelt habe und fast schon perfekt ist.
Situation: in Tabelleblatt1 sind Daten, die durch ein Kontrollkästchen ausgewählt werden können. Via Button werden diese ausgewählten Zeilen dann in Tabelleblatt2 in die erste freie Zeile kopiert. Das funktioniert einwandfrei.
Nun möchte ich aber aus den ausgewählten Zeilen nur Spalte C und D, nicht aber Spalte B (wo die Kontrollkästchen sind) und Spalte A (wo unnötige Daten stehen) kopieren. Die Daten aus Spalte C und D sind im Zieltabellenblatt dann Spalte A und B. Wichtig dabei ist, dass im Zieltabelleblatt bereits vorhandene Formeln in Spalte F nicht überschrieben werden.
nachfolgendes Makro möchte ich ensprechend ändern (Credits an denjenigen, der es geschrieben _ hat - Ich habe leider den Namen vergessen, sorry):

Sub ZeilenKopieren()
Dim wksQuelle As Worksheet, objShapeQuelle As Shape, wksZiel As Worksheet, objShape As Shape
Dim rngQuelle As Range, lngZeileLetzte As Long
'Sicherheitsabfrage
If MsgBox("Zeilen kopieren?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Set wksQuelle = Worksheets("Tabelle1")
Set wksZiel = Worksheets("Tebelle2")
For Each objShapeQuelle In wksQuelle.Shapes
If objShapeQuelle.Type = msoFormControl Then
If objShapeQuelle.FormControlType = xlCheckBox Then
If objShapeQuelle.ControlFormat.Value = 1 Then
'Linke obere Zelle des Kontrollkästchens einem Range-Object zuweisen
'Diese Zelle ist der Bezugspunkt für die Kopieraktionen
Set rngQuelle = objShapeQuelle.TopLeftCell
With wksZiel
'letzte Zeile mit Daten in Spalte A der Zieltabelle ermitteln
lngZeileLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
'Zeile aus Quelle nach Ziel kopieren
wksQuelle.Rows(rngQuelle.Row).Copy Destination:=.Cells(lngZeileLetzte + 1, 1)
'kopiertes Kontrollkästchen im Ziel löschen
.Shapes(.Shapes.Count).Delete
End With
End If
End If
End If
Next
End Sub
Ich hoffe, es ist nachvollziehbar und ich habe mich verständlich ausgedrückt.
Vielen lieben Dank!
LG
Kaomoji

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen nach ausgewählten Kontrollkästchen kopieren
14.11.2015 12:46:33
Sepp
Hallo Kaomoji,
ungetestet!
Sub ZeilenKopieren()
Dim wksQuelle As Worksheet, objShapeQuelle As Shape, wksZiel As Worksheet, objShape As Shape
Dim lngRow As Long, lngZeileLetzte As Long
'Sicherheitsabfrage
If MsgBox("Zeilen kopieren?", vbQuestion + vbYesNo) = vbNo Then Exit Sub
Set wksQuelle = Worksheets("Tabelle1")
Set wksZiel = Worksheets("Tebelle2")
For Each objShapeQuelle In wksQuelle.Shapes
  If objShapeQuelle.Type = msoFormControl Then
    If objShapeQuelle.FormControlType = xlCheckBox Then
      If objShapeQuelle.ControlFormat.Value = 1 Then
        'Linke obere Zelle des Kontrollkästchens einem Range-Object zuweisen
        'Diese Zelle ist der Bezugspunkt für die Kopieraktionen
        lngRow = objShapeQuelle.TopLeftCell.Row
        With wksZiel
          'letzte Zeile mit Daten in Spalte A der Zieltabelle ermitteln
          lngZeileLetzte = .Cells(.Rows.Count, 3).End(xlUp).Row
          'Zeile aus Quelle nach Ziel kopieren
          wksQuelle.Range(wksQuelle.Cells(lngRow, 3), wksQuelle.Cells(lngRow, 4)).Copy .Cells(lngZeileLetzte + 1, 1)
        End With
      End If
    End If
  End If
Next
End Sub

Gruß Sepp

Anzeige
AW: Zeilen nach ausgewählten Kontrollkästchen kopieren
19.11.2015 14:52:47
Kaomoji
Hallo Sepp,
vielen lieben Dank für deine Bemühungen. Ich bin leider erst jetzt dazu gekommen, es zu testen.
Leider funktioniert es aber nicht 100%ig. Es wird Spalte C und D wie gewünscht kopiert, aber leider nur Daten der letzten ausgewählten Zeile mit aktiviertem Kontrollkästchen. Die "aktivierten" Zeilen darüber werden ignoriert. Zudem kopiert er auch die Kontrollkästchen mit, unabhängig davon, ob ich die Codezeile ".Shapes(.Shapes.Count).Delete" hinzufüge oder, wie bei dir, nicht.
Kann ich dich noch einmal um einen Tip bitten?
Besten Dank,
Kaomoji

AW: Zeilen nach ausgewählten Kontrollkästchen kopieren
19.11.2015 22:13:14
Sepp
Hallo Kaomoji,
kann st du eine kleine Beispieldatei hochladen?
Gruß Sepp

Anzeige
AW: Zeilen nach ausgewählten Kontrollkästchen kopieren
20.11.2015 13:52:07
Kaomoji
Hallo Sepp,
natürlich, daran hätte ich gleich denken können! Sorry.
In der Test-Datei funktioniert jetzt auch wieder das Löschen der Kontrollkästchen im Ziel-Datenblatt. Leider ist der Kopiervorgang aber nach wie vor unvollständig.
https://www.herber.de/bbs/user/101676.xlsm

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige