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

Userform - Listbox - Autofiltern - Neukopieren

Userform - Listbox - Autofiltern - Neukopieren
24.05.2005 13:10:12
Pierre
Hallo,
bin immer noch mit meinem UserForm am rumwerkeln - und folgendes geht überhaupt nicht, zeigt rein garnichts an:

Private Sub ListBox1_Click()
ColumnsHead = True
ListBox1.ColumnCount = 1
ListBox1.RowSource = "GefilterteDatei!c2:c1000"
End Sub


Private Sub ListBox2_Click()
ColumnsHead = True
ListBox1.ColumnCount = 1
ListBox1.RowSource = "GefilterteDatei!d2:d1000"
End Sub

Warum? Und sollte mir da jemand helfen können, wie geht es dann, das er dort keine Duplikate auswählen tut?
Dani hatt mir ja schon geholfen, nur wenn in den ListBoxen nichts drinsteht, geht bei dem Quellcode auch nicht los:

Private Sub CommandButton1_Click()
Dim i, Listenlänge As Long
Dim Fundort As Range
Dim Quelltabelle, Zieltabelle As Worksheet
Set Quelltabelle = Workbooks("Wasserfall.xls").Worksheets("GefilterteDatei")
Set Zieltabelle = Workbooks("Wasserfall.xls").Worksheets("Programmdatei")
Zieltabelle.Range("A1:Z1000").Delete
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 = 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
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 = 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

Hier sollte eigentlich auf Knopfdruck dann eben die "ausgefilterten" (keine Duplikate) Werte in den Listboxen (mehrfachauswahl möglich machen?!) mit den dazugehörigen Zeilen in ein neues Blatt kopiert werden.
Quasi ein großes herausfiltern (siehe Excel Autofilter, aber eben mehr als 2 Bedingungen!) und dann diese entstandene Tabelle kopieren...
Ist das halbwegs verständlich, komm hier echt nicht weiter und auch die ListBox versteh ich überhaupt nicht -.-
*Bitte-helfen* :-)
P.S.: Vorallem in Excel selber hab ich es mit Formularen schon probiert, da geht auch anzuklicken, mehrfachauswahl - aber wenn man dort was anklickt muss ja das dann mit nem Startbutton verbunden sein und dann die Quelldatei geprüft werden, und dann das Kopieren starten.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform - Listbox - Autofiltern - Neukopieren
25.05.2005 03:53:28
Dani
Hallo Pierre,
Füg mal folgende Routine in das Initialize-Ereigniss deiner UserForm ein. Sie Kopiert dir in diesem Falle die Spalte J von der Tabelle1 in die Spalte1 in der Tabelle3. Dort werden Duplikate gelöscht und danach das ganze der ListBox übergeben.
Gruss
Dani
Hab ich doch glatt den Code vergessen...
25.05.2005 03:56:16
Dani
Hallo Pierre,
Füg mal folgende Routine in das Initialize-Ereigniss deiner UserForm ein. Sie Kopiert dir in diesem Falle die Spalte J von der Tabelle1 in die Spalte1 in der Tabelle3. Dort werden Duplikate gelöscht und danach das ganze der ListBox übergeben.


      
Private Sub UserForm_Initialize()
  
Dim ws As Worksheet
  
Dim xErsteZeile As Long
  
Dim xZeile As Long
  ThisWorkbook.Worksheets("Tabelle1").Range("J:J").Copy Destination:=Tabelle3.Range("A:A")
  
Set ws = ThisWorkbook.Worksheets("Tabelle3")
  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
 ListBox1.RowSource = "Tabelle3!A:A"
 UserForm1.Show
End Sub 


Gruss
Dani
Anzeige

15 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige