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

Text zwischen zwei jeweiligen Texten suchen - VBA

Text zwischen zwei jeweiligen Texten suchen - VBA
22.10.2012 20:53:45
Wolfgang
Hallo,
im Tabellenblatt2 befindet sich beispielsweise in Zelle E6 ein Text und in Zelle F6 ein weiterer Text. Diese Texteile befinden sich auch mitten in einem Gesamttext in Tabelle3 (Der Text in Tabelle3 wird importiert und kann variieren, so dass sich leider für die Suchbegriffe keine festen Zellen ergeben). Wie kann ich erreichen, dass der Text, der sich zwischen den beiden genannten Zellen befindet (z.B. E6 = Name, F6 = Vorname in G6 der Text dazwischen, z.B. Müller), in Zelle G6 eingefügt wird?
Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Formuliere das doch bitte mal neu, ...
22.10.2012 23:25:00
Luc:-?
…lade ein Bsp hoch oder schau ins Archiv, ob da nicht was zu finden ist, Wolfgang;
so wird man da nicht recht schlau draus.
Gruß Luc :-?

AW: Formuliere das doch bitte mal neu, ...
23.10.2012 06:22:51
Wolfgang
Hallo Luc,
Danke für Deine Rückmeldung. Ich habe eine Mustermappe hinzugefügt und würde mich freuen, wenn ich es hierin verständlicher formulieren konnte. Unter Rechereche hatte ich schon "herumgewühlt" konnte aber nicht so wirklich das richtige finden. Solltest Du eine Idee haben, wie ich ansetzen kann, wäre ich sehr dankbar. Erneut auch schon jetzt wieder Danke für die Rückmeldung
Gruß - Wolfgang
https://www.herber.de/bbs/user/82270.xlsx

Anzeige
AW: Formuliere das doch bitte mal neu, ...
23.10.2012 09:50:26
UweD
Hallo
ich hab mal was gebaut. Option Explicit Sub TT_suchen() On Error GoTo Fehler Dim TB3, TB2, i%, Fi1$, Fi2$, C Set TB3 = Sheets("Tabelle3") Set TB2 = Sheets("Tabelle2") Application.ScreenUpdating = False For i = 5 To 10 'aus E5 F10 Fi1 = TB2.Cells(i, 5) Fi2 = TB2.Cells(i, 6) Set C = TB3.UsedRange.Find(Fi1, LookIn:=xlValues) If Not C Is Nothing And C.Offset(0, 2).Value = Fi2 Then TB2.Cells(i, 7) = C.Offset(0, 1) End If Next Err.Clear Fehler: If Err.Number 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear End Sub Das Makro sucht den Suchtext1, vergleicht 2 Zellen weiter, ob dort Suchtext2 steht und gibt den Text dazwischen zurück.
Das wiederholt sich für die 6 Datenpaare
(EUR habe ich durch überwiesen ersetzt.)
Tabelle2
 EFG
4    in G soll der zwischen den beiden Wörtern stehende Text erscheinen
5NameVorname Müller
6VornamePLZKarl
7MitgliedsnummerMitglied seit102345
8Beitragüberwiesen100
9FunktionseitVorstand
10Zweitwohnungseitkeine
11     




Funktioniert, mit einem Problem.
Wenn der Suchtext und Folgetext in die nächste Zeile rutschen.
Kannst du das ausschließen? Sonst muss die Suchlogig aufwändiger aufgebaut werden.
evtl. kannst du ja auf das suchen "danach verzichten"
Gruß UweD

Anzeige
Das hättest Du aber erwähnen müssen
23.10.2012 10:25:26
Matthias
Hallo Uwe
Hab Dein Bsp mal nachgebaut(andere Varianten interessieren mich auch immer)
Tabelle2

 EFG
5NameVorname  
6VornamePLZKarl
7MitgliedsnummerMitglied seit102345
8Beitragüberwiesen100
9FunktionseitVorstand
10Zweitwohnungseitkeine


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Ok das mit Euro und überwiesen, haben wir beide angesprochen.
Das aber Müller in der Orginaldatei eingetragen wird ?
Da hast Du etwas ganz Wichtiges nicht erläutert!
Denn in Tabelle2!F5 ist hinter Vorname ein Leerzeichen welches in Tabelle3 bei Vorname nicht vorkommt.
Wenn er also den Code in seine Datei reinkopiert, wird der Vorname nicht erscheinen!
Gruß Matthias

Anzeige
AW: Das hättest Du aber erwähnen müssen
23.10.2012 11:39:53
UweD
Hallo
das mit den Leerzeichen könnte durch LTrim noch abgefangen werden.
Gruß UweD
Sub TT_suchen()
On Error GoTo Fehler
Dim TB3, TB2, i%, Fi1$, Fi2$, C
Set TB3 = Sheets("Tabelle3")
Set TB2 = Sheets("Tabelle2")
Application.ScreenUpdating = False
For i = 5 To 10 'aus E5 F10
Fi1 = LTrim(TB2.Cells(i, 5))
Fi2 = LTrim(TB2.Cells(i, 6))
Set C = TB3.UsedRange.Find(Fi1, LookIn:=xlValues)
If Not C Is Nothing And LTrim(C.Offset(0, 2).Value) = Fi2 Then
TB2.Cells(i, 7) = C.Offset(0, 1)
End If
Next
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Anzeige
LTrim hilft da nicht ! wenn schon dann Trim() ;-)
23.10.2012 11:58:42
Matthias

