enlever les parenthèses dans un liste de n° de tél

enlever les parenthèses dans un liste de n° de tél - VB/VBA/VBS - Programmation

Marsh Posté le 09-03-2006 à 21:21:45    

Bonjour,  
 
j'ai un fichier excel avec une lliste de n° de tél du style     (02) 43 07 32 52
Je cherche un solution pour enlever automatiqument les ()
Si vous avez une solutiion, faites-moi signe.....
 
Lanstack


---------------
« Mais j'vous jure, y'a dix minutes, ça marchait très bien... »  
Reply

Marsh Posté le 09-03-2006 à 21:21:45   

Reply

Marsh Posté le 10-03-2006 à 22:15:15    

Bonsoir,
 
Le code suivant enlève toutes les parenthèses se trouvant sur les cellules 1 à 10 de la troisième colonne de la feuille active :
 
Sub EnleverParentheses()
Dim Chaine, pos As Integer
For i = 1 To 10
    Chaine = Cells(i, 3).Value
    pos = InStr(1, Chaine, "(" )         'repère la première parenthèse entrante
    While pos <> 0
        Chaine = Left(Chaine, pos - 1) & Mid(Chaine, pos + 1)
        pos = InStr(pos, Chaine, "(" )    'repère la parenthèse entrante suivante
    Wend
     
    pos = InStr(1, Chaine, " )" )     'repère la première parenthèse sortante
    While pos <> 0
        Chaine = Left(Chaine, pos - 1) & Mid(Chaine, pos + 1)
        pos = InStr(pos, Chaine, " )" )    'repère la parenthèse sortante suivante
    Wend
    Cells(i, 3).Value = Chaine
Next i
End Sub

 
bon courage
Epéna

Reply

Marsh Posté le 10-03-2006 à 23:24:54    

Merci.


---------------
« Mais j'vous jure, y'a dix minutes, ça marchait très bien... »  
Reply

Marsh Posté le 10-03-2006 à 23:36:23    

Tu peux aussi utiliser la fonction Replace(expression, find, replace[, start[, count[, compare]]]) qui remplace une chaine de caractère par une autre.
 
Dans ton cas, on cherche à remplacer le caractère '(' par '' (autrement dit, rien).
 
Exemple :
 


For i = 1 To 10
    Cells(i, 1).Value = Replace(Cells(i, 1).Value, "(", "" )
    Cells(i, 1).Value = Replace(Cells(i, 1).Value, " )", "" )
Next i

Reply

Marsh Posté le 10-03-2006 à 23:42:26    

Salut,
 
Ou bien encore plus court avec cette formule rigolote d'Excel :
 
=SUBSTITUE(SUBSTITUE(A1;" )";"" );"(";"" )
 
Mais il est difficile de s'y retrouver entre les parenthèses à enlever et les parenthèses de la formule !
 ;)  
A+
 

Reply

Marsh Posté le 11-03-2006 à 07:33:09    

Bonjour,
Je ne connais pas la fonction Replace qui ne semble pas exister en Excel 97. Par contre j'ai découvert la méthode qui m'intéresse beaucoup et qui fonctionne parfaitement. Elle peut permettre d'enlever les parenthèses sans boucle en testant une colonne entière :
 
On remplace ce code :
 
For i = 1 To 10
    Cells(i, 1).Replace "(", ""
    Cells(i, 1).Replace " )", ""
Next i
 
par celui-ci :
 
Worksheets("Feuil1" ).Columns("A" ).Replace "(", ""
Worksheets("Feuil1" ).Columns("A" ).Replace " )", ""
 
Epéna
 
NB : La fonction Replace, c'est du VB

Reply

Sujets relatifs:

Leave a Replay

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