Hallo,
ich hätte mal eine Frage und zwar...
Ich habe eine Excel Datei. Darin gibt es zwei Tabellenblätter.
Tabelle1 und Tabelle2.
In Tabelle 1 steht ungefähr folgendes:
A B C D
Anzahl_1 Preis A-Nummer A-Bezeichnung
1 200 100,00 1234 ABC
2 100 90,00 23532536 ABC
3 150 150,00 1234 ABC
4 100 50,00 23532536 CVB
5 90 50,00 5678 CVB
Und ich möchte eben das die Spalte C durchsucht wird auf die Nummer 23532536 (bestenfalls soll man sie noch durch eine Input-Box vorher abfragen können (also welche Nummer gesucht ist).
Wenn er die Nummer (für die er jede Zeile in Spalte C absucht) gefunden hat, soll er diese Zelle
und die Zelle links daneben (also die aus Spalte B) kopieren und in Tabelle2 einfügen.
Er zeigt mir manchmal bei "UsedRange" an, dass er die Methode bzw. das Objekt nicht findet.
Mir also bitte jemand den Code anpassen? Danke!
Weitere Beispiele hier wären also C1 und B1 (da C1 auch den Wert 23532536 hat).
Natürlich habe ich eine viel größere und längere Tabelle. Aber im Prinzip schaue ich mir aber jede Zeile in Spalte B an und prüfe sie ob sie den Wert 23532536 enthalten und wenn ja, dann soll er die Zelle in der es steht und die Zelle links daneben in ein anderes Worksheet (Tabelle2) kopieren.
Brauche dringend Hilfe und es wäre gut, wenn die Variablen einfach gehalten und die Erklärungen ebenfalls einfach sind. Bin Anfänger.
Würde mich über den entsprechenden Code freuen. Danke.
Mir wurde auch bereits ein Code zugesendet, aber der müsste angepasst werden. Danke.
Hier der Code:
Option Explicit
Public Sub test()
Const MY_NUMBER As Long = 23532536
Dim avntSource() As Variant, avntTarget() As Variant
Dim ialngCount As Long, ialngRow As Long
avntSource() = Tabelle1.UsedRange.Value
For ialngRow = 1 To UBound(avntSource)
If avntSource(ialngRow, 2) = MY_NUMBER Then
ReDim Preserve avntTarget(1, ialngCount) As Variant
avntTarget(0, ialngCount) = avntSource(ialngRow, 1)
avntTarget(1, ialngCount) = avntSource(ialngRow, 2)
ialngCount = ialngCount + 1
End If
Next
If ialngCount = 0 Then
Call MsgBox(Prompt:="Die Zahl wurde nicht gefunden..!", _
Buttons:=vbExclamation, Title:="Datensuche")
Else
With Tabelle2
Call .UsedRange.ClearContents
.Range(.Cells(1, 1), .Cells(UBound(avntTarget, 2) + 1, 2)).Value = _
WorksheetFunction.Transpose(avntTarget())
End With
End If
End Sub
|