Extraction de chiffre dans une chaîne de caractère

werocool Messages postés 1 Date d'inscription vendredi 30 août 2002 Statut Membre Dernière intervention 30 août 2002 - 30 août 2002 à 15:20
petitstagiaire Messages postés 73 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 10 juillet 2003 - 30 août 2002 à 16:03
Comment faire cela:

J'ai une colonne en excel qui donne cette chaine de caractere:
d2347
c0897342
"C" étant credit et "D" étant debit
J'aimerais extraire le chiffre de chaque cellule et le mettre dans la colonne credit lorsqu'il y a un "C" au début de la chaine et mettre dans la colonne debit lorsque la chaîne commence par "D"
La colonne n'a pas toujours le meme nombre de cellule. Il peut y avoir 100 cellule d'ecrite et defois 15 seulement. Il peut y avoir des cellule vide.
Si ce n'est pas possible, est-ce que je peux seulement extraire le "C" et le mettre dans une autre colonne ainsi que le "D" ? Si oui, COMMENT !!!!

Merci !!!

WeroCooL

2 réponses

petitstagiaire Messages postés 73 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 10 juillet 2003
30 août 2002 à 15:55
salut WeroCooL,

voila un peu de code que tu peu adapter à ton document :

Dim Num As String
Dim Operation As String
Dim Adr_Cell As String

'positionnement sur la première cellule de ta colonne
Range("A1").Select

'on boucle jusqu'à ce qu'on rencontre une cellule vide
While ActiveCell.Value <> ""
'on sauvegarde l'adresse de la case en cours
Adr_Cell = ActiveCell.Address

'on récupére la lettre
Operation = Left(ActiveCell.Value, 1)

'on récupère le numéro
Num = Right(ActiveCell.Value, Len(ActiveCell.Value) - 1)

'en fonction de la lettre on se positionne sur la bonne colonne
'sous la dernière case renseignée
If Operation = "c" Then Range("D65536").End(xlUp).Offset(1).Select
If Operation = "d" Then Range("E65536").End(xlUp).Offset(1).Select

'on rempli avec le numéro
ActiveCell.Value = Num

'on reselectionne la cellule où on s'était arrêter
Range(Adr_Cell).Select

'on descend d'une case
ActiveCell.Offset(1, 0).Activate
Wend

bon courage

petitstagiaire
0
petitstagiaire Messages postés 73 Date d'inscription mardi 23 juillet 2002 Statut Membre Dernière intervention 10 juillet 2003
30 août 2002 à 16:03
excuse moi avec le code que je t'ai donné, excel va convertir automatiquement tes cellules en format numérique

au lieu d'avoir 0897342 dans ta colonne crédit tu auras 897342. et je suppose que le "0" est important

avant d'insérer la valeur dans ta cellule, c'est à dire au dessu de :
ActiveCell.Value = Num

tu dois rajouter la ligne suivante :
ActiveCell.NumberFormat = "@"

petitstagiaire
0
Rejoignez-nous