Erklärung VBA-Code
06.08.2019 20:04:43
Stefan
ich habe folgendes Problem:
Im Tabellenblatt "Tabelle2" Habe ich ein Wörterbuch mit 2 Spalten.
Spalte H beinhaltet die englischen Wörter und Spalte I die entsprechende deutsche Übersetzung.
Beispiel:
H10: Car
H11: Dog
H12: Cat
usw.
I10: Auto
I11: Hund
I12: Katze
usw.
Im Tabellenblatt "Tabelle1" habe ich nur die englischen Begriffe, die mithilfe des Tabellenblattes "Tabelle2" übersetzt werden sollen.
Beispiel:
K2: Car
K3: Dog
K4: Cat
usw.
Die deutschen Übersetzungen der englischen Begriffe aus dem Tabellenblatt "Tabelle1" würde ich gerne in das Tabellenblatt "Tabelle3" übertragen:
F2: Auto
F3: Hund
F4: Katze
usw.
Kann mir dabei jemand behilflich sein?
Den nachfolgenden VBA-Code habe ich im Internet gefunden, kann diesen aber nicht richtig nachvollziehen, um die Zellbezüge entsprechend anzupassen.
Option Explicit
Public Sub Uebersetzen()
Dim WkSh_Z As Worksheet
Dim WkSh_Q As Worksheet
Dim lZeile As Long
Dim vWort As Variant
Dim iIndx As Integer
Dim rZelle As Range
Set WkSh_Z = ThisWorkbook.Worksheets("Tabelle1")
Set WkSh_Q = ThisWorkbook.Worksheets("Tabelle2")
Application.ScreenUpdating = False
With WkSh_Z
.Range("B1:B" & .Cells(Rows.Count, 2).End(xlUp).Row).ClearContents
For lZeile = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If Trim$(.Range("A" & lZeile).Value) "" Then
vWort = Split(.Range("A" & lZeile).Value, ";")
For iIndx = LBound(vWort) To UBound(vWort)
Set rZelle = WkSh_Q.Columns(1).Find(What:=Trim$(vWort(iIndx)), LookAt:=xlWhole, _
_
LookIn:=xlValues)
If Not rZelle Is Nothing Then
If WkSh_Z.Range("B" & lZeile).Value = "" Then
WkSh_Z.Range("B" & lZeile).Value = WkSh_Q.Range("B" & rZelle.Row).Value
Else
WkSh_Z.Range("B" & lZeile).Value = WkSh_Z.Range("B" & lZeile).Value & _
"; " & WkSh_Q.Range("B" & rZelle.Row).Value
End If
Else
If WkSh_Z.Range("B" & lZeile).Value = "" Then
WkSh_Z.Range("B" & lZeile).Value = "?"
Else
WkSh_Z.Range("B" & lZeile).Value = WkSh_Z.Range("B" & lZeile).Value & _
End If
End If
Next iIndx
End If
Next lZeile
End With
Application.ScreenUpdating = True
Set WkSh_Z = Nothing
Set WkSh_Q = Nothing
End Sub
Vielen Dank im Voraus ;)