Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1292to1296
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

Teilstring in Spalte suchen

Teilstring in Spalte suchen
03.01.2013 10:30:13
dEllE
Hallo liebe Gemeinde,
wir haben mal wieder ein Problem, bei dem wir einfach nicht weiterkommen:
Wir möchten uns alle Artikel eines Lagerregals anzeigen lassen. Die Artikel liegen in einem Lagerfach z.B. 14/F. Wir geben in eine Zelle den Wert für "nur" das Regal ein z.B. 14/. Leider wird dieser "Teilstring" nicht gefunden. Desweiteren funktioniert das Makro auch nur, wenn wir in genau einer Zelle suchen und nicht in einer Range.
Wir haben jetzt hin- und her probiert, aber sind am Verzweifeln. Hat jmd. eine Ahnung wie genau wir das Makro umschreiben müssen?

Sub Erstelle_Druckausgabebogen()
Application.ScreenUpdating = False
Dim a As Long
Dim i As Long
Dim Lagerfach As Variant
Dim Suchbereich As Variant
Lagerfach = ThisWorkbook.Worksheets("Druckausgabe").Range("B1").Text
Suchbereich = ThisWorkbook.Worksheets("Artikel").Range("DA:DA").Text
a = 3 'Trage die gefundenen Werte ab der 3ten Zeile ein
For i = 1 To 1000
With Worksheets("Artikel")
If Lagerfach = Suchbereich Then
MsgBox "Wert gefunden"
'Worksheets("Artikel").Cells(i, "A").Copy _
'Destination:=Worksheets("Druckausgabe").Cells(a, "A")
'Worksheets("Artikel").Cells(i, "B").Copy _
'Destination:=Worksheets("Druckausgabe").Cells(a, "B")
'Worksheets("Artikel").Cells(i, "H").Copy _
'Destination:=Worksheets("Druckausgabe").Cells(a, "C")
a = a + 1
Else
MsgBox "Nix drin"
End If
End With
Next i
Application.ScreenUpdating = True
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Teilstring in Spalte suchen
03.01.2013 10:38:30
schauan
Hallo,
ich gehe davon aus, dass Du den String findest, wenn Du die manuelle Suche nutzt. Zeichne mal ein Makro zum Suchen und wWeitersuchen auf und vergleiche es mit Deinem code.
Wenn Du unbedingt eine Schleife willst, dann vergleiche mal in der Überwachung die Variablen Lagerfach und Suchbereich. Dann wirst Du diesen Fehler sehen.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

AW: Teilstring in Spalte suchen
03.01.2013 11:49:38
Rudi
Hallo,
das ist vollkommen falsch!
Suchbereich = ThisWorkbook.Worksheets("Artikel").Range("DA:DA").Text
ergibt ein Array. Suchbereich(1 To 1048576, 1 To 1)
Versuchs mal so:
Sub Erstelle_Druckausgabebogen()
Application.ScreenUpdating = False
Dim a As Long
Dim i As Long
Dim Lagerfach As Variant
Dim Suchbereich As Variant
With ThisWorkbook
Lagerfach = .Worksheets("Druckausgabe").Range("B1").Text
With .Worksheets("Artikel")
Suchbereich = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Resize(, 105)
End With
End With
a = 3 'Trage die gefundenen Werte ab der 3ten Zeile ein
For i = 1 To UBound(Suchbereich)
If Lagerfach Like Suchbereich(i, 105) & "*" Then
With Sheets("Druckausgabe")
.Cells(a, 1) = Suchbereich(i, 1)
.Cells(a, 2) = Suchbereich(i, 2)
.Cells(a, 3) = Suchbereich(i, 3)
End With
a = a + 1
End If
Next i
If a = 3 Then MsgBox "Nix Drin"
Application.ScreenUpdating = True
End Sub

Gruß
Rudi

Anzeige
AW: Teilstring in Spalte suchen
03.01.2013 14:46:18
dEllE
Hallo Rudi,
danke für das umfangreiche Umschreiben des Makro. So einigermassen können wir nachvollziehen was wir falsch gemacht hatten. Allerdings sind einige Sachen in Deiner Version für uns nicht nachvollziehbar.
Leider funktioniert es aber noch nicht. Nachdem wir das Makro Schritt für Schritt durchlaufen haben, ist uns aufgefallen, dass nur die Zellwerte .Cells(a, 1) = Suchbereich(i, 1) usw. kopiert werden, die im Suchbereich "keinen" Wert drin haben. Also wenn die Zelle kopmplett leer ist, werden die gewünschten Werte kopiert. Wenn "irgendein" Wert drin steht, wird nichts kopiert.

