ajouter +33 a un numero de telephone a la place du 0

ajouter +33 a un numero de telephone a la place du 0 - VB/VBA/VBS - Programmation

Marsh Posté le 27-11-2009 à 08:42:04    

Bonjour,  
Tout est dans le titre:
 
 
J'ai des numeros de telephone de type 0122334455 dans une colonne de mon tableau , il y en a 300
 
Je souahite avoir +33122334455 a la place.
 
Comment je peux faire ca?
 
Merci d'avance

Reply

Marsh Posté le 27-11-2009 à 08:42:04   

Reply

Marsh Posté le 27-11-2009 à 09:06:55    

Tu fais une macro :
1) Parcourir les cellules
2) Si le premier caractère de la cellule est 0 alors tu le remplaces par +33
3) tu continue ta boucle jusqu'à la fin.
4) Enjoy()

Reply

Marsh Posté le 27-11-2009 à 10:33:29    

ah j'ai essaye d'en faire une avec une boucle for
mais je ne sais pas comment faire l'acquisition des donnne, la troncature et la concatenation.

Reply

Marsh Posté le 27-11-2009 à 11:45:35    

Salut, en utilisant les fonctions Substitue et Gauche tu devrais y parvenir


Message édité par kiki29 le 27-11-2009 à 11:50:42
Reply

Marsh Posté le 27-11-2009 à 19:58:40    

mais comment les utiliser justement?
Quel est la syntaxe ?

Reply

Marsh Posté le 27-11-2009 à 21:42:33    

Salut, tu as l'assistant qui te donnera tous les renseignements voulus
Sélectionner une cellule ou la conversion sera effectuée, puis Menu insertion / fonction /Texte Substitue etc  http://cjoint.com/?lCmXXZc086


Message édité par kiki29 le 28-11-2009 à 12:50:19
Reply

Marsh Posté le 27-11-2009 à 22:26:35    

je peux avoir un peu plus d'aide ? car la je n'y arrive vraiment pas

Reply

Marsh Posté le 29-11-2009 à 13:15:14    

Re, via VBA


Option Explicit
 
Sub Tst()
Dim LastRow As Long, i As Long, sTmp As String
    LastRow = Feuil1.Range("A" & Feuil1.Rows.Count).End(xlUp).Row
    For i = 1 To LastRow
        sTmp = Feuil1.Range("A" & i)
        If Left$(sTmp, 1) = 0 Then
            sTmp = "33" & Right$(sTmp, Len(sTmp) - 1)
            With Feuil1
                .Range("A" & i) = sTmp
                .Range("A" & i).NumberFormat = "+00000"
            End With
        End If
    Next i
End Sub


Message édité par kiki29 le 29-11-2009 à 13:17:06
Reply

Marsh Posté le 29-11-2009 à 18:16:39    

Super merci kiki beacoup,  
Je vais tester ca tout de suite.

Reply

Marsh Posté le 29-11-2009 à 18:26:38    

Bon alors comme je suis sous Excel en anglais j'ai changé Feuil1 en Sheet1
et comme mes numeros sont en colonne C j'ai mis C a la place de A, et j'ai tenté d'executer la macro mais il m'indique un bug sur cette ligne:
If Left$(sTmp, 1) = 0 Then
Il me dit Type mismatch et cela parcequ'il rencontre une cellule vide.
Comment j'adapte?

Reply

Marsh Posté le 29-11-2009 à 18:26:38   

Reply

Marsh Posté le 29-11-2009 à 18:33:48    

Re,


Option Explicit
 
Sub Tst()
Dim LastRow As Long, i As Long, sTmp As String
    LastRow = Feuil1.Range("A" & Feuil1.Rows.Count).End(xlUp).Row
    For i = 1 To LastRow
        sTmp = Feuil1.Range("A" & i)
        If Len(sTmp) > 0 Then
            .....
        End If
    Next i
End Sub

Reply

Marsh Posté le 29-11-2009 à 18:55:29    

Hum cette macro ne marche pas non plus.
J'ai donc remplcé les pointillés par ce qu'il y avait dans le post precedent
et ca me donne ca du coup:
 
Sub Tst()
Dim LastRow As Long, i As Long, sTmp As String
    LastRow = Sheet1.Range("C" & Sheet1.Rows.Count).End(xlUp).Row
    For i = 1 To LastRow
        sTmp = Sheet1.Range("C" & i)
        If Len(sTmp) > 0 Then
                With Sheet1
                .Range("C" & i) = sTmp
                .Range("C" & i).NumberFormat = "+00000"
            End With
        End If
    Next i
End Sub
 
Mais ca ne marche pas non plus

Reply

Marsh Posté le 29-11-2009 à 19:05:56    

Re, tu ne comprends strictement rien à ce que tu fais, désespérant


Option Explicit
 
Sub Tst()
Dim LastRow As Long, i As Long, sTmp As String
    LastRow = Feuil1.Range("A" & Feuil1.Rows.Count).End(xlUp).Row
    For i = 1 To LastRow
        sTmp = Feuil1.Range("A" & i)
        If Len(sTmp) > 0 Then
            If Left$(sTmp, 1) = 0 Then
                sTmp = "33" & Right$(sTmp, Len(sTmp) - 1)
                With Feuil1
                    .Range("A" & i) = sTmp
                    .Range("A" & i).NumberFormat = "+00000"
                End With
            End If
        End If
    Next i
End Sub


Message édité par kiki29 le 29-11-2009 à 19:09:06
Reply

Marsh Posté le 29-11-2009 à 19:27:15    

Presque nickel, ca m'a bien remplacé les 0 en 33 par contre il ne m'affiche pas les +
J'ai essayé egalement en mettant +33 a la place du 33, mais rien n'y fait
 
Edit: ca marche nickel dorenavant.
 
Merci bp  


Message édité par marcolerigolo le 29-11-2009 à 19:41:45
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed