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

Via VBA prüfen ob Handynummer dann in Variabel sch

Via VBA prüfen ob Handynummer dann in Variabel sch
18.08.2017 10:51:30
Sonja
Einen wunderschönen guten Morgen.
Mit meinen bescheidenen VBA Kenntnissen komme ich leider zu einem Ergebnis.
Für unsere Spenderliste und Unterstüzerliste beim DKR benötige ich eine Methode um schneller ans Ziel zu kommen.
Es gibt drei Zellen die Komunikation1, Komunikation2 und Komunikation3 heissen.
Dort stehen Festnetznummern, Mobilnummern oder E-Mail Adressen drinnen.
Die drei Felder sollen nun per VBA Makro überprüft werden.
Wenn eine Handynummer (im Format 0171 3333333 ) drinnen steht soll die Nummer in eine Variable geschrieben werden und in das Format +491713333333 umgewandelt werden.
Hat vor euch jemand eine Idee wie man das machen kann?
Ich dachte an eine Abfrage If Range(„Komunikation1“) = 0171 or Range(„Komunikation1“) = 0172 or ……
Aber mit meinen bescheidenen VBA Kenntnissen komme ich leider nicht weit 
Liebste Grüße
Sonja

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Via VBA prüfen ob Handynummer
18.08.2017 10:56:20
mumpel
Hallo!
Ich mach das in meinem Wähltool wie folgt. "strT" enthält den Zellinhalt.
If Left(strT, 4) = "0151" Or Left(strT, 4) = "0152" _
Or Left(strT, 4) = "0159" Or Left(strT, 4) = "0160" _
Or Left(strT, 4) = "0162" Or Left(strT, 4) = "0163" _
Or Left(strT, 4) = "0170" Or Left(strT, 4) = "0171" _
Or Left(strT, 4) = "0172" Or Left(strT, 4) = "0173" _
Or Left(strT, 4) = "0174" Or Left(strT, 4) = "0175" _
Or Left(strT, 4) = "0176" Or Left(strT, 4) = "0177" _
Or Left(strT, 4) = "0178" Or Left(strT, 4) = "0179" Then

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Gruß, René
Anzeige
AW: Via VBA prüfen ob Handynummer
18.08.2017 11:07:12
Oberschlumpf
Hi René
hierzu habe ich 2 Fragen
1) Könnte man deinen Code nicht auch wie folgt abkürzen?

If Left(strT, 3) = "015" Or Left(strT, 3) = "016" _
Or Left(strT, 3) = "017 Then

Mein Gedanke:
In deinem Code fragst du ja jede Handyvorwahl ab, die es zu geben scheint.
So viel ich weiß, gibt es im Handynummernkreis nur die 015, 016 + 017.
Daher meine obige Idee.
2) Was soll denn nach "Then" passieren? :-)
Zumindest ich kann in deiner Antwort nur bis Then "lesen".
Ciao
Thorsten
AW: Via VBA prüfen ob Handynummer
18.08.2017 11:30:49
mumpel
1. Ich würde das bei "0151" lassen. Es macht sich so m.E. auch besser.
2. Ist nur ein Beispielcode. Was danach passiert kann die Fragestellerin sicher selber. ;) Aber trotzdem mal ein vollständiger Code.
Sub ReplaceNationalPhoneNumber()

  Dim strStart         As String
  Dim strVorwahl       As String
  Dim strRufnummer     As String
  Dim strInternational As String
    
    
    strStart = ActiveCell.Value
    
    If Left(strStart, 4) = "0151" Or Left(strStart, 4) = "0152" _
       Or Left(strStart, 4) = "0159" Or Left(strStart, 4) = "0160" _
       Or Left(strStart, 4) = "0162" Or Left(strStart, 4) = "0163" _
       Or Left(strStart, 4) = "0170" Or Left(strStart, 4) = "0171" _
       Or Left(strStart, 4) = "0172" Or Left(strStart, 4) = "0173" _
       Or Left(strStart, 4) = "0174" Or Left(strStart, 4) = "0175" _
       Or Left(strStart, 4) = "0176" Or Left(strStart, 4) = "0177" _
       Or Left(strStart, 4) = "0178" Or Left(strStart, 4) = "0179" Then
    
          strVorwahl = Left(strStart, 4)
          strRufnummer = Mid(strStart, 5, Len(strStart))
          strInternational = Replace(strVorwahl, "0", "+49")
     
          If MsgBox("Wurde die Rufnummer korrekt formatiert?" & vbCrLf & _
                     strInternational & strRufnummer, _
                     vbYesNo + vbQuestion, "Rufnummer International") = vbYes Then
          
             With ActiveCell.Offset(0, 1)
                 .NumberFormat = "@"
                 .Value = strInternational & strRufnummer
             End With
         
          End If
    Else

          MsgBox "Keine Mobilfunkrufnummer gefunden", 64, "Hinweis"
 
    End If

End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
ok, von mir...
18.08.2017 11:34:40
mir...
Hi René
...ein Danke.
Mein 1) war nur eine Idee.
Jetzt warten wir mal neugierig auf Sonja's Antwort.
Ciao
Thorsten
AW: ok, von mir...
18.08.2017 11:36:35
mir...
Es kommt sicher auch darauf an wie man mit einzelnen Vorwahlen weiter verfahren will.
AW: Via VBA prüfen ob Handynummer
18.08.2017 15:42:37
Werner
Hallo,
bin hier auch am Mitlesen. Meint ihr nicht, dass eine Prüfung der ersten beiden Ziffern schon reicht?
Festnetznummern gibt es in Deutschland nur von 02 bis 09.
Auch in Bezug auf eine eventuelle Auslandsnummer wäre unproblematisch. Die würde dann entweder mit 00 oder mit +? beginnen.
Problematisch wäre nur, wenn der User die Telefonnummer ohne eine führende 0 eingeben würde. Da müsste dann ggf. noch eine entsprechende Prüfung rein.
Ich habs für mich mal so zusammengebastelt:
Public Sub Vorwahl()
Dim international As String
If Left(ActiveCell.Value, 2) = "01" Then
international = WorksheetFunction.Substitute(ActiveCell.Value _
, Left(ActiveCell.Value, 1), "+49")
international = WorksheetFunction.Substitute(international, " ", "")
End If
MsgBox international
End Sub
Gruß Werner
Anzeige
AW: Via VBA prüfen ob Handynummer
18.08.2017 19:38:20
mumpel
Es gibt auch Festnetznummern die mit "01" beginnen (Z.B. 0137. Sogenannte Mehrwertdienstnummern).
Eins zu null für dich. o.w.T.
18.08.2017 20:12:41
Werner
AW: Via VBA prüfen ob Handynummer dann in Variabel sch
21.08.2017 02:35:54
Werner
Hallo,
mir war im Nachtdienst langweilig.
Habe jetzt auch mal was zusammengebastelt. Dabei ist es egal, ob die Nummer mit oder ohne führende 0 eingegeben wurde. Ebenfalls egal, sollte die Nummer schon im internationalen Format vorliegen.
Als Eingabezellen werden die Zellen A2, B2, C2 überprüft.
Was dann weiter passieren soll?
Public Sub International()
Dim strVorwahl As String, strTelefon As String, strInternational As String
Dim raBereich As Range, raZelle As Range, boFund As Boolean
Set raBereich = Range("A2:C2")
For Each raZelle In raBereich
'gängige Trennzeichen und Leerzeichen raus
strTelefon = WorksheetFunction.Substitute(raZelle.Value, " ", "")
strTelefon = WorksheetFunction.Substitute(strTelefon, "-", "")
strTelefon = WorksheetFunction.Substitute(strTelefon, "/", "")
'Prüfung ob Nummer mit 0 beginnt
If Left(strTelefon, 1) = 0 Then
strVorwahl = Left(strTelefon, 4)
'Prüfung auf Deutsche Handyvorwahl (mit führender 0)
Select Case strVorwahl
Case "0151", "0152", "0159", "0160", "0162", "0163", "0170", "0171" _
, "0172", "0173", "0174", "0175", "0176", "0177", "0178", "0179"
strInternational = WorksheetFunction.Substitute(strTelefon _
, Left(strTelefon, 1), "+49")
boFund = True
MsgBox "Mobilfunknummer im internationalen Format:" _
& vbLf & vbLf & "                    " & strInternational _
& "   in Zelle " & raZelle.Address(0, 0)
Case Else
End Select
'Prüfung ob Nummer mit 1 beginnt
ElseIf Left(strTelefon, 1) = 1 Then
strVorwahl = Left(strTelefon, 3)
'Prüfung auf Deutsche Handyvorwahl (ohne führende 0)
Select Case strVorwahl
Case "151", "152", "159", "160", "162", "163", "170", "171" _
, "172", "173", "174", "175", "176", "177", "178", "179"
strInternational = "+49" & strTelefon
boFund = True
MsgBox "Mobilfunknummer im internationalen Format:" _
& vbLf & vbLf & "                    " & strInternational _
& "   in Zelle " & raZelle.Address(0, 0)
Case Else
End Select
'Prüfung ob Nummer bereits im internationalen Format vorliegt
ElseIf Left(strTelefon, 1) = "+" Then
strVorwahl = Left(strTelefon, 6)
'Prüfung auf Deutsche Handyvorwahl (mit führendem +49)
Select Case strVorwahl
Case "+49151", "+49152", "+49159", "+49160", "+49162", "+49163", "+49170" _
, "+49171", "+49172", "+49173", "+49174", "+49175", "+49176", "+49177" _
, "+49178", "+49179"
strInternational = strTelefon
MsgBox "Nummer liegt schon im internationalen Format vor." _
& vbLf & vbLf & "                    " & strInternational _
& "   in Zelle " & raZelle.Address(0, 0)
boFund = True
Case Else
End Select
End If
Next raZelle
If Not boFund Then MsgBox "Keine Mobilfunknummer vorhanden."
End Sub
Gruß Werner
Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige