Hallo,
ich habe folgendes Problem:
Ich habe eine Excel-Datei mit sehr vielen Tabellenblättern, und will herausfinden wie oft eine Kundennummer darin aufgeführt ist.
Ich habe ein Makro welches die Spalte C aller Tabellenblätter nach dem Wert welchen ich in eine MessageBox eingebe durchsucht und bei Treffern die jeweilige Zeile kopiert und in mein Sheet einfügt.
Jetzt mein Problem:
Wenn die Spalte A der Zeile nicht gefüllt ist dann überschreibt das Makro die jeweilige Zeile mit dem nächsten Treffer.
Gibt es eine Möglichkeit den Code so abzuändern, dass das Überschreiben verhindert wird?
mein Code sieht so aus:
Sub SearchSheets()
'
Dim FirstAddress As String, WhatFor As String
Dim Cell As Range, Sheet As Worksheet
'
WhatFor = InputBox("Kundennummer eingeben", "Kundennummer")
If WhatFor = Empty Then Exit Sub
'
For Each Sheet In Sheets
If Sheet.Name <> "SEARCH" Then
With Sheet.Columns(3)
Set Cell = .Find(WhatFor, LookIn:=xlValues, LookAt:=xlPart)
If Not Cell Is Nothing Then
FirstAddress = Cell.Address
Do
Cell.EntireRow.Copy _
Destination:=Sheets("SEARCH").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
Set Cell = .FindNext(Cell)
Loop Until Cell Is Nothing Or Cell.Address = FirstAddress
End If
End With
End If
Next Sheet
'
Set Cell = Nothing
End Sub
Vielen Dank!
|