Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aus Liste alle vorkommenden Einträge ...

Aus Liste alle vorkommenden Einträge ...
Peter
... in eine andere Tabelle übernehmen.
Guten Tag.
Ich habe eine grosse Datenmenge in Tabelle "Exportdaten". In Spalte B sind verschiedene Namen aufgeführt im Format: Name, Vorname (jeder kommt x-mal vor)
Nun möchte ich mittels Makro jeden Namen einmal in die Tabelle "Mitarbeiter", Spalte C ab Zeile 2 eintragen. Dabei sollen aus der Quellspalte nur Einträge berücksichtigt werden, die ein Komma mit anschliessendem Leerschlag ", " enthalten.
Leider habe ich keine Ahnung, wie man so etwas anstellt.
Wer kann mir helfen?
Danke und Gruss, Peter

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

Betreff
Benutzer
Anzeige
AW: Aus Liste alle vorkommenden Einträge ...
23.09.2009 10:42:16
Wolli
Hallo Peter,
ich würde das statt mit einem Makro mit einem Spezialfilter tun: Siehe Anlage!
https://www.herber.de/bbs/user/64605.xls
Gruß, Wolli
AW: Aus Liste alle vorkommenden Einträge ...
23.09.2009 12:15:15
Peter
Hallo Woli
Danke für die Anregung. Da ich jedoch verschiedene Listen so auswerten muss und dann die einzelnen Auswertungen (in der Tabelle "Mitarbeiter" vergleichen will, wäre es sehr hilfreich, wenn es trotzdem eine Möglichkeit mit einem Makro gäbe.
Gruss, Peter
AW: Aus Liste alle vorkommenden Einträge ...
23.09.2009 15:10:19
David
Hallo Peter,
als Grundcode:
Option Explicit
Sub umkopieren()
Dim i, llast, hit, Zelle1
For i = 1 To Range("A" & Rows.Count).End(xlUp).Row 'Quelldaten in Spalte A ab Zeile 1
If InStr(1, Cells(i, 1), ", ")  "" Then   'Abfrage auf Zeichenfolge
If Cells(1, 3)  "" Then Zelle1 = 1 Else Zelle1 = 0    'Ermitteln der letzten
llast = Range("C" & Rows.Count).End(xlUp).Row + Zelle1  'gefüllten Zelle Spalte C
If llast = 1 Then
Range("C" & llast) = Cells(i, 1)    'Eintragung des ersten Namens
Else
hit = Application.Match(Cells(i, 1), Range("C1:C" & llast), 0) 'prüfen, ob Name  _
bereits
If IsError(hit) Then Range("C" & llast) = Cells(i, 1)          'in Liste vorh. ist
End If
End If
Next
End Sub
Quelle ist Spalte A
Ziel ist Spalte C
Musst du natürlich auf deine Tabelle anpassen. Der Code ist recht rudimentär und ausbaufähig, z. Bsp. keinerlei Fehlerroutinen oder ähnliches drin.
Gruß
DAvid
Anzeige
AW: Aus Liste alle vorkommenden Einträge ...
23.09.2009 20:11:31
Peter
Hallo David
Vielen Dank. Ich werde das mal probieren, wenn ich eine kleinere Datenmenge bearbeiten muss. Im vorliegenden Fall sind etwa 20'000 Zeilen abzuarbeiten - und das würde wohl sehr lange dauern.
Gruss, Peter
AW: Aus Liste alle vorkommenden Einträge ...
24.09.2009 07:33:56
David
Hallo Peter,
nicht zwangsläufig.
Wenn du ein paar "Bremsen" löst, wird das auch in adäquater Zeit ablaufen.
Nach Sub() als erstes:
Application.Screenupdating = False
Application.EnableEvents = False
Application.Calculation = XLManual
und vor End Sub
dann die drei Zeilen wieder mit = False (bzw. XLAutomatic) negieren.
Gruß
David
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige