Anzeige
Archiv - Navigation
1480to1484
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

Kopieren wenn

Kopieren wenn
16.03.2016 09:48:31
Alex
Hallo Zusammen,
so langsam komme ich zum Abschluss meines Projektes.
Mit die letzte Funktion die mir noch fehlt ist:
Ich würde gerne eine "Druckseite" aus einer Liste erstellen, im Prinzip ja ganz einfach mit folgenden Code, wenn alles kopiert werden soll:
Set rng = Worksheets("PM").UsedRange.Columns(1).Resize(, 2)
Set rng1 = Worksheets("Druckseite").Cells(Rows.Count, "A").End(xlUp)(2)
rng.Copy Destination:=rng1

Das ganze wird jetzt etwas kniffeliger ,da NUR kopiert werden soll, wenn der Eintrag durch eine Checkbox angeklickt/aktiviert ist:
 With ActiveSheet.CheckBoxes.Add(cell.Left, _
cell.Top, cell.Width, 1)
.LinkedCell = cell.Offset(, 1).Address(External:=True)
.OnAction = "CheckboxClick" 'damit klick auf Checkbox change event auf dem Worksheet auslö  _
_
st
.Interior.ColorIndex = xlNone
.Caption = ""
.Value = xlOff
End With

Das Problem: Die Liste kann gut über 1000/2000 Zeilen lang werden und jede einzelne kopieren macht sich doch in der Laufzeit bemerkbar.
Gibt es da einen Trick oder eine smarte Lösung?
Meine Idee/Umsetzung wäre jetzt:
1. Kopiere alles
2. Schleife im Worksheet"Druckseite", wenn nicht True, dann lösche Zeile
Effizienter Möglich?
Gruß ALex

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopieren wenn
16.03.2016 10:07:23
ChrisL
Hi Alex
Wie wäre es, wenn du erst den Filter verwendest, um danach die relevanten Zeilen zu kopieren.
cu
Chris

AW: Kopieren wenn
18.03.2016 09:43:10
Alex
Hallo Chris,
ich habe gerade paar varianten probiert.
Problem ist die extrem hohe Laufzeit.
probiert:
1.
- wenn Wahr, dann kopiere Zeile
2. Kopiere allesOriginal
- lösche Zeile, wenn True
Kopiere alles auf die Druckseite, Lösche alles auf der Quelle Seite, Füge allesOriginal wieder ein
Beides mir zu lange Laufzeiten....
Wer noch eine smarte Lösung?
Gruß+Danke!
Alex

AW: Kopieren wenn
18.03.2016 09:59:33
ChrisL
Hi Alex
So...
Sub Makro()
Dim WS1 As Worksheet, WS2 As Worksheet
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
Application.ScreenUpdating = True
With WS1.Columns("A:B")
.AutoFilter Field:=2, Criteria1:=True
.Copy WS2.Range("A1")
WS1.ShowAllData
End With
End Sub

cu
Chris

Anzeige
AW: Kopieren wenn
18.03.2016 12:58:11
Alex
Hey Chris,
leider macht der Code gar nichts bei mir, dauert zwar etwas, aber passiert (bis auf das Blatt angelegt) nichts.
Belegung der Spalten
A = kopieren
B = kopieren
C = Checkbox (nicht kopieren)
D = True/False aus der Checkbox
Jede Zeile kopieren (A+B), wenn Spalte D True steht
Private Sub CommandButton24_Click() ' Druckseite erstellen
Dim WS1 As Worksheet, WS2 As Worksheet
Sheets.Add(before:=Sheets("PM")).name = "Druckseite"
Set WS1 = Worksheets("PM")
Set WS2 = Worksheets("Druckseite")
Application.ScreenUpdating = True
With WS1.Columns("A:D")
.AutoFilter Field:=4, Criteria1:=True
.Copy WS2.Range("A1")
WS1.ShowAllData
End With
End Sub
Danke für deine Hilfe!
Gruß Alex

Anzeige
AW: Kopieren wenn
18.03.2016 13:36:58
ChrisL
Hi Alex
Bei mir gehts. Lade einfach eine Beispieldatei hoch.
cu
Chris

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige