Aanpassen subroutine

Status
Niet open voor verdere reacties.

NIh1IlO

Gebruiker
Lid geworden
4 feb 2003
Berichten
750
Beste specialisten,

In bijgevoegd excelbestandje staan 2 nummers: 1 GSM nr en 1 gewoon telefoonnr (Belgisch).

Ik zou die nummers willen omgezet zien volgens de Belgische binnormen.
In de subroutinetekst die ik op dit forum vond en in cel G1 weergegeven is dit blijkbaar voorzien.

Hoe moet de subroutine er concreet uitzien om de telefoonnummers uit de kolom B in kolom C weergegeven te zien volgens de binnormen (B)?
Het is uiteraard de bedoeling dat alle navolgende nummers in de kolom B hetzelfde formaat krijgen.

Met beste dank op voorhand voor de weerhouden aandacht en hopelijk de goede routinetekst in VBA
nIh1IlO
 

Bijlagen

  • omzetten_telnrs.xls
    27,5 KB · Weergaven: 29
=text(b3;right("####\/## ## ##";len(b3)+2))
 
Beste snb,

Bedankt voor de reactie maar het resultaat voldoet nog niet volledig aan de verwachtingen zoals hierna blijkt:

123/45 67 89
92/34 56 78
56/91 23 45
494/12 34 56

De voorloopnul ontbreekt nog. Hoe fiksen we dat nog?
 
Zelf al wat geprobeerd ?

PHP:
="0" & TEXT(A1;RIGHT("####\/## ## ##";LEN(A1)+2))
 
Inderdaad, snb, maar de truc met de "0" had ik niet door.

Er is nog een probleem voor de gewone telefoonnummers om de scheiding van het zonenummer perfect te krijgen.
0123/45 67 89
092/34 56 78 zonenr. is 09 en niet 092
056/91 23 45
0494/12 34 56
Voor de zonenummers met 3 cijfers en de GSM nummers klopt de formule maar voor de zonenummers met 2 cijfers (en een abonneenr bestaande uit 7 cijfers) blijft er nog een probleem.
 
Ik ben niet bekend met de telefoonnummerstruktuur van onze zuiderburen.
 
Beste snb,

Ik heb wat verder gepuzzeld aan de formule; ze ziet er zo uit :
=ALS(OF(LINKS(B3;2)="09";LINKS(B3;2)="02";LINKS(B3;2)="03";EN(LENGTE(B3)=9;LINKS(B3;2)="04"));"0"&TEKST(B3;RECHTS("###\ ### ## ##";LENGTE(B3)+3));"0"&TEKST(B3;RECHTS("####\ ## ## ##";LENGTE(B3)+2)))

Ze is alleszins op het eerste gezicht toepasselijk op de telefoonnummers in België.
In België zijn er 2 soorten zonenummers: de ene soort bestaat uit 3 cijfers (de meeste) terwijl er ook een soort bestaat uit 2 cijfers.
De soort bestaande uit 2 cijfers: 02, 03, 04 en 09.
Omdat voor GSM's het 2e cijfer meestal ook een 4 is, diende een onderscheid gemaakt met de nummers met zonenummer 04.
Dit werkt geconcretiseerd door de afzonderlijke voorwaarde EN(LENGTE(B3)=9;LINKS(B3;2)="04").

Dit is het resultaat:

GSM Nr 0423456789 0423 45 67 89
Tel Nr 042345678 04 234 56 78
056912345 056 91 23 45
0494123456 0494 12 34 56

In elk geval van harte bedankt voor het meedenken en voor de aanzet.

Maar ... eigenlijk was ik zoek naar een subroutine in VBA, waardoor de vraag ook op deze plaats is gesteld.

Aan de VBA specialisten blijft de oorspronkelijke vraag dan ook een uitdaging en misschien kan de bovenstaande formule ook bij Excel worden gezet als oplossing voor hetzelfde probleem.

Ik weet dan ook niet goed of het probleem voor VBA als opgelost moet geseind worden.

NiH1Il0
 
Laatst bewerkt:
Kun je de aanhef van je post wijzigen, want dat acronym heeft in Nederland vervelende connotaties (to put it mildly)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan