Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1312to1316
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

Spalte B

Spalte B
24.05.2013 09:44:50
Markus
Hallo,
ich habe eine Liste mit ca 1500 Einträgen von Maschinen- und Geräten.
In der Spalte B (B4:B2500) sind die Nrn.
Nun möchte ich via eines VBA eine neue Tabelle erstellen, mit allen Duplikaten.
Die Duplikate soll in der neuen Tabelle in Spalte A aufgeführt werden.
Nett wäre noch, wenn in Spalte B der Gerätetext (steht in der Ursprungstabelle in Spalte C) aufgeführt wurde.
Ich habe schon im Archiv gesucht, aber leider nix passendes Gefunden.
Die Ursprungstabelle heisst Gesamt-Liste.
Danke jetzt schon für eine Hilfestellung.
Markus

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Formel + Filter
24.05.2013 09:57:53
Marc
Moin!
Nimm eine Formel, die du runterziehst. Anschließend einen Filter setzen auf größer 1.
Formel für C4 "=ZÄHLENWENN($B$4:B4;B4)"
Gruß, MCO

AW: Spalte B
24.05.2013 10:04:07
Klaus
Hi Markus,
oder dieses Script nehmen:
Sub Dublikate()
'hier kannst du es auf deine Datei anpassen
Const RowFirst As Long = 4             'in Zeile 4 anfangen
Const ColNummer As Long = 2             'Nummern in Spalte B = 2
Const ColBeschreibung As Long = 3       'Beschreibung in Spalte C = 3
Const TabelleAlt As String = "Tabelle1" 'von hier
Const TabelleNeu As String = "Tabelle2" 'da hin
Const NeuColNummer As Long = 1          'Nummer in Spalte A schreiben
Const NeuColBeschreibung As Long = 2    'Beschr. in Spalte B schreiben
Dim RowLast As Long
Dim NeuRowFirst As Long
Dim Bereich As Range
NeuRowFirst = 2                         'Ab Zeile 2 schreiben
With Sheets(TabelleAlt)
RowLast = .Cells(.Rows.Count, ColNummer).End(xlUp).Row
For Each Bereich In .Range(.Cells(RowFirst, ColNummer), .Cells(RowLast, ColNummer))
'Möglichkeit 1: alle Duplikate nach dem ersten drüben auflisten
'Möglichkeit 2: alle Duplikate inklusive des ersten auflisten
If WorksheetFunction.CountIf(.Range(.Cells(RowFirst, ColNummer), .Cells(Bereich.Row,  _
ColNummer)), Bereich.Value) > 1 Then
'If WorksheetFunction.CountIf(.Range(.Cells(RowFirst, ColNummer), .Cells(RowLast,  _
ColNummer)), Bereich.Value) > 1 Then
Sheets(TabelleNeu).Cells(NeuRowFirst, NeuColNummer).Value = Bereich.Value
Sheets(TabelleNeu).Cells(NeuRowFirst, NeuColBeschreibung).Value = .Cells(Bereich. _
Row, ColBeschreibung).Value
NeuRowFirst = NeuRowFirst + 1
End If
Next Bereich
End With
End Sub

Anzeige
AW: Spalte B
24.05.2013 10:14:09
Markus
Hallo,
With Sheets(TabelleAlt)
da stimmt etwas nicht!
Ich kenne mich leider zuwenig aus.
Danke

AW: Spalte B
24.05.2013 10:21:37
Klaus
Hi,
oben im Code steht:
Const TabelleAlt As String = "Tabelle1" 'von hier
Const TabelleNeu As String = "Tabelle2" 'da hin
Benenne deine Tabellen als "Tabelle1" und "Tabelle2".
Oder ändere den Code.
Wenn deine Auflistung in einer Tabelle Namens "VieleMaschinen" steht, und du die Duplikatliste in einer Tabelle namens "Doppelte" haben willst, dann so:
Const TabelleAlt As String = "VieleMaschinen" 'von hier
Const TabelleNeu As String = "Doppelte" 'da hin
Sich nicht auskennen ist kein Verbrechen ... aber wenn du nicht mal eine Tabellenbenennung selbst hinbekommst, dann solltest du bei jedem Beitrag eine Musterdatei dazu laden! Dann können "wir" Helfer das direkt an deine Datei anpassen und müssen keine Variablen erraten.
An dieser Stelle entschuldige ich mich dafür, den Code so flapsig kommentiert zu haben. Ich hätte kommentieren müssen
Const TabelleAlt As String = "Tabelle1" 'hier gehört der Blattnamen der Ursprungstabelle hin

dann hättest du das bestimmt selbst erkannt.
Übrigens:
With Sheets(TabelleAlt)
da stimmt etwas nicht!

ist nicht sehr Hilfreich!
Wenn du einen Fehler bekommst, dann schreib doch hier ins Forum:
With Sheets(TabelleAlt)
verursacht Fehler #9: Suscript out of Range

dann können die Helfer gleich was damit anfangen.
Grüße,
Klaus M.vdT.

Anzeige
das Script in schnell
24.05.2013 10:39:30
Rudi
Hallo,
immer erst sammeln und dann eintragen.
Sub Duplikate()
'hier kannst du es auf deine Datei anpassen
Const RowFirst As Long = 4             'in Zeile 4 anfangen
Const ColNummer As Long = 2             'Nummern in Spalte B = 2
Const ColBeschreibung As Long = 3       'Beschreibung in Spalte C = 3
Const TabelleAlt As String = "Tabelle1" 'von hier
Const TabelleNeu As String = "Tabelle2" 'da hin
Const NeuColNummer As Long = 1          'Nummer in Spalte A schreiben
Const NeuColBeschreibung As Long = 2    'Beschr. in Spalte B schreiben
Dim RowLast As Long
Dim NeuRowFirst As Long
Dim Bereich As Range
Dim objMat As Object
NeuRowFirst = 2                         'Ab Zeile 2 schreiben
Set objMat = CreateObject("Scripting.dictionary")
With Sheets(TabelleAlt)
RowLast = .Cells(.Rows.Count, ColNummer).End(xlUp).Row
For Each Bereich In .Range(.Cells(RowFirst, ColNummer), .Cells(RowLast, ColNummer))
If WorksheetFunction.CountIf(.Range(.Cells(RowFirst, ColNummer), _
.Cells(Bereich.Row, ColNummer)), Bereich.Value) > 1 Then
objMat(Bereich.Value) = Array(Bereich.Value, .Cells(Bereich.Row, ColBeschreibung).Value) _
End If
Next Bereich
End With
If objMat.Count Then Sheets(TabelleNeu).Cells(NeuRowFirst, NeuColNummer).Resize(objMat.Count,  _
2) = _
WorksheetFunction.Transpose(WorksheetFunction.Transpose(objMat.items))
End Sub

Gruß
Rudi

Anzeige
online-excel.de/excel/singsel.php?f=8 (owT)
24.05.2013 10:10:05
EtoPHG

? AW: online-excel.de/excel/singsel.php?f=8
24.05.2013 10:12:54
Klaus
Hallo Hansueli,
er will nur Duplikate auflisten. Soweit ich weiss, listet der Spezialfilter ohne Duplikate, ist hier also genau nicht das Mittel der Wahl.
Wenn du einen Tip hast, wie der Spezialfilter diese Aufgabe erfüllt, immer her damit :-)
Grüße,
Klaus M.vdT.

Mit Suchkriterien(bereich) auf Duplikate (owT)
24.05.2013 11:12:36
EtoPHG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige