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

VBA Zellen anhand von Bedingung bearbeiten

Forumthread: VBA Zellen anhand von Bedingung bearbeiten

VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 13:49:47
Addi
Hallo Zusammen,
meine Frage wäre wie man mit VBA folgende Aktionen realisieren kann.
Ich habe eine Zelle in der steht beispielsweise: "Artikel (1234)"
Alle Zellen in einer Spalte sind derart aufgebaut...die Nummer ist immer am Ende in Klammern.
Ich würde daraus gerne zwei Zellen machen, eine wo nur "Artikel" steht und eine in der nur "1234) steht.
Anzumerken...."Artikel" kann auch mal aus mehreren Wörten bestehen und die Nummer ist auch unterschiedlich lang...
Könnt Ihr da helfen?
Vielen Dank und viele Grüße
Addi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 14:03:43
BoskoBiati
Hi,

schon mal mit Text in Spalten probiert?

Gruß

Edgar
AW: VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 14:34:01
daniel
Hi
das geht, wie Bosko schon geschrieben hat, am einfachsten mit der Menüfunktion
DATEN - DATENTOOLS - TEXT IN SPALTEN
im Schritt 1 des Assistenten wählst du "getrennt"
im Schritt 2 wählst du "anderes Trennzeichen" und gibst die "(" als solches ein.

wenn du es dann immer noch als Makro haben willst, lass einfach den Recorder mitlaufen.

Gruß Daniel
Anzeige
AW: VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 15:41:18
Addi
Danke Euch beiden...Text in Spalten kenne ich und könnte das damit auch umsetzen.
Ich hatte ja extra nach VBA gefragt, da dies ein Bestandteil eines größeren Makros werden soll...
Viele Grüße
Adrian
AW: VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 16:25:02
daniel
Naja, alles, was du in Excel von Hand machen kannst, kannst du auch von VBA ausführen lassen.
Der Makrorecorder https://online-excel.de/excel/singsel_vbade46.html?f=84 kann dabei eine wertvolle Hilfe sein, weil der dir zeigt, wie eine bestimmte Menüfunktion mit VBA programmiert werden muss, dh wie der Befehl lautet und wie die Parameter gesetzt werden.
ja, der aufgezeichnete Code bedarf der Überarbeitung, das Grundsätzliche kann er dir zeigen.
für einen fertigen Code, den du einfach kopieren kannst, hast du halt noch zu wenig Angaben gemacht.

wenn es sich um einzelne Zellen und nicht eine längere Liste handelt, kannst du natürlich auch die VBA-Funktion SPLIT verwenden:

also beispielsweise wenn der Text in A1 steht und nach B1 und C1 geteilt werden soll:

Range("B1").Value = Split(Range("A1").Value, "(")(0)

Range("C1").Value = Split(Range("A1").Value, "(")(1)


du kannst auch beide gleichzeitig einfügen:
Range("B1:C1").Value = Split(Range("A1").Value, "(")


oder einfach klassisch mit Links und Teil
Range("B1").Value = Left(Range("A1").value, Instr(Range("a1").value, "(") - 1)

Range("C1").Value = Mid(Range("A1").value, Instr(Range("a1").value, "(") + 1)


aber wie gesagt, so für Einzelwerte, sollte die ganze Spalte einer längeren Liste umgewandelt werden, nutze Text-in-Spalten und für die Umsetzung in VBA zeigt dir der Recorder den notwenigen Code.

Gruß Daniel
Anzeige
AW: VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 17:12:33
Addi
Vielen lieben Dank Euch beiden, damit komme ich klar, ihr habt mir sehr geholfen!!!
Viele Grüße Addi
AW: VBA Zellen anhand von Bedingung bearbeiten
15.09.2025 17:50:08
Addi
Hallo, ich würde diese Frage gerne nochmal öffnen, mir ist nämlich noch eine Besonderheit für meinen Fall aufgefallen.
Ich habe das Problem mit folgendem Coding gelöst:

For t = lz To 2 Step -1
Range("G" & t).Value = Left(Range("F" & t).Value, InStr(Range("F" & t).Value, "(") - 2)
Range("H" & t).Value = Mid(Range("F" & t).Value, InStr(Range("F" & t).Value, "(") + 1, InStr(InStr(Range("F" & t).Value, "("), _
Range("F" & t).Value, ")") - InStr(Range("F" & t).Value, "(") - 1)
Next t

Das funktioniert auch so wie es soll, allerdings haben mache Zellen, bei denen ich die Werte bis zur Klammer einerseits und die Werte in der Klammer andererseits auslesen und separieren möchte mehrere Klammern.
Relevant ist für mich immer nur die letzte Klammer, sprich ich hätte gerne alles was vor der letzen "Klammer-Auf" steht in eine Zelle schreiben und nach wie vor das was zwischen der letzen Klammer steht in eine weiter Zelle separieren...
Beispiel:
- aus "Artikel 1 (0815)" soll werden in einer Zelle: "Artikel 1" und in der anderen Zelle "0815"
- aus "Artikel 1 (EUR) (0815)" soll werden in einer Zelle: "Artikel 1 (EUR)" und in der anderen Zelle "0815"

Habt Ihr da eine Idee?
Viele Grüße
Addi
Anzeige
AW: VBA Zellen anhand von Bedingung bearbeiten
15.09.2025 18:02:43
daniel
Hi
die Position der letzten Klammer auf "(" findest du mit InstrRev statt Instr

Instr liefert dir die Position des ersten Vorkommens des gesuchten Zeichens
InstrRef liefert dir die Position des letzten Vorkommens des gesuchten Zeichens.

Gruß Daniel
Im Anhang ist...
15.09.2025 19:41:53
Case
Moin Addi, :-)

... eine Alternative, die in Excel 365 läuft: ;-)
https://www.herber.de/bbs/user/178912.xlsb

Servus
Case
Anzeige
AW: VBA Zellen anhand von Bedingung bearbeiten
09.09.2025 16:16:05
BoskoBiati
Hi,

eine Möglichkeit (Spalten anpassen!):

Columns(1).TextToColumns Destination:=Columns(1), DataType:=xlDelimited, otherchar:="("

Columns(2).TextToColumns Destination:=Columns(2), DataType:=xlDelimited, otherchar:=")"


Gruß

Edgar
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18