Clever-Excel-Forum

Normale Version: Sucher Ersetzen aus anderer Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe folgendes Makro, mit dem ich Werte in einem Tabellenblatt suche und durch Werte aus einer Lliste aus einem anderen Tabellenblatt ersetze.

Funktioniert das auch mit Werten aus einer anderen Datei, die gespeichert ist?
Wenn ja, wie?

Code:
Sub Suchen_Ersetzen2()

   Dim i As Integer
 
   Dim sheetNameRefTabelle As String
   Dim sheetNameAktTabelle As String
 
   Dim suchWertSpalte, ersatzWertSpalte As Integer
 
   Dim startZeileRefTabelle, endZeileRefTabelle As Integer
 
   sheetNameRefTabelle = "Tabelle2"
   sheetNameAktTabelle = "Tabelle1"
   
   suchWertSpalte = 1
   ersatzWertSpalte = 2

   startZeileRefTabelle = 1
   endZeileRefTabelle = 1000
 
 
   For i = startZeileRefTabelle To endZeileRefTabelle
 
       Dim suchwert, ersatzwert As String
     
       suchwert = Sheets(sheetNameRefTabelle).Cells(i, suchWertSpalte).Value
       ersatzwert = Sheets(sheetNameRefTabelle).Cells(i, ersatzWertSpalte).Value
     
       If (suchwert <> "" And ersatzwert <> "") Then
     
           Sheets(sheetNameAktTabelle).Cells.Replace What:=suchwert, Replacement:=ersatzwert, LookAt:=xlWhole, SearchOrder:=xlByRows, _
           MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
     
       End If
     
   Next i

End Sub
Also die Datei mit der Liste ist geöffnet und die Arbeitsdatei ist aktiv? Mit dieser kleinen Ergänzung müsste es klappen (ungetested):

Code:
Sub Suchen_Ersetzen2()
   Dim i As Integer

   Dim wbkNameRefTabelle As String
   Dim sheetNameRefTabelle As String
   Dim sheetNameAktTabelle As String
 
   Dim suchWertSpalte, ersatzWertSpalte As Integer
 
   Dim startZeileRefTabelle, endZeileRefTabelle As Integer
 
   wbkNameRefTabelle = "RefTabelle.xlsx"
   sheetNameRefTabelle = "Tabelle2"
   sheetNameAktTabelle = "Tabelle1"
   
   suchWertSpalte = 1
   ersatzWertSpalte = 2

   startZeileRefTabelle = 1
   endZeileRefTabelle = 1000
 
 
   For i = startZeileRefTabelle To endZeileRefTabelle
       Dim suchwert, ersatzwert As String
     
       suchwert = Workbooks(wbkNameRefTabelle).Sheets(sheetNameRefTabelle).Cells(i, suchWertSpalte).Value
       ersatzwert = Workbooks(wbkNameRefTabelle).Sheets(sheetNameRefTabelle).Cells(i, ersatzWertSpalte).Value
     
       If (suchwert <> "" And ersatzwert <> "") Then
           Sheets(sheetNameAktTabelle).Cells.Replace What:=suchwert, Replacement:=ersatzwert, LookAt:=xlWhole, SearchOrder:=xlByRows, _
           MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
       End If
    Next i
End Sub
Hallo Redoute,

danke das funktioniert.

Jetzt muss ich nur noch die Datei mit der Liste vom Makro öffnen und wieder schließen lassen.
Dafür habe ich einen Code.

Danke!