Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Erklärung VBA-Code

Forumthread: Erklärung VBA-Code

Erklärung VBA-Code
06.08.2019 20:04:43
Stefan
Hallo zusammen,
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 ;)
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Und warum....
06.08.2019 20:08:49
{Boris}
Hi,
...greifst Du nicht auf die Standardfunktion SVERWEIS zurück?
VG, Boris
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige