Hola
,
ich habe da ein kleines Problem und hoffe auf Hilfe von Euch.
Ich habe eine Liste mit unzähligen Telefonnummern.
Leider sind die Nummern alle unterschiedlich
z.B:
03012346578
+49(30)12345678
+31 (45) 12345678
030-12345678
030 12345678
+49-30-12345678
Mein Ziel ist es, alle Telefonnummern im kanonischen Format gleich zu haben und zwar so
+49 30 123456-78
Länderkennung Vorwahl Rufnummer
Als Datenbasis hätte ich auch die Länderkennung in der Liste:
z. B. Deutschland DE, Spanien ES, Italien IT...
Gibt es da eine Möglichkeit?
Gracias.
Monsterbabe
Hallo,
vor einiger Zeit habe ich einen VBA-Code geschrieben, der (fast) die gewünschten Umformatierungen vornimmt. Vielleicht war mein Code zu umständlich, jedenfalls sind solide Grundkenntnisse in VBA nötig.
Käme das infrage?
mfg
Hallo Fennek,
Zitat:Vielleicht war mein Code zu umständlich, jedenfalls sind solide Grundkenntnisse in VBA nötig.
der ist gut.
Hallo,
ja gerne.
Vilen Dank.
Einfach so:
PHP-Code:
=IF(LEFT(A1;1)="+";LEFT(A1;3);"") &RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1;"(";"");")";"");"-";"");" ";"");10)
Hallo,
ich hatte damals an dem Code ziemlich gebastelt, bis Festnetz- und Mobilfunknummern erfasst wurden. Da damals fast nur deutsche Nummern dabei waren, wurden internationale Nummern vernachlässigt.
Code:
Function fn_tel(ByVal Tel As String) As String
If IsDate(Tel) Then Exit Function
If Len(Trim(Tel)) = 11 Then Exit Function
Select Case Left(Trim(Tel), 1)
Case Is = "+", "0"
Tel = Replace(Tel, Chr(32), "")
Tel = Replace(Tel, "/", "")
Tel = Replace(Tel, "-", "")
Tel = Replace(Tel, "(0)", "")
Tel = Replace(Tel, "(", "")
Tel = Replace(Tel, ")", "")
If UCase(Tel) <> LCase(Tel) Then Exit Function
pos = InStr(1, Tel, "-")
If pos And pos < 6 Then Tel = Replace(Tel, "-", "", , 1)
If Left(Tel, 1) = 0 And Mid(Tel, 2, 1) <> 0 Then Tel = "+49" & Mid(Tel, 2)
fn_tel = Tel
Case Else
Debug.Print "Tel", Tel
End Select
End Function
Ist doch gar nicht so schlimm.
[img]
Dateiupload bitte im Forum! So geht es: Klick mich!]
mfg
PS: Jedenfalls möchte ich jetzt keine Anpassungen für den/die FragestellerIn programmieren
Ich wundere mich bei den bisherigen Antworten, wie man dort für das erste Beispiel des TE die nationalen Hierarchien einbaut. Das geht doch nur mit einer internationalen Datenbank, die die Trennungen (oder Systematiken) von +Land-Region-Anschluss enthält. Als Region gilt hier auch Handy-Vorwahl.
Um das nicht selbst programmieren zu müssen, könnte man z.B. die entsprechende Routine von Google-Contacts bemühen.
Bei 030 12345678 bringt ein Inernationale Datenbank leider nichts.
Man hat aber den ISO Ländercode aus den man die Landesvorwahl aus einer Datenbank ziehen könnte?
Oder?
[
Bild bitte so als Datei hochladen: Klick mich!]
Monsterbabe
@snb: Doch. Das ist dann Deutschland-Berlin, denn der Programmersteller oder -verwender ist deutsch. Oder die Google-Spracheinstellung ist Deutschland-deutsch. Oder, oder ... Und wenn die Pferde vor der Apotheke wirklich kotzen (etwa weil das Programm multinational eingesetzt wird), kann das Programm immer noch manuell nach dem Land fragen. Außerdem gilt als internationaler Eintrag + oder 00 (oder Sonderfälle der Verkehrsausscheidungsziffer), aber niemals nur 0.
2030,5 bedeutet ja auch Leeuwarden-Abakus mit Holzkugeln und nicht etwa Amsterdam-Registrierkasse-Klingeling.