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

Telefonnummern korrekt formatieren?

1,543 views
Skip to first unread message

Georg v.Breitenbuch

unread,
Jun 1, 2002, 10:16:54 PM6/1/02
to
Hi,
ich habe eine Excel-Spalte in der untereinander 600 Telefonnummern im Format
Vorwahl-Durchwahl stehen. Nun möchte ich diese einigermaßen korrekt und gut
lesbar formatieren. Nach einem Typo&Layout-Buch bedeutet dies, daß bei Vor-
und Durchwahl nach jeder zweiten Ziffer von rechts ein Leerzeichen (besser
ein viertel Geviert) eingefügt wird.

Bsp.:
1234-56478 wird zu 12 34 - 5 64 78
089-158558 wird zu 0 89 - 15 85 58
035796-98567 wird zu 03 57 96 - 9 85 67
...

Hat jemand von Euch eine Idee, wie ich die Umformatierung möglichst
effizient (also ohne jede einzelne Zeile manuel zu bearbeiten) vornehmen
kann?

Danke im Voraus!
Grüße Georg


Lisa Wilke-Thissen

unread,
Jun 2, 2002, 3:36:42 AM6/2/02
to
Hallo Georg,

"Georg v.Breitenbuch" <von-bre...@online.de> schrieb


> ich habe eine Excel-Spalte in der untereinander 600 Telefonnummern im
Format
> Vorwahl-Durchwahl stehen. Nun möchte ich diese einigermaßen korrekt und
gut
> lesbar formatieren. Nach einem Typo&Layout-Buch bedeutet dies, daß bei
Vor-
> und Durchwahl nach jeder zweiten Ziffer von rechts ein Leerzeichen
(besser
> ein viertel Geviert) eingefügt wird.

da bist du nicht mehr auf dem neuesten Stand. Seit November letzten Jahres
sieht DIN 5008 etwas anderes vor:

"Früher waren Telefonnummern nach DIN grundsätzlich in Zweierblöcken von
rechts ausgehend zu gliedern, die Vorwahl stand in Klammern:
(0 62 81) 43 91.
Damit ist es nun vorbei. Es entfällt nicht nur die Gliederung in
Zweierblöcken, auch auf die Klammern bei der Vorwahl wird verzichtet.
Stattdessen wird "funktionsbezogen" mit Hilfe von Leerzeichen gegliedert.
Leerzeichen werden zum Beispiel zwischen Vorwahl (bzw. Netzkennzahl) und
Rufnummer gesetzt. Lediglich bei der Durchwahl hat sich nichts geändert.
Sie wird wie gewohnt mit Bindestrich angeschlossen:
0621 4391-0
0172 3701458
Bei Servicerufnummern wird die Nummer des Anbieters (z. B. 0190) von der
Ziffer für die Gebührenzählung mit einer Leertaste getrennt. Damit lässt
sich schneller erkennen, wie teuer das Gespräch ist:
0190 8 70098
Und für alle, die sich auf internationalem Parkett bewegen, zum Schluss
auch für die Gliederung internationaler Telefonnummern noch ein Beispiel:
+49 6251 89-0"

Ob du nun per benutzerdefiniertem Format Telefonnummern entsprechend
gegliedert werden können, bezweifle ich, denn eine eindeutige Systematik,
wo Vorwahl, Durchwahl und Rufnummern enden bzw. beginnen, ist in der Regel
nicht eindeutig erkennbar.
Für deine vorhandenen Telefonnummern läßt sich aber möglicherweise durch
Bearbeiten/Ersetzen eine korrekte Gliederung hinkriegen, wenn
beispielsweise Klammern durch Leerzeichen ersetzt werden o.ä.
Vielleicht ist es auch eine Überlegung wert, bei der Überarbeitung gleich
Vorwahl und Rufnummer in getrennten Zellen unterzubringen?

Gruß
Lisa

Monika Weber

unread,
Jun 2, 2002, 3:49:46 AM6/2/02
to
Hallo Georg

Eine Lösung per VBA könnte so aussehen (siehe unten)
Teste es besser vorerst an einer Kopie deiner Mappe, denn ich habe
mich hier lediglich auf die von dir geposteten Beispiele bezogen.

Markiere die gewünschten Datensätze und führe den Code aus.

Sub test()
Dim c As Range, i As Integer
Dim x As String, y As String
Dim a As String, b As String

For Each c In Selection
c.NumberFormat = "@"
x = CStr(Left(c, Application.WorksheetFunction. _
Find("-", c) - 1))
y = CStr(Right(c, Len(c) - Application. _
WorksheetFunction.Find("-", c)))

If Len(x) Mod 2 <> 0 Then
a = Mid(x, 1, 1)
For i = 2 To Len(x) Step 2
a = a & " " & Mid(x, i, 2)
Next i
End If

If Len(x) Mod 2 = 0 Then
a = Mid(x, 1, 2)
For i = 3 To Len(x) Step 2
a = a & " " & Mid(x, i, 2)
Next i
End If

If Len(y) Mod 2 <> 0 Then
b = Mid(y, 1, 1)
For i = 2 To Len(y) Step 2
b = b & " " & Mid(y, i, 2)
Next i
End If

If Len(y) Mod 2 = 0 Then
b = Mid(y, 1, 2)
For i = 3 To Len(y) Step 2
b = b & " " & Mid(y, i, 2)
Next i
End If

c.Value = a & " - " & b
Next c
End Sub

--
Ich hoffe, dass dir das weiterhilft.

Es liebs Grüessli aus der Schweiz
Monika Weber

------------------------------------------
Microsoft MVP für Excel
http://www.jumper.ch
http://www.jumper.ch/CODEBOOK.htm

Georg v.Breitenbuch

unread,
Jun 2, 2002, 5:43:37 AM6/2/02
to
Hallo Lisa,
danke Dir für Deine ausführliche Antwort. Ich bin allerdings nicht sicher,
ob ich das wirklich so mache, wie in der neuen DIN beschrieben (man muß ja
nicht jeden Mist mitmachen). Du weißt nicht zufällig, wer die neue Regel mit
welcher Begründung durchgesetzt hat? Mir sieht es ganz so aus, als wäre die
Computerindustrie gepaaart mit ein paar Faulpelzen nicht ganz unschuldig. Es
ist halt einfacher die Zahlen ohne irgendwelche Gliederungen
aneinanderzuhängen, als das Ganze wie bisher zugunsten der Lesbarkeit
aufzubereiten. Schade, daß die Bequemlichkeit vor der Übersichtlichkeit
gesiegt hat. Oder gibt es echte Argumente für die neue Lösung?
Mit Dank, Stirnrunzeln und vergnügten Grüßen
Georg (der sich aber durch "treffende" Argumente gerne "bekehren" lässt)

Georg v.Breitenbuch

unread,
Jun 2, 2002, 5:51:25 AM6/2/02
to
Hallo Monika,
auch Dir herzlichen Dank für Deine Antwort. Leider wird das Ganze bei mir
mit einenm Laufzeitfehler 1004 quittiert: "Die Find Eigenschaft des
WorksheetFunction-Objektes kann nicht zugeordnet werden"
Hast Du eine Idee, woran das liegen könnte? Liegt es evtl. daran, daß ich
nur Excel 97 (sorry - habe ich vergessen im ersten Posting zu erwähnen) zur
Verfügung habe? Oder habe ich einen Fehler gemacht?
Für einen Tipp sehr dankbar und mit schönen Grüßen aus Dresden
Georg

Monika Weber

unread,
Jun 2, 2002, 5:57:00 AM6/2/02
to
Hallo Georg

> auch Dir herzlichen Dank für Deine Antwort. Leider wird das Ganze bei mir
> mit einenm Laufzeitfehler 1004 quittiert: "Die Find Eigenschaft des
> WorksheetFunction-Objektes kann nicht zugeordnet werden"
> Hast Du eine Idee, woran das liegen könnte? Liegt es evtl. daran, daß ich
> nur Excel 97 (sorry - habe ich vergessen im ersten Posting zu erwähnen)
zur
> Verfügung habe? Oder habe ich einen Fehler gemacht?

Hm, getestet habe ich es mit XL2000.
Leider habe ich hier keine 97-er Version mehr installiert und kann es
somit auch nicht testen.

Evtl. muss man im Excel 97 das "Application.Worksheetfunction" weglassen.
Ansonsten könntest du versuchen, an Stelle von "Find" ---> "Search"
zu verwenden.

Georg v.Breitenbuch

unread,
Jun 2, 2002, 6:27:29 AM6/2/02
to
Uuups- hatte versehentlich den Tabellenkopf mit markiert! Sorry! Jetzt
funktioniert es bestens (auch mit Application.Worksheetfunction und Find)!
Great!
Vielen Dank Georg

Kleiner Tip noch: Wenn Du die Lösung auf Deine Website schreibst, ergänze
noch, daß es nach der Duchführung kein Zurück mehr gibt (außer ohne
Speichern abzubrechen und neu anfangen). Dein Hinweis mit einer Kopie zu
arbeiten ist also besonders wichtig!


Georg v.Breitenbuch

unread,
Jun 2, 2002, 6:37:37 AM6/2/02
to
Halt, stop, zurück :-)
Es lag nicht am Tabellenkopf, sondern an einigen Einträgen in denen keine
Telefonnummer steht bzw. bei denen eine internationale Telefonnummer stand.
Gibt es eine Möglichkeit, diese Fälle einfach zu überspringen / zu
ignorieren?
Gruß und nochmals Dank im Voraus
Georg

Monika Weber

unread,
Jun 2, 2002, 6:44:41 AM6/2/02
to
Hallo Georg

> Uuups- hatte versehentlich den Tabellenkopf mit markiert! Sorry! Jetzt
> funktioniert es bestens (auch mit Application.Worksheetfunction und Find)!

Freut mich, dass es geklappt hat :-).
Danke für's Feedback.

> Kleiner Tip noch: Wenn Du die Lösung auf Deine Website schreibst, ergänze
> noch, daß es nach der Duchführung kein Zurück mehr gibt (außer ohne
> Speichern abzubrechen und neu anfangen). Dein Hinweis mit einer Kopie zu
> arbeiten ist also besonders wichtig!

Stimmt. Es gibt generell keine Rückgängig für VBA-Prozeduren.
Von daher ist das eigentlich für alle Prozeduren wichtig.
Ich werde einen generellen Hinweis auf meine VBA-Seite schreiben.
Danke für den Hinweis.

(... ich werde jetzt noch ein bisschen das schöne Wetter geniessen :-) )

--

Georg v.Breitenbuch

unread,
Jun 2, 2002, 6:59:24 AM6/2/02
to
Hallo Monika,
na vielleicht erreiche ich ich ja doch noch vor dem schönen Wetterpäuschen?
Es gibt - wie ich leider erst jetzt feststelle - noch ein weitere kleines
Problem. Im Augenblick werden die Leerzeichen von rechts nach links
durchgehend eingefügt. Der Rythmus sollte aber - um es ganz korrekt zu
machen - bei der Vorwahl neu beginnen. Es sollte also statt dem - schon sehr
schönen -
0 3 50 1 - 52 05 45
besser
0 35 01 - 52 05 45
stehen. Das wäre dan m.E. ziemlich perfekt. Läßt sich das machen?
Grüße + Dank für die spitzen Unterstützung! + viel Sonnenschein
Georg

Monika Weber

unread,
Jun 2, 2002, 7:14:58 AM6/2/02
to
Hallo Georg

> na vielleicht erreiche ich ich ja doch noch vor dem schönen
Wetterpäuschen?

Glück gehabt ;-)

> Es gibt - wie ich leider erst jetzt feststelle - noch ein weitere kleines
> Problem. Im Augenblick werden die Leerzeichen von rechts nach links
> durchgehend eingefügt. Der Rythmus sollte aber - um es ganz korrekt zu
> machen - bei der Vorwahl neu beginnen. Es sollte also statt dem - schon
sehr
> schönen -
> 0 3 50 1 - 52 05 45
> besser
> 0 35 01 - 52 05 45
> stehen. Das wäre dan m.E. ziemlich perfekt. Läßt sich das machen?

Das tut er bei mir auch. Stehen denn mehrere Telefonnummern in einer Zelle?
Ich bin davon ausgegangen, dass jede Nummer in einer Zelle steht.

Betr. der anderen Frage: Du könntest mit einer Sprungmarke arbeiten,
welche vor das Ende der Schleife springt, wenn es zu einem Fehler
kommt:

For Each c In Selection

On Error GoTo Sprungmarke
c.NumberFormat = "@"

[...]

c.Value = a & " - " & b

Sprungmarke:
Next c
End Sub

--
Ich wünsche dir auf viel Sonnenschein :-)

Georg v.Breitenbuch

unread,
Jun 2, 2002, 7:27:58 AM6/2/02
to
"Monika Weber" <mon...@jumper.ch> schrieb im Newsbeitrag
news:#3mvVbiCCHA.2296@tkmsftngp05...

> Das tut er bei mir auch.

Hmm, seltsam jetzt nachdem ich das Ganze nochmals neu gemacht habe klappts!
Danke und nun wirklich viel Spaß an der frischen Luft!
Georg

Ullrich Schwarz

unread,
Jun 2, 2002, 7:45:50 AM6/2/02
to
Hallo Georg, wie fast immer gibt es natürlich auch eine Formellösung:

=WENN(ODER(ISTLEER(A1);LINKS(A1;1)="+");A1;TEXT(LINKS(A1;FINDEN("-";A1)-1);W
ENN(LÄNGE(LINKS(A1;FINDEN("-";A1)-1))/2<>GANZZAHL(LÄNGE(LINKS(A1;FINDEN("-";
A1)-1))/2);"# ";"")&WIEDERHOLEN("##
";GANZZAHL(LÄNGE(LINKS(A1;FINDEN("-";A1)-1))/2))) & "- " &
TEXT(RECHTS(A1;LÄNGE(A1)-FINDEN("-";A1));WENN(LÄNGE(RECHTS(A1;LÄNGE(A1)-FIND
EN("-";A1)))/2<>GANZZAHL(LÄNGE(RECHTS(A1;LÄNGE(A1)-FINDEN("-";A1)))/2);"#
";"")&WIEDERHOLEN("##
";GANZZAHL(LÄNGE(RECHTS(A1;LÄNGE(A1)-FINDEN("-";A1)))/2))))

Formel in eine Hilfsspalte einfügen, Formelergebnisse mit
BEARBEITEN|KOPIEREN und BEARBEITEN|INHALTE EINFÜGEN 'Werte' überschreiben,
alte Spalte löschen.

MfG Ullrich

"Georg v.Breitenbuch" <von-bre...@online.de> schrieb im Newsbeitrag
news:adbv6d$4av$1...@news.online.de...

Lisa Wilke-Thissen

unread,
Jun 2, 2002, 7:50:39 AM6/2/02
to
Hallo Georg,

"Georg v.Breitenbuch" <von-bre...@online.de> schrieb

> danke Dir für Deine ausführliche Antwort. Ich bin allerdings nicht


sicher,
> ob ich das wirklich so mache, wie in der neuen DIN beschrieben (man muß
ja
> nicht jeden Mist mitmachen). Du weißt nicht zufällig, wer die neue Regel
mit
> welcher Begründung durchgesetzt hat?

nein, keine Ahnung.
Da die Gliederung in Zweier-Gruppen allerdings mindestens schon 18 Jahre
galt (du scheinst sie erst jetzt entdeckt zu haben?), sich aber kaum jemand
daran orientierte (ob Firma oder Privatperson: die meisten haben sich
lediglich nach ihrem eigenen Geschmack gerichtet), hat man vermutlich die
Schreibweise nun vereinfacht - evtl. auch im Hinblick auf europäische oder
globalere Regeln, so wie man sich in der Schreibweise des Datums ja auch
anderen Ländern annähert.

Für Privatpersonen ist das alles eh kaum relevant. Und Firmen? Welche
Mitarbeiter interessiert es, wo Datum, Betreffzeile, Unterschriften etc. zu
stehen haben, wo in der Anschrift Anrede, Titel, Name etc. hingehören, wie
Telefon- oder Kontonummer zu gliedern sind? Aber Sekretärin, Bürokaufmann
etc. müssen es mindestens für die IHK-Prüfung wissen. Ebenso natürlich
Werbeagenturen, die evtl. für Briefgestaltung zuständig sind.

Und deshalb lohnt es sich beispielsweise, den Duden-Newsletter zu beziehen,
dem auch die von mir zitierte Erklärung entnommen ist.

Viele Grüße
Lisa

0 new messages