Anzeige
noch'n Versuch
03.01.2013 15:54:39
Rudi
Hallo,
ich verstehe das so:
Du schreibst in Druckausgabe!B1 das Fach und klickst auf einen Button.
Dann sollen aus Blatt Artikel alle aufgelistet werden, die in Spalte DA (Sp.105) das Fach stehen haben, bzw. dort ein Eintrag ist, der mit dem Wert aus Druckausgabe!B1 beginnt.
Ich hab das mal so geändert, dass Groß-/ Kleinschreibung ignoriert wird.
Sub Erstelle_Druckausgabebogen()
Application.ScreenUpdating = False
Dim a As Long
Dim i As Long
Dim Lagerfach As Variant
Dim Suchbereich As Variant
With ThisWorkbook
Lagerfach = .Worksheets("Druckausgabe").Range("B1").Text
If Lagerfach = "" Then Exit Sub
With .Worksheets("Artikel")
Suchbereich = .Range(.Cells(1, 1), .Cells(Rows.Count, 1).End(xlUp)).Resize(, 105)
End With
End With
a = 3 'Trage die gefundenen Werte ab der 3ten Zeile ein
For i = 1 To UBound(Suchbereich)
If LCase(Lagerfach) Like LCase(Suchbereich(i, 105)) & "*" Then
With Sheets("Druckausgabe")
.Cells(a, 1) = Suchbereich(i, 1)
.Cells(a, 2) = Suchbereich(i, 2)
.Cells(a, 3) = Suchbereich(i, 3)
End With
a = a + 1
End If
Next i
If a = 3 Then MsgBox "Nix Drin"
Application.ScreenUpdating = True
End Sub
Ansonsten mal ein Beispiel hochladen.
Gruß
Rudi

Anzeige
jetzt aber ...
03.01.2013 16:30:05
Rudi
Hallo,
Sub Erstelle_Druckausgabebogen111()
Application.ScreenUpdating = False
Dim a As Long
Dim i As Long
Dim Lagerfach As Variant
Dim Suchbereich As Variant
With ThisWorkbook
Lagerfach = .Worksheets("Druckausgabe").Range("B1").Text
If Lagerfach = "" Then Exit Sub
With .Worksheets("Artikel")
Suchbereich = .Range(.Cells(2, 1), .Cells(Rows.Count, 1).End(xlUp)).Resize(, 4)
End With
End With
a = 3 'Trage die gefundenen Werte ab der 3ten Zeile ein
For i = 1 To UBound(Suchbereich)
If LCase(Suchbereich(i, 4)) Like LCase(Lagerfach) & "*" Then
With Sheets("Druckausgabe")
.Cells(a, 1) = Suchbereich(i, 1)
.Cells(a, 2) = Suchbereich(i, 2)
.Cells(a, 3) = Suchbereich(i, 3)
End With
a = a + 1
End If
Next i
If a = 3 Then MsgBox "Nix Drin"
Application.ScreenUpdating = True
End Sub

Gruß
Rudi

Anzeige
AW: jetzt aber ...
03.01.2013 16:40:08
dEllE
Hi Rudi,
das funktioniert schon etwas besser. Jetzt werden ca. 2-3 Datensätze gefunden, obwohl bei unserem "Testregal" mehr als 30 Sätze zu finden wären. An was kann das denn noch liegen?

AW: jetzt aber ...
03.01.2013 19:02:25
Rudi
Hallo,
An was kann das denn noch liegen?
An den Daten.
Du musst schon ein paar Datensätze mehr zur Verfügung stellen. Nicht nur einen.
Gruß
Rudi

AW: jetzt aber ...
04.01.2013 06:50:15
schauan
Halo Elle,
Das Makro geht davon aus, dass die Angabe mit dem Lagerfach beginnt. Vermutlich hast Du ein Leerzeichen vor den nicht gefundenen Daten? Suche mal eine Zeile raus, die nicht übernommen wird und schaue genau, was drin steht. Wenn das so ist, könntest Du z.B. das Leerzeichen beim Vergleich mit Trim entfernen.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
jetzt aber...
07.01.2013 10:54:48
dEllE
Hallo,
aus welchem Grund auch immer funktioniert es nun! Einen Riesen Dank an Rudi!
Ich werde es noch ausgiebig testen, aber bisher schaut es sehr gut aus!
Ihr beide habt uns sehr geholfen!

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige