Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
488to492
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
488to492
488to492
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Liste aus Spalte extrahieren
28.09.2004 07:23:53
drop
Hallo zusammen!
Ich hätte gerne ein Makro, das eine bestimmte Spalte in ein anderes Tabellenblatt kopiert und danach alle doppelten Einträge löscht.
(damit ich die neue Liste als Filterkriterium benutzen kann)
Besten Dank für Eure Hilfe.

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste aus Spalte extrahieren
28.09.2004 07:32:24
Oberschlumpf
Hi drop
Sollen wir wieder die Glaskugel hervorkramen müssen, oder verrätst Du uns weitere Infos? :-)
Um welche Spalte handelt es sich?
Betrifft es die ganze Spalte, oder nur einen best. Bereich (Bsp A1 - A100)
Ich frag nur deshalb genau nach, da Du ja nicht so viele VBA-Kenntnisse hast.
Ich möchte nur vermeiden, dass wir dann im Nachhinein noch den VBA-Code anpasesn müssen, da Du vllt dann nicht weißt, was Du tun musst.
Bis denne :-)
Thorsten
AW: Liste aus Spalte extrahieren
28.09.2004 07:52:05
drop
ok sry, hier die Details:
Es geht um Spalte C (C11:C1205) wobei sich die Endzahl natürlich verändern kann, es handelt sich aber immer um die letzte verwendete Zeile.
In der Spalte C habe ich Regionen eingegeben. Und brauche nun eine Liste mit allen Regionen um ein Dropdownmenu zu machen, mit welchem ich die Regionen filtern kann (genau wie der Autofilter).
Kann ich den Code (um die mehrfachen Einträge zu filtern) auch direkt in die ComboBox einbauen? Dann könnte ich den Zwischenschritt mit der temporären Liste sparen.
Besten Dank!
Anzeige
AW: Liste aus Spalte extrahieren
28.09.2004 08:38:54
Oberschlumpf
Hi Drop (oder wie Du auch heißt ;-) )
Ich hab dies hier "gebastelt":


Private Sub Workbook_Open()
    Dim wks As Worksheet
    Dim liZeile As Integer
    Dim liInhalt As Integer, liDoppelt As Integer, lboDoppelt As Boolean
    Dim liEintrag As Integer
    
    'für "Tabelle1" musst Du den Tabellenblattnamen angeben, um den es hier geht
    Set wks = Worksheets("Tabelle1")
    
    'ab hier wird die Anzahl der eingetragenen Regionen ermittelt
    liZeile = 11
    
        Do Until wks.Range("C" & liZeile).Value = ""
            liZeile = liZeile + 1
        Loop
    
    ReDim lstrInhalt(liZeile - 11) As String
    
    'ab hier werden doppelte Einträge von Regionen ausgefiltert
    liZeile = 11
    
        Do Until wks.Range("C" & liZeile).Value = ""
                
                For liDoppelt = 0 To liInhalt
                    If lstrInhalt(liDoppelt) = wks.Range("C" & liZeile).Value Then
                        lboDoppelt = True
                        Exit For
                    End If
                Next
                
                    If lboDoppelt = False Then
                            lstrInhalt(liInhalt) = wks.Range("C" & liZeile).Value
                            liInhalt = liInhalt + 1
                        Else
                            lboDoppelt = False
                    End If
            
            liZeile = liZeile + 1
            
        Loop
    
    'ab hier werden die jetzt nur noch 1x vorkommenden Regionen in die Combobox eingetragen
    Sheets("Tabelle1").ComboBox1.Clear
        
        For liEintrag = 0 To liInhalt - 1
            Sheets("Tabelle1").ComboBox1.AddItem lstrInhalt(liEintrag)
        Next
    
End Sub


Und hier ist die Datei zum Testen:
https://www.herber.de/bbs/user/11386.xls
Bei weiteren Fragen kannst Du Dich ja hier melden.
Konnte ich denn helfen?
Ciao
Thorsten
Anzeige
AW: Liste aus Spalte extrahieren
28.09.2004 09:20:10
Reto
Hallo Thorsten.
Besten Dank. genauso habe ich mir das vorgestellt wie es in Deiner Beispielmappe funktioniert!
Die Spalte C ist nicht durchgehend mit Regionen gefüllt. Es hat auch leere Zellen. Und dort unterbricht es den Prozess. Kann man das einbauen oder wäre es sinnvoller, wenn ich bei den leeren Zellen einfach "diverse" reinschreiben würde?
Die Liste wird jedes mal neu gemacht, wenn ich das Dokument öffne. Kann dieser Code auch ein Makro sein, denn ich mit einem einfach so aufrufen kann oder funktioniert der nur als workbook code?
Nochmals Besten Dank!
Reto Drop E.
Anzeige
AW: Liste aus Spalte extrahieren
28.09.2004 09:59:40
Oberschlumpf
Hi Drop
Versuch es mal mit dieser Datei:
https://www.herber.de/bbs/user/11391.xls
Ich hab den Code so umgeändert, dass nun JEDE gefüllte Zelle in Spalte C berücksichtigt wird.
Zusätzlich hab ich einen Klick-Button eingebaut, der bei Bedarf die Comboliste sofort aktualisiert.
Bedeutet, dass Du in Spalte C eine weitere Region einträgst, und nach dem Klick auf den Button, steht auch diese neue Region sofort in der Combobox zur Verfügung.
Wenn Du den Button nicht haben willst, kannst Du das Makro bei Bedarf über
Extras/Makros
aufrufen.
Weitere Fragen UND auch Erfolgsmeldungen ;-) HIER posten :-)
Bye
Thorsten
Anzeige
AW: Liste aus Spalte extrahieren
28.09.2004 10:11:13
Reto
Hallo Thorsten
Besten Dank für den neuen Code! Ich mache es aber trotzdem so, dass ich die leeren Zeilen mit "diverse" ausfülle. So kann ich diese Zeilen bei Bedarf auch filtern. Das mit dem Aktualisiern Knopf hilft mir auch sehr weiter.
Ich habe denn Code jetzt für mehrere Spalten benutzt und so ein Filtersystem aufgebaut. Bin noch am basteln, aber sehr zuversichtlich, dass ich das hinbekomme. Ich werde das Ergebnis dann posten. (ps. aber nicht lachen über den Newbie-Code by Reto, habe eigentlich keine Ahnung von VBA oder sonstigen Programmiersprachen; wie sicher schon bemerkt :) )
Gruss Reto
Anzeige
AW: Liste aus Spalte extrahieren
WernerB.
Hallo ?,
in diesem Forum bitte mit Real(vor)namen auftreten; siehe dazu bitte auch die "Forums-FAQ"!. Danke!
Zu Deinem Problem: Das nachstehende Code-Beispiel kopiert vom Blatt "Tabelle1" die Werte von "C11:Cxx" in das Blatt "Tabelle2" (Spalte "A") und eliminiert die doppelt vorkommenden Werte nach vorheriger Sortierung.

Sub KopiereSpalte()
Dim laR As Long, i As Long
With Worksheets("Tabelle1")
laR = .Cells(Rows.Count, 3).End(xlUp).Row
Worksheets("Tabelle2").Range("A11:A" & laR).Value = _
.Range("C11:C" & laR).Value
End With
With Worksheets("Tabelle2")
.Range("A1:A" & laR).Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
laR = .Cells(Rows.Count, 1).End(xlUp).Row
For i = laR To 2 Step -1
If .Cells(i, 1).Value = .Cells(i - 1, 1).Value Then .Rows(i).Delete Shift:=xlUp
Next i
End With
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Liste aus Spalte extrahieren
Reto
Hallo Werner
Folgender Fehler kommt, wenn ich Dein Code versuche auszuführen.
- Index außerhalb des gültigen Bereichs (Fehler 9) -
Habe leider zu wenig VBA-Wissen um das Problem zu finden.
Gruss Reto Drop E.
AW: Liste aus Spalte extrahieren
WernerB.
Hallo Reto,
den von Dir gemeldeten Fehler kann ich bei mir nicht nachvollziehen; bei mir läuft das Makro ohne jegliche Beanstandung wie beschrieben durch.
Ohne Deine Datei kann ich dazu leider keine weitere Aussage machen.
Gruß
Werner

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige