Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1704to1708
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

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 ;)

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige