Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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
Liste ohne doppelte u. bestimmte Wörter
19.05.2022 16:46:13
Gerhard
Hallo zusammen
Heute habe ich mal ein etwas größeres Anliegen. In der Beispielmappe stehen in Spalte B Namen und rot geschriebene Worte (über bedingte Formatierung) wie geplante_Zeit, Noch_frei etc.
Diese Spalte hätte ich gerne ausgelesen via CommandButton, ohne Doppelte und ohne die rot geschriebenen Worte.
Jetzt kommt aber, wozu ich nichts finde.
In Tabelle 1 werden immer noch Namen hinzugefügt oder gelöscht.
In Tabelle 2 werden zu den einzelnen Namen in Spalte C, D, usw. noch weitere Daten hinzugefügt.
Das heißt einmal ausgelesen sollen neu hinzugekommene ausschließlich unten angefügt werden, sonst passen ja die hinten angefügten ausgefüllten Zellen nicht mehr zu den Namen. Gelöschte Namen sollen entfernt werden (Da dürfen die Zeilen, gerne einfach leer bleiben.
Ich hoff ich habe es einigermaßen verständlich geschrieben, woran ich verzweifle. Ich habe in der Beispielmappe mal n paar Daten händisch einfügt. Ich kann leider die original Datei aufgrund der enthaltenen Daten nicht hochladen
https://www.herber.de/bbs/user/153156.xlsx
Gruß Gerhard

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

Betreff
Datum
Anwender
Anzeige
AW: Liste ohne doppelte u. bestimmte Wörter
19.05.2022 17:48:17
UweD
Hallo
in ein normales Modul

 Private Sub tt()
Dim TB1 As Worksheet, TB2 As Worksheet, i As Long
Dim Sp As Integer, ZE As Integer, LR1 As Long, LR2 As Long
'*** bescheunigt das Makro
Application.ScreenUpdating = False
'*** Stammdaten Anfang
Set TB1 = Sheets("Tabelle1")
Set TB2 = Sheets("Tabelle2")
Sp = 2 'Spalte B
ZE = 12 'Daten stehen ab Zeile
'*** Stammdaten Ende
With TB1
LR1 = .Cells(.Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte
LR2 = TB2.Cells(TB2.Rows.Count, Sp).End(xlUp).Row
'Prüfen auf Neue
For i = ZE To LR1
Select Case .Cells(i, Sp)
Case "", "Geplante_Zeit", "Noch_frei"
'mach nix
Case Else
If WorksheetFunction.CountIf(TB2.Columns(Sp), .Cells(i, Sp)) = 0 Then 'noch nicht vorhanden
TB2.Cells(LR2 + 1, Sp) = .Cells(i, Sp)
LR2 = LR2 + 1
End If
End Select
Next
'Prüfen auf Gelöschte
For i = ZE To LR2
If WorksheetFunction.CountIf(.Columns(Sp), TB2.Cells(i, Sp)) = 0 Then 'nicht mehr vorhanden
TB2.Rows(i).ClearContents
End If
Next
End With
End Sub
LG UweD
Anzeige
AW: Liste ohne doppelte u. bestimmte Wörter
22.05.2022 09:51:04
Gerhard
Guten Morgen Uwe
Erstmal sorry für die späte Rückmeldung, war die ganze Woche unterwegs. Und ein noch größeres Dankeschön für deine Lösung - PERFEKT!!!!!
Sie funktioniert genauso wie ich es wollte.
Etzt hab ich nur eine klitzekleine Frage (es würde mir etwas händische Arbeit ersparen, aber wenn es zu viel aufwand is, kein Problem.)
Beim Arbeiten mit der Liste ist mir aufgefallen, das es vllt doch ganz gut wäre, wenn die Spalte rechts und links von Spalte B in der Helferliste (Also A & C) mit kopiert werden würden auf das Tabellenblatt 2. Hab dir nochmals ne Beispielmappe mit angehängt, wo ich in Tabelle 2 eingefügt habe, wie es aussehen sollte
https://www.herber.de/bbs/user/153199.xlsm
Könntest du mir dabei helfen?
Grüße Gerhard
Anzeige
AW: Liste ohne doppelte u. bestimmte Wörter
23.05.2022 08:56:26
UweD
Hallo nochmal
Also immer A bis C...
dann so

Private Sub tt()
Dim TB1 As Worksheet, TB2 As Worksheet, i As Long
Dim ZE As Integer, LR1 As Long, LR2 As Long
'*** bescheunigt das Makro
Application.ScreenUpdating = False
'*** Stammdaten Anfang
Set TB1 = Sheets("Tabelle1")
Set TB2 = Sheets("Tabelle2")
ZE = 12 'Daten stehen ab Zeile
'*** Stammdaten Ende
With TB1
LR1 = .Cells(.Rows.Count, "B").End(xlUp).Row 'letzte Zeile der Spalte
LR2 = TB2.Cells(TB2.Rows.Count, "B").End(xlUp).Row
'Prüfen auf Neue
For i = ZE To LR1
Select Case .Cells(i, 2)
Case "", "Geplante_Zeit", "Noch_frei"
'mach nix
Case Else
If WorksheetFunction.CountIf(TB2.Columns(2), .Cells(i, 2)) = 0 Then 'noch nicht vorhanden
TB2.Cells(LR2 + 1, 1).Resize(1, 3).Value = .Cells(i, 1).Resize(1, 3).Value
LR2 = LR2 + 1
End If
End Select
Next
'Prüfen auf Gelöschte
For i = ZE To LR2
If WorksheetFunction.CountIf(.Columns(2), TB2.Cells(i, 2)) = 0 Then 'nicht mehr vorhanden
TB2.Rows(i).ClearContents
End If
Next
End With
End Sub
LG UweD
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige