Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Excel Suchfunktion für Zeilen





Frage

Schönen guten tage, Wer könnte mir helfen? Ich bräuchte eine Makro Suchfunktion die mir aus Spalte E immer die entsprechne gesuchte Nummer/Wort findet und anschliesend in Spalte L kopiert aber in die selbe Zeile wie das gefundene Objekt und danach solle mir die ganze Zeile makiert werden wo in Spalte E das gesuchte Objekt drinne steht. Da nach soll die Makierte Zeile in eine andere Tabelle (Tab_Kontrolle) kopiert werden. Wenn diese Funktion öfters ausgefürt wird dann sollen die Kopierten Zeilen in der Neuentabelle (Tab_Kontrolle)untereinander gespeichert werden. Bitte Bitte ich brauch es dringend und selber bin ich zu blöd es in Microsoft Visual Basic zu erstellen. Wer kann das? Ihr wärt mir eine große hilfe ich selber sitze jetzt schon drei tage drann und bin langsam am verzeifeln.

Antwort 1 von ypsilon

hi,
wenn du uns vorher noch verraten hättest wo der suchbegriff herkommt dann hättest du jetzt ein komplettergebnis
so musst du mit der "hälfte" leben

ins klassenmodul der suchtabelle:

Sub finden()
Dim Wert
Dim loletzte As Long
Wert = "Test" ´Wert = "Was auch imer du finden willst und wo es herkommt"
loletzte = IIf(IsEmpty(Worksheets("Tab_Kontrolle").Range("A65536")), Worksheets("Tab_Kontrolle").Range("A65536").End(xlUp).Row, 65536) + 1
Set c = Columns(5).Find(Wert, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Cells(c.Row, 12) = c.Value
Rows(c.Row).Copy Destination:=Worksheets("Tab_Kontrolle").Rows(loletzte)
loletzte = loletzte + 1
Set c = Columns(5).FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End Sub

cu Micha

Antwort 2 von Hellchampion

Ich habe in der Spalte L immer Auftragsnummern (L-3082947385) diese sollen dann über eine Suchfunktion abgerufen werden. Ich habe so ca. 500 Auftragsnummern. Die sollen dann über eine Suchfunktion gesucht werden. Das weitere steht ja oben.

Wenn noch fragen sind dann stellt sie mir.

Schon mal herzlichen dank für die hilfe.
Hellchampion.

Antwort 3 von Hellchampion

den Wert will ich selber eingegeben. Es soll ein Fenster sich öffnen wo dann drinne steht "Bitte die gesuchte Auftragsnummer eingeben" Ich gib dann nicht die Ganze Auftragsnummer ein sondern nur die letzten drei oder vier Zahlen ein und dann wie beschriebem Zelle kopieren wo die Auftragsnummer drinne steht. Diese dann in Spalte L und in die selbe Zeile und dann die ganze Zeile Kopieren und in Tab_Kontrolle speichern.

Ich hoffe das reicht an Infos

Antwort 4 von ypsilon

sorry, keine weitere hilfe von mir
ich beantworte GRUNDSÄTZLICH keine crosspostings
cu Micha

Antwort 5 von Hellchampion

Ok nochmals danke ich habe mir jetzt noch eine eigene Suchfunktion geschrieben wo ich selber die Auftragsnummer eingeben kann. Das Modul was du mir gebastelt hast hat einwand frei funktioniert.

Noch mal vielen dank.


Sub finden()

Dim Auftragsnummer As String
Dim loletzte As Long




Range("L1").Select
ActiveCell.FormulaR1C1 = "Kontrolle"
Range("I1").Select
Selection.Copy
Range("L1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Selection.Interior.ColorIndex = 3
Columns("L:L").Select
Selection.ColumnWidth = 13.71


Auftragsnummer = InputBox("Die Auftragsnummer eingeben." & _
Chr(10) & _
"Es wird die Auftragsnummer gesucht.", _
"Auftragsnummer suchen")
Columns("E:E").Select
Selection.Find(what:=Auftragsnummer, after:=ActiveCell, LookIn:=xlValues, lookat _
:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
False).Activate

If Err <> 0 Then
MsgBox "Kann die Auftragsnummer nicht finden " & Auftragsnummer
End
End If
If Auftragsnummer = False Then
Range("A1").Select
End
End If

loletzte = IIf(IsEmpty(Worksheets("Tab_Kontrolle").Range("A65536")), Worksheets("Tab_Kontrolle").Range("A65536").End(xlUp).Row, 65536) + 1
Set c = Columns(5).Find(Auftragsnummer, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
Cells(c.Row, 12) = c.Value
Rows(c.Row).Copy Destination:=Worksheets("Tab_Kontrolle").Rows(loletzte)
loletzte = loletzte + 1
Set c = Columns(5).FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End Sub


Aber leider Überschreibt er mir immer die Daten in Tab_Kontrolle, wenn ich das Makro ein zeites mal ausführe.
Frage müßte ich dann noch eine Counter (Zähler ) einbauhen, das meine daten die in der Tab_Kontrolle liegen nicht überschrieben werden? So das er mir die Tab_Kontrolle Tabelle immer weite führt undnicht überschreibt? Wie kann ich das denn noch realiesieren?

Vielen dank für die Hilfe
Hell

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: