Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1140to1144
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

Inhalte durchsuchen und Teil ersetzen

Inhalte durchsuchen und Teil ersetzen
Boris
Hallo Excelfans,
Habe folgendes Problem:
Möchte in einem Freitextfeld einen Teil, der mit dem Inhalt einer anderen Zelle einer anderen Tabelle übereinstimmt finden, diesen dann ähnlich eines SVERWEIS'es durch den Inhalt der nebenan stehenden Zelle ersetzen.
Bsp:
gegeben:
tabelle1.cells(1,1)="bla bla bla hallo bla bla bla"
tabelle2.cells(3,3)="hallo"
tabelle2.cells(3,4)="ja doch"
gesucht:
"hallo" aus tabelle1 soll nun durch "ja doch" aus tabelle2.cells(3,4) ersetzt werden.
wenn man dies noch mit einer Schleife versehen könnte, dass diese tabelle2 durch geht, währe ich mehr als glücklich.
Freue mich über jede fachkundige VBA Antwort.
Beste Grüße
Boris

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
mit suchen und ersetzen ...
06.03.2010 11:12:57
Tino
Hallo,
teste mal diesen Code. (getestet unter xl2007)
Sub Test()
Dim maArTab2(), BereichTab1 As Range
Dim A As Long

'Array der Daten die gesucht u. ersetzt werden sollen 
With Tabelle2
    maArTab2 = .Range("C1", .Cells(.Rows.Count, 4).End(xlUp)).Value2
End With

'Bereich der durchsucht werden soll 
With Tabelle1
    Set BereichTab1 = .Cells(1, 1).Find("*") 'Excel Bug ersetzen in ges. Mappe umgehen 
    Set BereichTab1 = .Range("A1", .Cells(.Rows.Count, 1).End(xlUp))
End With


'Suchen und ersetzen 
For A = 1 To Ubound(maArTab2)
    If maArTab2(A, 1) <> "" Then
        BereichTab1.Replace What:=maArTab2(A, 1), Replacement:=maArTab2(A, 2), LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    End If
Next A


End Sub
Gruß Tino
Anzeige
AW: mit suchen und ersetzen ...
06.03.2010 12:56:10
Boris
So,
Absolut unglaublich ist, dass es noch Menschen gibt, die sich so engagiert um die Probleme anderer kümmern. Ich werde da in Zukunft auch mal mitmachen.
Das war das erste mal, dass ich eine Frage in dieses Forum stelle. Innerhalb einer Stunde bekam ich absolut perfektes Feedback. -Problem gelöst- Danke dafür.
Beste Grüße
Boris
AW: Inhalte durchsuchen und Teil ersetzen
06.03.2010 11:39:35
fcs
Hallo Boris,
hier auch noch eine geschachtelte For-Next-Scheifen-Lösung und ein Lösung ähnlich der von Tino.
Grüß
Franz
Sub AATest()
'Sucht und ersetzt Groß-/Kleinschreibung genau
Dim wks1 As Worksheet, wks2 As Worksheet
Dim sText$, sSuch$, sErsatz$
Dim lZeile1&, lZeile2&
Set wks1 = Tabelle1
Set wks2 = Tabelle2
For lZeile1 = 1 To wks1.Cells(wks1.Rows.Count, 1).End(xlUp).Row
sText = wks1.Cells(lZeile1, 1).Text
For lZeile2 = 1 To wks2.Cells(wks2.Rows.Count, 3).End(xlUp).Row
sSuch = wks2.Cells(lZeile2, 3).Text
sErsatz = wks2.Cells(lZeile2, 3).Offset(0, 1).Text
If InStr(1, sText, sSuch) > 0 Then
sText = Replace(sText, sSuch, sErsatz)
End If
Next
wks1.Cells(lZeile1, 1).Value = sText
Next
End Sub
Sub BBTest()
'wie Suchen/Ersetzen im Menü
Dim wks1 As Worksheet, wks2 As Worksheet
Dim sSuch$, sErsatz$
Dim lZeile1&, lZeile2&, Bereich As Range
Set wks1 = Tabelle1
Set wks2 = Tabelle2
With wks1
Set Bereich = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
With wks2
For lZeile2 = 1 To .Cells(.Rows.Count, 3).End(xlUp).Row
sSuch = .Cells(lZeile2, 3).Text
sErsatz = .Cells(lZeile2, 3).Offset(0, 1).Text
Bereich.Replace What:=sSuch, replacement:=sErsatz, lookat:=xlPart, _
MatchCase:=False, matchbyte:=True
Next
End With
End Sub

Anzeige
Suchen und Teile ersetzen
06.03.2010 11:43:38
Erich
Hi Boris,
noch eine Variante (nix wirklich Neues...)

Sub Auswechsle()
Dim lngA As Long, arrStr, lngL As Long, nn As Long, zz As Long
With Sheets("Tabelle1")
lngA = .Cells(.Rows.Count, 1).End(xlUp).Row
arrStr = Application.Transpose(.Cells(1, 1).Resize(lngA))
End With
With Sheets("Tabelle2")
lngL = .Cells(.Rows.Count, 3).End(xlUp).Row
For zz = 3 To lngL
For nn = 1 To lngA
arrStr(nn) = Replace(arrStr(nn), .Cells(zz, 3), .Cells(zz, 4))
Next nn
Next zz
End With
Sheets("Tabelle1").Cells(1, 1).Resize(lngA) = Application.Transpose(arrStr)
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Inhalte durchsuchen und Teil ersetzen
06.03.2010 12:56:53
Boris
So,
Absolut unglaublich ist, dass es noch Menschen gibt, die sich so engagiert um die Probleme anderer kümmern. Ich werde da in Zukunft auch mal mitmachen.
Das war das erste mal, dass ich eine Frage in dieses Forum stelle. Innerhalb einer Stunde bekam ich absolut perfektes Feedback. -Problem gelöst- Danke dafür.
Beste Grüße
Boris
Ja, Boris, und das ist auch gut so,...
06.03.2010 16:27:40
Luc:-?
…denn, wenn es nach diesen sog libertären Typen vom Schlage eines "Ernst" im AnneWillBlog und seines großen Vorbildes von der „ef“ und neoliberalen Misanthropen wie einst Hayek gehen würde, dürfte es das eigentl gar nicht geben… ;-)
Gruß+schöWE, Luc :-?
Anzeige

323 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige