Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1236to1240
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

Spalteninhalte ohne doppelte in neue Spalte

Spalteninhalte ohne doppelte in neue Spalte
Jean-Pierre
Hallo zusammen,
ich möchte gerne aus Spalte B (beginnend B2) alle Inhalte exklusive der doppelten in Spalte C (beginnend C2 nach unten) aufgeführt haben.
Ich habe diesen Code hier gefunden https://www.herber.de/forum/archiv/1232to1236/t1232278.htm
von Josef Ehrensberger der gefällt mir soweit ganz gut aber ist halt nicht auf meine Situation angepasst.
Ich bin leider nicht so erfahren was VBA betrifft, hab da noch keine Lektüre gefunden die es Neulingen wie mir verständlich macht :)
Könnte mir da vielleicht jemand behilflich sein und den Code anpassen das eben alles aus B kopiert wird und ohne doppelte in C eingefügt wird?
Ich bedanke mich schon mal jetzt für's drüber schauen.
Gruß aus dem Frankenland
Jean-Pierre
AW: Spalteninhalte ohne doppelte in neue Spalte
24.11.2011 21:58:10
firmus
Hallo Jean-Pierre,
mit VBA=nein würde ich jetzt auch nicht damit anfangen. Übe erst mal mit Tutorials.
Zu Deinem Problem.
1. sortiere nach Spalte B
2. setze in Spalte C, beginnend mit C2 die formel: =wenn(b2=b1;c2=c1+1;1)
(die werte in spalte B werden für jeden Wert numeriert.)
3. Filtere die Spalte C auf den Wert "1".
(Damit bekommst Du pro Wert in Spalte B einen eindeutigen Wert
4. Kopiere diese gefilterten Werte
Falls Du in die gleiche Tabelle kopierst stimmt die logische Struktur nicht mehr.
(Was sollen die Spalten und Zeilen jeweils darstellen? - dann wären 2 logische Überlegungen in einem
Blatt - immer schlecht für xls-logische Verarbeitung.
Viel Erfolg,
Gruß aus Schwaben,
Firmus
Anzeige
AW: Spalteninhalte ohne doppelte in neue Spalte
24.11.2011 22:20:54
Jean-Pierre
@ Firmus
ich möchte das schon gerne mit VBA lösen und anhand von meinen Beispielen auch lernen bzw. verstehen aber ich danke Dir für Deine Rücksichtnahme - nicht selbstverständlich in unserer Welt :)
Werte ohne Redundanzen in neue Spalte kopieren
24.11.2011 22:04:02
NoNet
Hallo Jean-Pierre,
SeppsCode kopiert nicht, sondern löscht die redundanten Zellen, daher ist er für Dein anliegen wohl nicht ganz geeignet.
Hier mein Codevorschlag : Es werden alle Zellen der Spalte B überprüft. Wenn der Wert der aktuellen Zelle aus Spalte B noch nicht in Spalte C vorhanden ist (überprüft mit ZÄHLENWENN() - bzw. VBA-Anweisung : Application.CountIf()), dann wird der Wert in die nächste freie Zelle der Spalte C eingetragen.
Sub Werte_ohne_Redundanzen_Kopieren()
'Kopiert alle Werte der Spalte B EINMALIG nach Spalte C - ohne Redundanzen
'24.11.2011, NoNet - www.excelei.de
Dim lngZQ As Long, lngZZ As Long 'Zeilen-Variablen für Quelle/Ziel
Dim lngSQ As Long, lngSZ As Long 'Spalten-Variablen für Quelle/Ziel
lngSQ = 2 'Werte aus Quell-Spalte 2 = Spalte B
lngSZ = 3 'Werte nach Ziel-Spalte 3 = Spalte C
Columns(lngSZ).ClearContents 'Zielspalte zuvor löschen !
For lngZQ = 2 To Cells(Rows.Count, lngSQ).End(xlUp).Row
'Per ZÄHLENWENN() prüfen, ob Wert bereits in ZIEL-Spalte vorhanden ist :
If Application.CountIf(Columns(lngSZ), Cells(lngZQ, lngSQ)) = 0 Then
'Wenn der Wert noch NICHT in der ZIEL-Spalte vorhanden ist :
lngZZ = Cells(Rows.Count, lngSZ).End(xlUp).Row + 1
Cells(lngZZ, lngSZ) = Cells(lngZQ, lngSQ)
End If
Next
End Sub
Gruß, NoNet
Anzeige
Alternative ohne VBA: Spezialfilter ohne Duplikate
24.11.2011 22:07:17
NoNet
Hallo Jean-Pierre,
wenn Du das evtl. auch ohne VBA lösen möchtest, dann empfehle ich dir den "Spezialfilter ohne Duplikate" - bei "Excel gut" gehe ich davon aus, dass Du diesen kennst !?!?
Gruß, NoNet
AW: Alternative ohne VBA: Spezialfilter ohne Duplikate
24.11.2011 22:21:41
Jean-Pierre
@ NoNet
Danke, den Code werde ich ausprobieren, muss ich den in ein Modul einbinden?
Und den Sortieren Filter kenne ich natürlich möchte das nur gerne automatisch gemacht haben, da ich in einem Tab Daten reinkopiere und der rest von selbst abgearbeitet wird.
Dieses Excelsheet ist im grunde ein Tool was aus "unreinem" Text einen importfähigen "sauberen" Text macht.
Gruß Jean-Pierre
Anzeige
Sortieren-Filter ? - Was ist das denn ? ;-))
24.11.2011 22:33:15
NoNet
Hallo J.P.,
Und den Sortieren Filter kenne ich natürlich 

Da kennst Du mehr als ich, denn den Sortieren-Filter habe ich nie erwähnt... ;-))
Zu Deiner Frage : Ja, der gesamte Code gehört in ein allgemeines Modul im VBA-Editor :
- Kopiere den gesamten Code von SUB... bis End Sub
- Wechsle mit Alt+F11 in den VBA-Editor
- wähle im Menü "Einfügen - Modul"
- füge den zuvor kopierten Code in das Modulfenster auf der rechten Seite ein
Den VBA-Editor kannst Du nun wieder schließen. Wenn Du die Mappe speicherst (XLS bis Excel 2003 oder XLSM ab Excel 2007), wird der VBA-Code mitgespeichert.
Den Code kannst Du im VBA-Editor per F5 ausführen oder aus dem Tabellenblatt per Alt+F8 (bzw. Menü "Extras - Makros - Makro").
Gruß, NoNet
Anzeige
AW: Sortieren-Filter ? - Was ist das denn ? ;-))
24.11.2011 22:45:13
Jean-Pierre
Hehe...Filter dann Spezialfilter war von mir gemeint :)
Danke - Gestestet und funktioniert hervorragend!
Vielen Dank :)
Gruß Jean-Pierre
AW: Sortieren-Filter ? - Was ist das denn ? ;-))
24.11.2011 23:17:46
Jean-Pierre
Habe noch eine Frage NoNet,
wie/wo füge ich diesen Code ein das ich in einem anderen Tabellenblatt diesen mittels Button ausführen kann?
Habe bis jetzt eine Befehlsschaltfläche in Tab 1 erstellt (Die Sortierung Dank Deinem Code findet in einem anderen Tab statt.
Unter Code habe ich diesen eingefügt, jedoch erfolgt bei Klick auf Button das Einfügen exkl. doppelter nicht.
Ich vermute, es liegt daran das in dem Code der eindeutige Verweis zu dem Tab fehlt oder?
Gruß Jean-Pierre
Anzeige
Code in anderem Tabellenblatt ausführen
25.11.2011 00:38:17
NoNet
Hallo J.P.,
Du hast mit Deiner Vermutung Recht, dass der "Verweis" zum anderen Tabellenblatt angegeben werden muss, falls das Makro nicht im aktuellen Blatt ausgeführt werden soll.
Das macht man in VBA mit dem Konstrukt :
 'Tabelle2 ist das Blatt, auf dem die Aktionen durchgeführt werden sollen
With Sheets("Tabelle2")
'...hier der Code
End With

Die Zell-/Bereichsangaben, die sich auf dieses Blatt beziehen müssen dann zur Kennzeichnung mit einem vorangestellten Punkt . beginnen :
Also z.B. .Cells(...,....) anstatt nur Cells(...,....)
Genauer gesagt ist das eine Kurzschreibweise für die exakte Objektbezeichnung Sheets("Tabelle2").Cells(...,....)
Schau dir doch mal das angehängte Beispiel an : Button in "Tabelle1", Daten in "Tabelle2" :
https://www.herber.de/bbs/user/77661.xls
Gruß und gute Nacht, NoNet
Anzeige

87 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige