Clever-Excel-Forum

Normale Version: Entfernen von Bindestrichen bei der Eingabe von Daten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo und guten Tag,

da ich ein absoluter Newbee bei Funktionen in Excel bin, würde ich mich über eine kurze Hillfestellung sehr freuen - so sie denn überhaupt möglich ist. Das Szenario ist folgendes:
  • Ein User kopiert eine alphanumerische Zeichenfolge aus einem Dokument (uns nicht bekannt, welche Dokumentenform) und fügt diese Zeichenfolge in eine Zelle eines von uns gelieferten Excel-Sheets ein.
  • Der Einfachheit halber ein Beispiel: AA15-BB13-CC14-DD17
  • Das Excelsheet wird nach der "Befüllung" von einem anderen Programm importiert, welches sich aber an den Bindestrichen in den Zeichenfolgen stößt und auf einen Fehler läuft.

Mein Frage(n) jetzt:
  • wie ist es zu verhindern, dass Bindestriche mit in die Zeichenfolge einfließen? Wir können jetzt bei einem Datensatz von ca. 300 Positionen nicht verlangen, das diese Bindestriche nachträglich händisch enfernt werden.
  • Wir haben auch schon den Hinweis im Dokument selber gegeben, das "13 Stellen alphanumerisch (ohne Bindestriche)" erwartet werden, aber können demjenigen, welcher das Dokument befüllt, nicht auf die Finger hauen.
  • Ist es irgendwie möglich einer Zeichenfolge, welche mit Copy 'n Paste dort eingefügt wird, der Bindestriche zu berauben?

Bin für jeden Tipp dankbar und verbleibe mit einem  43
Hi,

Bereich markieren, Suchen/Ersetzen, "-", fertig.
Hallo,

vlt. mit einer Hilfsspalte
Code:
=WECHSELN(A1;"-";"")

oder per Makro
Da "Suchen und Ersetzen" (siehe Edgar) so gut versteckt ist (Register Start, Bearbeiten):
[attachment=48382]

Ich nehme aus Gewohnheit lieber den Shortcut Strg+h

Gruß Ralf
Hallo,

danke für die zahlreichen Antworten. Das mit dem "Suchen und Ersetzen" war natürlich schon in der Pipeline, sooo unbedarft sind wir auch nicht Smile

Nur würde diese Arbeit halt an und hängen bleiben. Am liebsten wäre es uns, wenn das kopierte AA15-BB13-CC14-DD17 nach dem Einfügen in die Zelle sich in ein AA15BB13CC14DD17 (also ohne Bindestriche) umwandelt.

DAS wäre natürlich das Optimale.

Gruß von der Küste 43
Mir fällt da als erstes das Worksheet_Change Event ein
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Target = Join(Split(Target, "-"), "")
End Sub

Das hat aber seine Tücken, z.B. wenn mehrere Zeilen ausgewählt sind bzw. eingefügt werden. Das müsste man entspr. berücksichtigen

Warum entfernt ihr die überflüssigen "-" nicht vor dem Import in das nächste Programm (mit VBA, Powerquery usw.)
(08.06.2023, 13:13)DeltaX schrieb: [ -> ]Das hat aber seine Tücken, z.B. wenn mehrere Zeilen ausgewählt sind. Das müsste man entspr. berücksichtigen

Dies ließe sich am einfachsten mittels Range.Replace-Methode lösen:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
  If .Column = 1 Then .Replace "-", "", xlPart
End With
End Sub

Das klappt auch mit mehreren Zellen, die eingefügt werden.
Zitat:Ein User kopiert eine alphanumerische Zeichenfolge aus einem Dokument (uns nicht bekannt, welche Dokumentenform)
Kann man einfach und besser automatisieren
z.B.

Code:
Sub M_snb()
   Application.InputBox("select", "markiere", , , , , , 8).Copy
End Sub