... aber ich würde auch eher Dein Bsp benutzen :-)
23.10.2012 12:05:10
Matthias
Hallo Uwe
Ich hatte da nur schnell was "zurechtgezimmert"
Das Aktivieren von Sheets ist nicht notwendig, wie Du es schön dargestellt hast
Gruß Matthias

AW: Text zwischen zwei jeweiligen Texten suchen - VBA
23.10.2012 10:03:31
Matthias
Hallo
Du solltest beachten, das einige Deiner Strings Leerzeichen am Ende beinhalten.
Diese Leerzeichen habe ich gelöscht.
Ebenfalls die Suche nach dem Wort "Euro" war nicht ergebnisorientiert.
Tabelle2

 EFG
5NameVornameMüller
6VornamePLZKarl
7MitgliedsnummerMitglied seit102345
8BeitragEuro?
9FunktionseitVorstand
10Zweitwohnungseitkeine


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Allerdings solltest Du in Tabelle2 "Euro" durch "überwiesen" ersetzen.
Ich denke Du meinst dieses als Ergebnis zu erwarten
Dann sehe es so aus:
Tabelle2

 EFG
5NameVornameMüller
6VornamePLZKarl
7MitgliedsnummerMitglied seit102345
8Beitragüberwiesen100
9FunktionseitVorstand
10Zweitwohnungseitkeine


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
https://www.herber.de/bbs/user/82271.xls
Gruß Matthias

Anzeige
Danke für die Rückmeldungen
23.10.2012 11:34:54
Wolfgang
Hallo,
hatte mich schnell einmal ins Forum eingeloggt und sehe hocherfreut die Rückmeldungen sowie Hinweise. Habe leider am Arbeitplatzrechner keine Möglichkeit des Downloads, sodass ich mir heute abend die Hinweise und Codes weiter anschauen werde bzw. downloaden werde. Melde mich danach auf jeden Fall wieder. An dieser Stelle allen schon jetzt recht herzlichen Dank!
Gruß - Wolfgang

AW: Text zwischen zwei jeweiligen Texten suchen - VBA
23.10.2012 20:11:38
Wolfgang
Hallo Matthias und Uwe,
erneut noch wieder herzlichen Dank! - Ich hatte mir nun die beiden Codes zuhause heruntergeladen bzw. eingefügt. Ich muß zunächst gestehen, dass ich wohl was wichtiges, was mir heute aber auch erst auffiel, nicht erläutert habe: Die Texteile können manchmal in jeweils getrennten Zellen stehen, aber auch, so mußte ich feststellen, in einer Zelle (das wechselt wohl offensichtlich manchmal). Bei Deinem Code, Uwe, erhalte ich eine Fehlermeldung Fehler 91, Objektvariable oder With-Blockvariable nicht festgelegt. Der Code lässt dann in der Folge die erste Abfrage leer und packt den Vornamen und die Mitgliedsnummer in die richtigen Zellen. Die Zellen danach bleiben wieder leer.- Dein Code, Matthias, rennt soweit super, ohne ihn mit dem Code von Uwe vergleichen zu können (weil ich wirklich die Ahnung nicht habe). Könnte jedoch eine Anpassung denkbar sein, sodass sowohl Textfolgen in einer Zelle oder eben jeweils in getrennten Zellen (wie im Muster) zu finden sind? - Danke schon jetzt wieder für Eure Rückmeldungen.
Gruß - Wolfgang

Anzeige
Nachfrage ...
23.10.2012 23:22:14
Matthias
Hallo Wolfgang
Ich verstehe nicht was Du meinst, bitte erkläre das mal genauer.
Zitat:
Könnte jedoch eine Anpassung denkbar sein, sodass sowohl Textfolgen in einer Zelle oder eben jeweils in getrennten Zellen (wie im Muster) zu finden sind?
Was genau steht dann als Textfolge in einer Zelle und was willst Du dann von wo auslesen?
Gruß Matthias

AW: Nachfrage ...
24.10.2012 05:59:27
Wolfgang
Hallo Matthias,
in Tabelle 3 steht in dem Beispiel mit Deinem Code in Zelle L18 "Beitrag", M18 "100,00 €" und N18 "überwiesen" (gesucht wird dabei ja dann der mittlere Text 100,00 €) - Das Problem, welches ich entdeckte, ist, dass die Texte auch alle zusammen in einer Zelle stehen können. Z.B.: Zelle L18 "Beitrag" "100,00 €" "überwiesen". Wenn ich die Suche hierauf einstelle, erscheint bei Deinem Code auch eine Fehlermeldung, wie bei Uwe - Fehler 91 Objektvariable oder With-Blockvariable nicht festgelegt und der Code stoppt dann dort wo nun die Suchbegriffe alle in einer Zelle stehen bzw. im Code an nachfolgender Stelle.
Danke und Gruß
Wolfgang
 Addy1 = Cells.Find(What:=MyTxt1, LookAt:=xlWhole).Address

Anzeige
AW: Nachfrage ...
24.10.2012 09:55:18
Matthias
Hallo
Steht es wirklich so in der Zelle wie jetzt im Bsp in L18?
Tabelle3

 L
18"Beitrag" "100,00 €" "überwiesen"
19Beitrag 100,00 € überwiesen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
oder eher doch wie in L19
Gruß Matthias
Anzeige

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige