Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Autofilter per ListBox,sowie neu kopieren (Dani !)

Autofilter per ListBox,sowie neu kopieren (Dani !)
27.05.2005 14:40:19
Pierre
Hallo,
ich habe folgende Aufgabe zu lösen und brauch dazu Hilfe (Keine Ahnung wo mein geschriebener Beitrag hin ist). Jedenfalls, möchte ich mit 2 Listboxen auf Knopfdruck eine Mehrfachauswahl hinbekommen, die dann diese Auswahl hernimmt und von der Ausgangsdatei in ein neues Blatt kopiert?! Habe auch schon einen Code, mit Hilfe von "Dani", jedoch klappt es noch nicht ganz mit der Auswahl, er sucht scheinbar nur die ersten zwei wie es scheint?!
Kurz:
- Arbeitsblatt
- Startknopf mit Grundsätzlicher Filterung, von Ausgangsdatei (hab ich schon mit Recorder aufgezeichnet) entsteht dann Tabelle Gefiltert
- Userform wird gestartet mit 2 Listboxen (links OWNER, rechts PROCESS_GROUP)
- man wählt sich Filter aus (mehrfachauswahl, hab ich auch schon)
- Programm sucht dann in der Tabelle Gefiltert nach diesen Kriterien und Kopierts in Tabelle FERTIG, vieleicht auch gleich mit Überschrift.
https://www.herber.de/bbs/user/23294.xls
Hier nun der Code - bisher, sucht er sich für die linke und rechte Listbox die Kriterien schon raus (also keine Duplikate), und man kann diese mehrfach auswählen, und kopiert auch schon - allerdings leider NUR 2 heraus, warum auch immer?! Vieleicht einfach nur was kurz Ändern, und das war's dann schon, auch gut :-)
Option Explicit

Private Sub CommandButton2_Click()
Dim i, Listenlänge As Long
Dim Fundort As Range
Dim Quelltabelle, Zieltabelle As Worksheet
Set Quelltabelle = Workbooks("Wasserfall.xls").Worksheets("Gefiltert")
Set Zieltabelle = Workbooks("Wasserfall.xls").Worksheets("Tabelle6")
'Filter (OWNER) wählen und in Zeile kopieren
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) = True Then
Set Fundort = Quelltabelle.Range("C:C").Find(ListBox1.List(i), , , xlWhole)
If Not Fundort Is Nothing Then
'Listenlänge, Zeile frei dazw. ja/nein                 (1,2)
Listenlänge = 1 + Zieltabelle.Cells(Rows.Count, 1).End(xlUp).Row
Quelltabelle.Range(Fundort.Row & ":" & Fundort.Row).Copy Destination:=Zieltabelle.Range(Listenlänge & ":" & Listenlänge)
End If
End If
Next
'Filter (PROCESS_GROUP) wählen und in Zeile kopieren
For i = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(i) = True Then
Set Fundort = Quelltabelle.Range("D:D").Find(ListBox2.List(i), , , xlWhole)
If Not Fundort Is Nothing Then
'Listenlänge, Zeile frei dazw. ja/nein                 (1,2)
Listenlänge = 1 + Zieltabelle.Cells(Rows.Count, 1).End(xlUp).Row
Quelltabelle.Range(Fundort.Row & ":" & Fundort.Row).Copy Destination:=Zieltabelle.Range(Listenlänge & ":" & Listenlänge)
End If
End If
Next
End Sub


Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim xErsteZeile As Long
Dim xZeile As Long
'PROZESSGRUPPEN Spalte D
ThisWorkbook.Worksheets("Gefiltert").Range("C:D").Copy Destination:=Tabelle6.Range("A:A")
Set ws = ThisWorkbook.Worksheets("Tabelle6")
xErsteZeile = ws.Cells(Rows.Count, 1).End(xlUp).Row
For xZeile = xErsteZeile To 1 Step -1
If Application.WorksheetFunction.CountIf(ws.Columns(1), ws.Cells(xZeile, 1).Value) > 1 Then
ws.Rows(xZeile).Delete
End If
Next
'In Listbox übergeben
ListBox1.MultiSelect = fmMultiSelectMulti
ListBox2.MultiSelect = fmMultiSelectMulti
ListBox1.RowSource = "Tabelle6!A1:A8"
ListBox2.RowSource = "Tabelle6!B1:B8"
'UserForm1.Show
End Sub

Ich danke schonmal dem jenigen, der mir dabei helfen tut :o) ...vieleicht weiß ich ja auch ma was *g*
Viele Grüße
Pierre

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Autofilter per ListBox,sowie neu kopieren (Dani !)
28.05.2005 15:36:47
Dani
Hallo Pierre ich hab den Code nochmals angepasst Der CommandButton auf der UserForm lässt nach den angeklickten Einträgen in der Listbox suchen und kopiert gefundene Zeilen in die Tabelle "Fertig". Zuletzt werden noch Duplikate gelöscht.
https://www.herber.de/bbs/user/23322.xls
Gruss
Dani
AW: Autofilter per ListBox,sowie neu kopieren (Dani !)
28.05.2005 15:59:48
Dani
Hallo Pierre,
ich habe noch gesehen dass in der rechten ListBox die Einträge doppelt vorkommen können wechsle mal die Routine zum Initialize Ereigniss des Formulars mit folgender Routine:

Private Sub UserForm_Initialize()
Dim ws As Worksheet
Dim xErsteZeile As Long
Dim xZeile As Long
'PROZESSGRUPPEN Spalte D
ThisWorkbook.Worksheets("Gefiltert").Range("C:D").Copy Destination:=Tabelle6.Range("A:A")
Set ws = ThisWorkbook.Worksheets("Tabelle6")
xErsteZeile = ws.Cells(Rows.Count, 1).End(xlUp).Row
For xZeile = xErsteZeile To 1 Step -1
If Application.WorksheetFunction.CountIf(ws.Columns(1), ws.Cells(xZeile, 1).Value) > 1 Then
ws.Cells(xZeile, 1).Delete
'ws.Rows(xZeile).Delete
End If
Next
For xZeile = xErsteZeile To 1 Step -1
If Application.WorksheetFunction.CountIf(ws.Columns(2), ws.Cells(xZeile, 2).Value) > 1 Then
ws.Cells(xZeile, 2).Delete
'ws.Rows(xZeile).Delete
End If
Next
'In Listbox übergeben
ListBox1.MultiSelect = fmMultiSelectMulti
ListBox2.MultiSelect = fmMultiSelectMulti
ListBox1.RowSource = "Tabelle6!A1:A8"
ListBox2.RowSource = "Tabelle6!B1:B8"
'UserForm1.Show
End Sub

Gruss
Dani
Anzeige
AW: Autofilter per ListBox,sowie neu kopieren (Dani !)
30.05.2005 09:01:32
Pierre
Hey Dani,
also das ist wirklich alles so Klasse! :o) ...ich danke dir wirklich sehr...
Ohne dich hätt ich das hier nicht geschafft, vieleicht kann ich auch mal helfen, und vieleicht beschäftige ich mich mit VBA mal näher...
Ganz Viele Grüße
Pierre

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige