Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Nach Ersetzen sind führende Nullen weg

174 views
Skip to first unread message

RainerK

unread,
Mar 24, 2009, 4:48:53 AM3/24/09
to
Hallo,

In Excel 2000/2003 gebe ich in einem neuen Tabellenblatt in einer Spalte
Telefonnummern ein, ohne spezielle Formatierung,also Format=Standard. Beispiel:

089/123456
0221/987654

Dann entferne ich "/", indem ich dieses Zeichen mit Bearbeiten/Ersetzen durch ""
(leer) ersetze. Ergebnis:

89123456
221987654

Die führende Null ist weg! Offenbar meint Excel, weil nun ausschließlich Ziffern
in der Stelle stehen, handele es sich um einen numerischen Wert.

Das Problem kann *nicht* gelöst werden durch Formatieren der Spalte als Text.

Das Problem kann gelöst bzw. umgangen werden, indem man

a) die Daten mit vorangestelltem ' (einfacher Apostroph) eingibt, oder
b) das Ersetzen in einer anderen Zelle durchführt mit =WECHSELN(A1, "/";"")

Lange Rede, kurze Frage: Gibt es eine Lösung, die ohne die Workarounds a) und b)
funktioniert?

Grüße
Rainer

Alexander Wolff

unread,
Mar 24, 2009, 5:01:49 AM3/24/09
to
> a) die Daten mit vorangestelltem ' (einfacher Apostroph) eingibt, oder
> b) das Ersetzen in einer anderen Zelle durchführt mit =WECHSELN(A1,
> "/";"")
>
> Lange Rede, kurze Frage: Gibt es eine Lösung, die ohne die Workarounds a)
> und b)
> funktioniert?

Nein. Telefonnummern sind unterschiedlich lang; daher entfällt ein
Zahlenformat. Dir bleibt tatsächlich nur =WECHSELN und dessen
InhalteEinfügendes Überkopieren über A1. Immerhin geht das in einem Rutsch.

Du könntest auch weiterhin Deine Nummern mit 0 als Zahl eingeben, und
Worksheet_Change ändert sofort die Eingaben NUR in der Telefonnummernspalte
auf "0"&bisherigeEingabe (was einen String ergibt). Lies Dir dazu Beispiele
bei GoogleGroups durch.
--
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2


RainerK

unread,
Mar 24, 2009, 8:48:35 AM3/24/09
to
Alexander Wolff schrieb:

>
> Du könntest auch weiterhin Deine Nummern mit 0 als Zahl eingeben, und
> Worksheet_Change ändert sofort die Eingaben NUR in der Telefonnummernspalte
> auf "0"&bisherigeEingabe (was einen String ergibt). Lies Dir dazu Beispiele
> bei GoogleGroups durch.

Vielen Dank für die prompte Antwort. Nur das mit den Beispielen bei GoogleGroups
versteh ich nicht.

Grüße
Rainer

Alexander Wolff

unread,
Mar 24, 2009, 10:31:22 AM3/24/09
to
Die Tastatur von RainerK wurde wie folgt gedrückt:

Das sollte bedeuten: Dort Beispiele für Worksheet_Change (wegen der
Behandlung von Target und ggflls Intersect); gibts aber auch in der
Excel-Hilfe.

Tipp noch für die Eingabeersetzung:

- ohne Zeichen wird es eine Nummer mit Ortsvorwahl (0...): Aus 089/30404030
wird '08930404030, wahlweise '+498930404030
- mit vorangehendem , wird die lokale Ortsvorwahl vorgehängt (089... für
MUC): Aus ,30404030 wird '08930404030, wahlweise '+498930404030
- mit vorangehendem . (statt +, weil das nicht geht) werden (00...) oder
(+...) vorangestellt: Aus .33112345678 wird '+33112345678

RainerK

unread,
Mar 24, 2009, 10:53:12 AM3/24/09
to
Alexander Wolff schrieb:

> Die Tastatur von RainerK wurde wie folgt gedrückt:
>> Vielen Dank für die prompte Antwort. Nur das mit den Beispielen bei
>> GoogleGroups versteh ich nicht.
>
> Das sollte bedeuten: Dort Beispiele für Worksheet_Change (wegen der
> Behandlung von Target und ggflls Intersect); gibts aber auch in der
> Excel-Hilfe.
>
> Tipp noch für die Eingabeersetzung:
>
> - ohne Zeichen wird es eine Nummer mit Ortsvorwahl (0...): Aus 089/30404030
> wird '08930404030, wahlweise '+498930404030
> - mit vorangehendem , wird die lokale Ortsvorwahl vorgehängt (089... für
> MUC): Aus ,30404030 wird '08930404030, wahlweise '+498930404030
> - mit vorangehendem . (statt +, weil das nicht geht) werden (00...) oder
> (+...) vorangestellt: Aus .33112345678 wird '+33112345678

Verstehe ich richtig, dass ich ein Makro namens Worksheet_Change programmieren
soll, welches diese Ersetzungen für mich durchführt? Super! Das geschilderte
Problem habe nicht ich selbst, sondern eine Bekannter, der makro-mäßig total
unbeleckt ist. Der kommt schon mit der Umsetzung der WECHSELN/Kopieren/Inhalte
Einfügen/Werte - Lösung nicht zurecht.

Trotzdem Danke
Rainer

Alexander Wolff

unread,
Mar 25, 2009, 8:14:28 AM3/25/09
to

Der Bekannte wird jedoch ein einleitendes ' setzen können :-), womit wir
wieder beim Anfang wären. Es muss ja keiner die angebotene Hilfe in Anspruch
nehmen.

Ins Klassenmodul der Tabelle (nicht: normales Modul!) einfügen:

Private Sub Worksheet_Change(ByVal Target As Range)
'Rückgabe der Tel-Nr immer als +498912345678
'Im Standardfall "Inland" egal, ob mit oder ohne 0 eingegeben
Application.EnableEvents = False
'sonst ruft es sich immer wieder auf, wegen Target-Änderung im Code
Land = "'+49"
LandVorwahl = "'+4989"
If Target.Column = 8 Then
'Bitte Spalte H auf gewünschte Spalte ändern
Select Case Left(Target.Value, 1)
Case "#"
'Eingabe ohne Land, ohne Vorwahl, z.B. #12345678 (lokale Nummer)
Target = LandVorwahl & Replace(Replace(Target.Value, "/", ""), "#",
"")
Case "."
'Eingabe mit Land, mit Vorwahl, z.B. .498912345678 (ausländische Nr)
Target = Replace(Replace(Target.Value, "/", ""), ".", "'+")
Case 1 To 9
'Eingabe ohne Land, mit Vorwahl, z.B. 8912345678 (inländische Nr)
Target = Land & Replace(Target.Value, "/", "")
Case Else
'Texte und anderes bleiben unverändert
End Select
End If
Application.EnableEvents = True
End Sub

0 new messages