Excel: macro pour convertir une colonne

Résolu/Fermé
Ludivine - 24 sept. 2012 à 15:10
 Ludivine - 25 sept. 2012 à 08:30
Bonjour à tous, je souhaite intégrer une macro qui fasse le "ménage" dans une cellule:
en cellule D2 par exemple j'ai :
NQ: New password: 1234567891;
Je souhaite que la macro ne garde que la série de 10 chiffres sans aucun autre signe, ni espace, ni point virgule ni rien, juste la série de 10 chiffres et ce, toujours en D2.

Après macro je voudrait que D2 ne contienne plus que :
1234567891

Et que la macro fonctionne sur toutes les lignes (sauf la 1) ou la colonne D est remplie !

Merci beaucoup de votre aide !!
A voir également:

5 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 24/09/2012 à 15:38
bonjour

est ce que les mdp sont toujours sous la forme
xxxxxxxx suite de chiffres suivi d'un point virgule

bonne suite
0
Bonjour,

Il n'y a pas de rêgle précise: la suite de 10 chiffres peut etre suivie d'un espace, d'un point virgule, d'une virgule, parfois de rien...

Ca ne dépend pas de moi, ça vient d'un autre service !

MErci!!
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 24/09/2012 à 15:52
est ce que toutes les cellules sont de la forme
NQ: New password: 1234567891;
où le mdp
- commence après NQ: New password:
- se termine à la fin du texte (ici le ";")
en gros est ce qu'il s'agit juste de nettoyer la partie gauche de la cellule
0
Hello !

Oui, à cela je répond oui !!

Merci encore !
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 24/09/2012 à 16:05
une proposition

Public Sub NettoieMdp() 
For Each c In Selection 
  c.Value = Replace(c.Value, "NQ: New password: ", "") 
Next c 
End Sub

mode d'emploi
- selectionner la plage à traiter
- lancer la macro

RQ. j'ai mis un espace après le dernier ":"

bonne suite
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 24/09/2012 à 16:13
dans ma proposition le ";" fait partie du mdp
Si le texte se termine éventuellement par un caractère non numérique qui ne fait pas partie du mdp, on le supprime
c'est à peine plus compliqué

Public Sub NettoieMdp()   
Dim s As String   
For Each c In Selection   
  s = c.Value   
  s = Replace(s, "NQ: New password: ", "")   
  If Not IsNumeric(Right(s, 1)) Then s = Left(s, Len(s) - 1)   
  c.Value = s   
Next c   
End Sub

bonne suite
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 24/09/2012 à 16:53
Bonjour les 2,

Avec une routine réutilisable sur excel ou access: enlève tout ce qui n'est pas chiffre dans la cellule; renvoie 0 si aucun chiffre

Function extrait_chiffres(ByRef texto As String) As Long  
    Dim reg As Object  
    Dim extraction As Object  
      
    Set reg = CreateObject("vbscript.regexp")  
          reg.Global = True  
          reg.Pattern = "(\d?\d?\d)"  
        Set extraction = reg.Execute(texto)  
          For Each digit In extraction  
               extrait_chiffres = extrait_chiffres & (digit.Value)  
           Next digit  
    Set extraction = Nothing  
    Set reg = Nothing  
End Function  

Sub test()  
'zone D2:D30  
Dim cptr As Byte  
For cptr = 2 To 30  
     Application.ScreenUpdating = False  
     Cells(cptr, "D") = extrait_chiffres(Cells(cptr, "D"))  
Next  
End Sub  


Michel
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour à vous tous et merci !

Ca fonctionne parfaitement, merci encore vous êtes géniaux ;))

Belle journée !
0