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

doppelte Kommas löschen

doppelte Kommas löschen
15.03.2014 09:40:14
Maik
Guten Morgen
ich möchte gern in der aktiven Zelle doppelt eingegebene Kommas löschen. Kann mir jemand mit einem VBA-Code weiterhelfen?
Besten Dank!
Gruß
Maik

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: doppelte Kommas löschen
15.03.2014 10:08:46
Oberschlumpf
Hi Maik
versuch mal
Sub sbCommaDel()
ActiveCell.Value = Replace(ActiveCell.Value, ",,", ",")
End Sub
Hilfts?
Ciao
Thorsten

AW: doppelte Kommas löschen
15.03.2014 10:56:36
ransi
Hallo MAik
Können da auch mehr als 2 Kommas hintereinander stehen ?
arnsi

AW: doppelte Kommas löschen
15.03.2014 11:22:08
Maik
Hallo Ransi,
zwar kaum, aber gesetzt dieser Fall, es würde mich auch dieser Code interessieren.
Gruß Maik

AW: doppelte Kommas löschen
15.03.2014 11:28:37
Oberschlumpf
Hi Maik
dann versuchs mal hiermit:
Sub sbCommaDel()
Do Until Instr(ActiveCell.Value,",,") = 0
ActiveCell.Value = Replace(ActiveCell.Value, ",,", ",")
Loop
End Sub

Hilfts?
Ciao
Thorsten

Anzeige
AW: doppelte Kommas löschen
15.03.2014 11:48:00
Maik
Hallo Ransi,
danke, interessant zu wissen wie der Code aussieht.
Kann ich vielleicht noch fragen, wie der Code aussehen muss, damit er beim Verlassen der Zelle durchläuft? Momentan muss ich zur Zelle zurück und deinen Code abrufen.
Gruß Maik

AW: doppelte Kommas löschen
15.03.2014 12:20:53
Oberschlumpf
Hi Maik
...bitte etwas mehr Konzentration...
ich bin nicht Ransi.
Schreib diesen Code

Do Until Instr(ActiveCell.Value,",,") = 0
ActiveCell.Value = Replace(ActiveCell.Value, ",,", ",")
Loop

ins Change-Ereignis des Tabellenblattes.
Nun wird der Code direkt nach jeder Änderung in jeder Zelle durchgeführt.
Hilfts?
Ciao
Thorsten

Anzeige
AW: doppelte Kommas löschen
15.03.2014 12:36:08
Maik
Hallo Thorsten,
oh, Entschuldigung für's Namenverwechseln.
Nun bilde ich mir ein, es so gemacht zu habe, wie du sagtest, aber es geht nicht. Anbei mein Beispiel:

Die Datei https://www.herber.de/bbs/user/89676.xls wurde aus Datenschutzgründen gelöscht


Gruß Maik

AW: doppelte Kommas löschen
15.03.2014 12:55:32
Oberschlumpf
Hi Maik
war mein Fehler - du hattest in der Bsp-Datei alles so gemacht, wie ich es dir vorgeschlagen hatte.
Hier nun meine Bsp-Datei:
https://www.herber.de/bbs/user/89677.xls
Der Fehler ist, dass es mit ActiceCell nicht funktioniert.
Grund: ActiveCell ist sofort nach Verlassen der Zelle, in der du den Wert eingegeben hattest, eine andere Zelle.
Deshalb muss der Code "sich merken", in welcher Zelle du den Wert geändert und eben auch 1 oder mehr Kommata zu viel eingegeben hattest.
Erreichen kann man das mit einer globalen Variable, die im allgemeinen Modul mit Public var As ? deklariert wird.
Globale Variablen sind überall im Code gültig und verlieren ihren Inhalt nie.
Also....
1. Klick irgendeine Zelle an
Der Code "merkt" sich genau diese Zelladresse.
2. Gib irgdeinen Wert mit mehreren Kommata ein
3. Drück die Enter-Taste oder klick eine andere Zelle an
4. Obwhl die aktive Zelle nun eine andere und nicht mehr die Zelle mit dem Wert ist, weiß der Code trotzdem noch, in welcher Zelle du den Wert eingegeben hattest
5. Nun prüft und korrigiert der Code den eingegebenen Wert und entfernt überflüssige Kommata.
Hilfts?
Ciao
Thorsten

Anzeige
AW: doppelte Kommas löschen
15.03.2014 14:06:28
Maik
Hallo Thorsten,
ja, danke. Auch danke für deine Erklärungen. Eine letzte Frage hätte ich noch, wenn es nicht zu nervig wird:
Wenn ein Komma/mehrere Kommas als letzte(s) Zeichen in der Zelle steht mit welchem Code bekomme ich das weg?
Gruß Maik

.Pattern = ",+"
15.03.2014 14:20:38
ransi
Hallo Maik
In Thorstens Ereignisspozedur etwas "schleifenfreies".
Versuch mal sowas:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Range(pstrAddr).Value = "" Then Exit Sub
    Application.EnableEvents = False
    Range(pstrAddr).Value = machs(Range(pstrAddr).Value)
    Application.EnableEvents = True
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    pstrAddr = ActiveCell.Address
End Sub



Function machs(stext As String) As String
    Dim Regex As Object
    Set Regex = CreateObject("VBScript.Regexp")
    With Regex
        .Pattern = ",+"
        .Global = True
        machs = .Replace(stext, ",")
    End With
End Function


ransi

Anzeige
AW: .Pattern = ",+"
15.03.2014 15:50:11
Maik
Hallo ransi,
ja, funktioniert auch. Danke.
Gruß Maik

AW: doppelte Kommas löschen
15.03.2014 11:19:50
Maik
Hallo Oberschlumpf,
danke klappt.
Gruß Maik

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige