Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1476to1480
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

VBA Werte durch definierte Werte ersetzen

VBA Werte durch definierte Werte ersetzen
18.02.2016 11:52:06
Stina
Hallo zusammen,
Ich lasse mir monatlich einen Datensatz aus einem Rechentool ausgeben. Darin gibt es ein paar Textspalten, die auf Deutsch sind, aber ins Englische übersetzt werden sollen. Dazu habe ich ein seperate Excel-Datei, in der für jeden Spaltenwert die genaue Übersetzung steht.
Die Suchen-Ersetzen-Funktion kommt nicht in Frage, da es sehr viele unterschiedliche Werte sind und es ewig dauern würde. Ich habe es auch schon mit dem SVERWEIS probiert. Dies funktioniert, ist aber aufgrund der regelmäßigen Wiederholung auch nicht praktikabel.
Super, wäre also ein Makro, das z.B. die Werte in Spalte H meines Datensatzes in Spalte B der Übersetzungsdatei sucht und wenn er diesen dort findet, den entsprechenden Wert in Spalte D (=Englische Übersetzung) nimmt und durch den Wert in Spalte B meines Datessatzes ersetzt usw.
Ich hoffe, ihr versteht was ich meine und könnt mir helfen. Danke!
Stina

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Werte durch definierte Werte ersetzen
18.02.2016 12:20:59
Michael
Hallo,
Als ersten Ansatz habe ich mir ein Test-sheet gebaut, mit folgenden Adresse, die musst du auf deinen Fall anpassen.
Die Suchwerte stehen im Sheet(1) in Spalte A.
Die Tabelle mit den Schlüsseln und den Ergebnissen in sheets("Liste") Spalte A und B. Merkwürdigerweise muss die Zeile 1 leerbleiben.
Der Macro ist:
Sub myList()
Dim rng as range
With sheets("Liste").range("a1:a5")
For i = 1 to 12
Set rng = .find(sheets(1).cells(i,1))
Sheets(1).cells(i,"b") = rng.offset(0,1).value
Next
End with
End Sub
Mfg

AW: VBA Werte durch definierte Werte ersetzen
18.02.2016 13:23:29
Michael
Hi Michael,
das liegt daran, daß Excel immer ab A1 sucht, und wenn es da schon ist, wird's komisch - hätte der Hersteller auch anders programmieren können.
Aber weshalb ich mich überhaupt melde, ist die fehlende Fehlerabfrage: wenn der Begriff nicht gefunden wird, kann er auch nicht geschrieben werden.
Also bitte die mittlere Zeile ändern:
Set rng = .find(sheets(1).cells(i,1))
IF not rng is nothing then Sheets(1).cells(i,"b") = rng.offset(0,1).value
Next
Schöne Grüße,
Michael

Anzeige
AW: VBA Werte durch definierte Werte ersetzen
18.02.2016 15:48:06
Stina
Perfekt, genau so etwas habe ich gesucht! Funktioniert soweit super.
Wie sähe es denn aus, wenn meine Übersetzungstabelle in einer seperaten Datei stehen würde ("Übersetzungstabelle.xlsx")?
Ich kann beim Export des monatlichen Datensatzes direkt ein Makro ausführen, so dass dann Übersetzungstabelle, Datensatz und Makro in drei verschiedenen Dateien müssten.

Bitte Datein
19.02.2016 11:49:22
Michael
Hi Stina,
bitte sei so nett und lade uns die drei Datein mit der passenden Struktur hoch, nur mit ein paar Spieldaten, dann können wir das Makro gleich so schreiben, daß es auch wirklich paßt.
Am besten ist es, Du verpackst die drei Datein in ein ZIP-Archiv, dann bleiben die Dateinamen bestehen (wenn Du sie einzeln hochladen würdest, würde die Forumssoftware die Datein umbenennen).
Das ist für Dich etwas Aufwand, aber sonst wäre es für uns Aufwand, und so ersparst Du Dir wenigstens nachträgliche Änderungen des Makros.
Schöne Grüße,
Michael
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige