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

Zellinhalte / Sonderzeichen löschen

Zellinhalte / Sonderzeichen löschen
26.07.2022 16:28:37
Reto
Hallo zusammen
Ich habe eine Tabelle in welcher die folgenden Syntaxmöglichkeiten vorkommen können:
Spalte mit Mitarbeitenden:
Meister Hans, P114;#1502
Muster Kurt, I46;#87;#Muster Nadia, I45;#66
Muster Kurt, I46;#87;#Muster Nadia, I45;#66;Meister Hans, P114;#1502
Spalte mit Anwendungen:
Testapplikation;#12309;#RolleTest;#12310
Dunno;#12304;#NeueAnwendung;#12305;#TestApplikationen;#12306;#TestRolle;#12307;#RolleTest;#12308
Meine Problematik besteht darin, dass ich die Sonderzeichen und die Zahlenfolgen bei den Mitarbeitenden wie auch bei den Anwendungen nicht einlesen kann in meiner Datenbank und die Daten mittels Semikolon getrennt werden sollten. Entsprechend sollten die Daten so aussehen:
Spalte mit Mitarbeitenden:
Meister Hans, P114
Muster Kurt, I46; Muster Nadia, I45
Muster Kurt, I46; Muster Nadia, I45;Meister Hans, P114
Spalte mit Anwendungen:
Testapplikation;RolleTest
Dunno;NeueAnwendung;TestApplikationen;TestRolle;RolleTest
Ist es möglich, dies mittels einer Formel hinzukriegen'
Danke im Voraus für eure Antworten!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalte / Sonderzeichen löschen
26.07.2022 17:13:30
ChrisL
Hi Reto
Komma/Semikolon ist etwas inkonsistent, aber grundsätzlich könntest du Text-In-Spalten machen, dann die fixen Spalten löschen und anschliessend wieder im CSV-Stil speichern.
Ansonsten VBA. Folgende Funktion in ein Standardmodul einfügen:

Public Function MeineBereinigung(myString As String) As String
Dim objRegEx As Object, objMatch As Object
Dim strText As String
Dim lngIndex As Long
Set objRegEx = CreateObject("VBScript.RegExp")
With objRegEx
.Global = True
.IgnoreCase = True
.Pattern = ";#\d+"
Set objMatch = .Execute(myString)
End With
For lngIndex = 0 To objMatch.Count - 1
myString = Replace(myString, objMatch.Item(lngIndex).Value, "")
Next
MeineBereinigung = Replace(myString, "#", "")
Set objRegEx = Nothing
Set objMatch = Nothing
End Function
Entweder verwendest du die Funktion als "Formel":

=MeineBereinigung(A1)
Oder als VBA:

Sub t1()
MsgBox MeineBereinigung("Muster Kurt, I46;#87;#Muster Nadia, I45;#66;Meister Hans, P114;#1502")
End Sub
bzw.

Sub t2()
MsgBox MeineBereinigung(Range("A1"))
End Sub
cu
Chris
Anzeige
AW: Zellinhalte / Sonderzeichen löschen
27.07.2022 08:32:01
Reto
Hallo Chris
Besten Dank für deine rasche Unterstützung!
Deine Lösung funktioniert bei mir bestens, wenn ich die Datei auf meiner lokalen Festplatte speichere und die "Formel" ausführe. Wenn ich die Datei auf unseren Sharepoint hochlade, funktioniert es (noch) nicht, werde ich sicherlich auch noch hinkriegen :-)
Nochmals besten Dank!
Gruss Reto
AW: Zellinhalte / Sonderzeichen löschen
27.07.2022 08:43:01
ChrisL
Hi Reto
Danke für die Rückmeldung.
Wahrscheinlich sind die Makros nicht aktiviert. Aber in Zusammenhang mit Sharepoint fehlt mir die Erfahrung für konkrete Tipps.
cu
Chris
AW: Zellinhalte / Sonderzeichen löschen
28.07.2022 19:48:57
Reto
Hallo Chris
Ich habe noch eine Frage...
Kannst du mir sagen, wo ich den Code eingeben muss? In ein Modul oder ein Klassenmodul?
Ich habe den Code in einem Modul erfasst und die Formel "=MeineBereinigung([@[Zuordnung MA]])" in der Spalte AH2 bei der Tabelle "tbl_Aufgaben_SP" eingegeben, wobei ich den Fehler "#Name" erhalte.
Mache ich da was falsch?
Userbild
Anzeige
AW: Zellinhalte / Sonderzeichen löschen
29.07.2022 09:01:01
ChrisL
Hi Reto
Im Standardmodul passt schon.
cu
Chris
AW: Zellinhalte / Sonderzeichen löschen
26.07.2022 18:04:38
Daniel
Hi
Formel ohne VBA wird schiwierig
ich würde das so machen:
1. Text in Spalten auf die Tabelle anwenden.
Als Trennzeichen Semikolon und die Raute (anderes Trennzeichen) verwenden, sowie die Option "mehrfach hintereinander folgende Trennzeichen wie ein Trennzeichen behandeln.
im Schritt 3 wählst du dann für jede zweite Spalte (die mit den kurzen Zahlen) das Datenformat "nicht importieren"
2. zum zusammenführen kannst du dann das Tabellenblatt entweder direkt als CSV-Datei speichern, oder du fügst die Texte mit =Textverketten(";";wahr;A1:X1) wieder zusammen
wenns per Formel sein soll, würde ich mir eine kleine UDF schreiben, die die # entfernt und dann jede 2. Spalte überspringt:

Function TextUmwandlung(txt As String)
Dim i As Long
Dim TT
txt = Replace(txt, "#", "")
TT = Split(txt, ";")
For i = 0 To UBound(TT) Step 2
TextUmwandlung = TextUmwandlung & ";" & TT(i)
Next
TextUmwandlung = Mid(TextUmwandlung, 2)
End Function
und dann einfach als Formel:

=TextUmwandeln(A1)
Gruß Daniel
Anzeige
AW: Zellinhalte / Sonderzeichen löschen
27.07.2022 08:34:45
Reto
Hallo Daniel
Besten Dank für deine rasche Unterstützung!
Ich habe den Code von Chris angewendet. Funktioniert sehr gut auf der lokalen Festplatte, auf unserem Sharepoint geht es (noch) nicht.
Beste Grüsse
Reto

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige