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

Wortteil suchen und in nebenstehende Zelle schreib

Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 08:31:52
Roger
Hallo zusammen
Ich möchte gerne via VBA in Spalte A nach einem Wortteil suchen.
z.b. nach dem Teil stadt
Da würde dann in Spalte A stehen Burgstadt, Oberstadthofen etc.
Nun soll er wenn der z.b. in A3 diesen teil finden diesen Suchbegriff stadt in B3 einfügen. Zum suchen habe ich folgenden Code er findet mir das Wort nun bräuchte ich lediglich noch den Kopierbefehl der nach If InStr(Cells(lngZeile, 1), arrWerte(bytWerte)) > 0 Then folgt.
Sub suchkop()
Dim lngZeile As Long
Dim lngZaehler As Long
Dim arrWerte()
Dim bytWerte As Byte
arrWerte = Array("Suchbegriff", "stadt")
Application.ScreenUpdating = False
For lngZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
For bytWerte = 0 To UBound(arrWerte())
If InStr(Cells(lngZeile, 1), arrWerte(bytWerte)) > 0 Then
End If
End Sub
Vielen Dank und Gruss
Roger

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 08:56:57
MCO
Hallo!
Ich hab mal ein paar Zeilen dazugeschrieben, aber nicht getestet.
Die Suchbegriffschleife wird verlassen, wenn ein Suchbegriff gefunden u. in Spalte "B" geschrieben wurde. Das würde aber nur zum Problem, wenn ein Ort mehreren suchbegriffen entspricht (zb. Ober / hausen )
Anmerkung: du weißt schon, dass du im Array nicht "Suchbegriff" stehen lassen mußt, oder? Da gehören wirklich nur die Begriffe rein!
Gruß, MCO

Sub suchkop()
Dim lngZeile As Long
Dim lngZaehler As Long
Dim arrWerte()
Dim bytWerte As Byte
arrWerte = Array("Suchbegriff", "stadt")
Application.ScreenUpdating = False
For lngZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
For bytWerte = 0 To UBound(arrWerte())
If InStr(Cells(lngZeile, 1), arrWerte(bytWerte)) > 0 Then
cells((lngZeile, 2) = arrWerte(bytWerte)
Exit for
end if
next for
next for
End Sub

Anzeige
AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 09:09:58
Roger
Hallo MCO
Danke für den Hinewis betreffend "Suchbegriff" das wusste ich nicht.
Wenn ich nun dein Makro ausführe kommt ein Syntaxfehler bei cells((lngZeile, 2) = arrWerte(bytWerte)
oran liegt das?
Danke und Gruss
Roger

Instr beginnt mit 1
19.02.2015 10:24:24
MCO
If InStr(1,Cells(lngZeile, 1), arrWerte(bytWerte))
Gruß, MCO

AW: Instr beginnt mit 1
19.02.2015 10:31:25
Roger
Hallo MCO
Leider kommt der Syntaxfehler immer noch.
Folgende linien sind im code rot
cells((lngZeile, 2) = arrWerte(bytWerte)
next for
next for
Gruss
Roger

AW: Instr beginnt mit 1
19.02.2015 10:32:51
RPP63
Klar MCO!
Ist aber optional und wird, wenn nicht angegeben, als 1 vorausgesetzt.
Gruß Ralf

Anzeige
Das kommt vom nicht-Testen :-(
19.02.2015 11:04:57
MCO
Hallo!
Es war eine Klammer bei cells zuviel
next for ist falsch, es muß for entweder fehlen oder die Variable nochmal genannt sein.
Hier die Korretur:

Sub suchkop()
Dim lngZeile As Long
Dim lngZaehler As Long
Dim arrWerte()
Dim bytWerte As Byte
arrWerte = Array("Suchbegriff", "stadt")
Application.ScreenUpdating = False
For lngZeile = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row To 1 Step -1
For bytWerte = 0 To UBound(arrWerte())
If InStr(Cells(lngZeile, 1), arrWerte(bytWerte)) > 0 Then
Cells(lngZeile, 2) = arrWerte(bytWerte)
Exit For
End If
Next
Next

End Sub

Anzeige
Danke auch das klappt nun
19.02.2015 11:14:57
Roger
Super Danke vielmals.
Gruss
Roger

Warum nicht per Formel?
19.02.2015 08:57:14
RPP63
Hi!
Man kann als zweiten Schritt die Formel ja durch Werte ersetzen ...
 AB
1Adorf 
2StadthagenStadt
3Bkaff 
4GlückstadtStadt

ZelleFormel
B1=WENN(ISTFEHL(SUCHEN("stadt";A1));"";"Stadt")
B2=WENN(ISTFEHL(SUCHEN("stadt";A2));"";"Stadt")
B3=WENN(ISTFEHL(SUCHEN("stadt";A3));"";"Stadt")
B4=WENN(ISTFEHL(SUCHEN("stadt";A4));"";"Stadt")

Gruß Ralf

Anzeige
AW: Warum nicht per Formel?
19.02.2015 09:14:00
Roger
Ich kann es nicht mit einer Formel lösen. Das Sheet wird aus einem anderen Programm raus generiert. Die gesuchten werte sind in der Spalte A nicht nacheinander aufgeführt. Das heisst es kommt ein Begriff und dann in den nächsten Zeilen Werte von A bis H, dann eine leerzeile wieder ein Begriff und wieder Zeilen Werte von A bis H. Da es sehr viele Daten sind würde eine Formel eintragen sehr mühsam werden.
Danke und Gruss
Roger

Haufenweise Formeln ...
19.02.2015 09:25:38
RPP63
Hallo Roger!
Das ist kein Argument.
Wenn keine Leerzeilen vorhanden sind, reicht es, die Formel in B1 einzutragen und danach einen Doppelklick auf das Ausfüllkästchen der Zelle unten rechts auszuführen.
Andere Möglichkeit:
Markiere den Zielbereich, trage die Formel ein und schließe mit Strg+Enter ab.
Die Formel wird dann gleichzeitig in der Markierung eingetragen.
Gruß Ralf

Anzeige
AW: Haufenweise Formeln ...
19.02.2015 09:38:41
Roger
Hallo Ralf
Wenn ich deinen ersten Tipp ausführe dann trägt es mir nur in B2 die Formel ein.
Beim zweiten Tipp löscht es mir sämtliche einträge in Spalte B und das darf nicht sein.
Gruss
Roger

Beispieldatei
19.02.2015 09:43:15
RPP63
Dies liegt wohl daran, dass ich Deinen Eröffnungspost fehlinterpretiert habe, Roger.
Eine (anonymisierte?) Beispieldatei wäre nicht verkehrt.
Gruß, Ralf

AW: Beispieldatei
19.02.2015 09:48:20
Roger
Salü Ralf
Hier mal eine wirklich kleine Datei
https://www.herber.de/bbs/user/95866.xls
Hoffe das hilft weiter
Gruss
Roger

Anzeige
AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 09:02:07
UweD
Hallo
per Formel?
Tabelle1
 AB
1OrtBem
2Mainz 
3Frankfurt 
4BurgstadtBurgstadt
5Dortmund 
6OberstadthofenOberstadthofen
7München 
8Stadtteil Stadtteil 

verwendete Formeln
Zelle Formel Bereich
B2 =WENNFEHLER(WENN(SUCHEN("stadt";A2)>0;A2);"") 

Tabellendarstellung in Foren Version 5.49


Gruß UweD

Anzeige
AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 09:14:48
Roger
Ich kann es nicht mit einer Formel lösen. Das Sheet wird aus einem anderen Programm raus generiert. Die gesuchten werte sind in der Spalte A nicht nacheinander aufgeführt. Das heisst es kommt ein Begriff und dann in den nächsten Zeilen Werte von A bis H, dann eine leerzeile wieder ein Begriff und wieder Zeilen Werte von A bis H. Da es sehr viele Daten sind würde eine Formel eintragen sehr mühsam werden.
Danke und Gruss
Roger

AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 10:12:23
RPP63
Soderle!
Unnötig zu erwähnen, dass Deine Tabelle einen suboptimalen Aufbau besitzt?
Lass mal folgendes Makro laufen:
Sub SchlechteTabelle()
Dim arrSpalteA As Variant, lgCounter As Long
With Tabelle1
arrSpalteA = Intersect(.Columns(1), .UsedRange)
For lgCounter = 1 To UBound(arrSpalteA)
If InStr(LCase(arrSpalteA(lgCounter, 1)), "stadt") > 0 Then
.Cells(lgCounter, 2) = "Stadt"
End If
Next
End With
End Sub
Gruß Ralf

Anzeige
AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 10:22:07
Roger
Hallo Ralf
Ja ich weiss das die Tabelle nicht gut ist. Wird ja von einem anderen Programm heraus generiert. Leider kann ich da nichts ändern daran.
Soweit funtkioniert dein Coe wunderbar. Nur das der Begriff eine Zelle höher geschrieben wird. Da ich nicht sehr viel Ahnung von VBA habe entzieht es sich meiner Kentniss warum das so ist.
Danke und Gruss
Roger

k.A
19.02.2015 10:31:24
RPP63
Hi Roger!
Kann ich nicht nachvollziehen, Code habe ich natürlich mit Deiner Datei getestet.
Ein Array, welches mit einem Bereich gefüllt wird, ist einsbasiert.
Blende mal im VBA-Editor das Lokalfenster ein und Du siehst, dass es für Deine Datei so dimensioniert wird:
arrSpalteA(1 To 31, 1 To 1)
Heißt: findet er an 14. Stelle des Arrays den Begriff, wird in B14 "Stadt" geschrieben.
Gruß Ralf

Anzeige
AW: k.A
19.02.2015 10:37:15
Roger
ok Danke sehr
Ja in der Beispieltabelle kalppt es bei meinem Original nicht.
Dann ist die Tabelle wahrscheinlich wirklich zum k......
Nun ja dann muss ich es halt anders versuchen.
Werde nun am Schluss der Spalten deine Formel einfügen. Dann klappt es.
Danke und Gruss
Roger

AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 10:43:39
RPP63
Hi!
Abschließend:
Wenn Dein Original anders aussieht und der Begriff IMMER eine Zeile höher geschrieben wird, dann ändere
.Cells(lgCounter, 2) = "Stadt"
in
.Cells(lgCounter + 1, 2) = "Stadt"
Gruß Ralf

Einfach nur Super Danke vielmals
19.02.2015 10:46:52
Roger
Ralf ganz herzlichen Dank
Nun schreib es richtig rein.
Somit kann der Tread geschlossen werden.
Danke und Gruss
Roger

AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 11:05:27
UweD
Hallo
Nur das der Begriff eine Zelle höher geschrieben wird
kann es sein, dass "verbundene Zellen" vorhanden sind?
Gruß UweD

AW: Wortteil suchen und in nebenstehende Zelle schreib
19.02.2015 11:19:19
Roger
Nein aber ich habe vorgängig noch vor dem Stadtnamen eine Leerzeile einügen lassen, wenn ich das unterbinde dann gehts auch ohne das +1
Gruss
Roger

313 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige