Extraction chiffre d'un texte avec zéro - vba

  • Initiateur de la discussion Initiateur de la discussion chtite24
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

chtite24

Guest
Bonjour,

Voici mon problème : dans une colonne, j'ai une suite de référence (Ap_Ref) du style patatePC0026, patatePC0027 ...
Dans un premier temps je veux extraire les chiffres de la référence -y compris les zéro- (stockés dans ma variable Ref) de la cellule que j'ai choisi puis, lui donner la valeur de référence +1 et enfin rechercher toutes les autres références supérieure a celle ci pour y ajouter +1.
Je m'explique,
ma cellule choisi contient par exemple patatePC0025,
ma macro me créée une ligne en dessous de cette référence, dans laquelle je veux afficher patatePC0026,
du coup, la référence en dessous qui été "patatePC0026", doit passer "patatePC0027", et ainsi de suite pour toutes les références en dessous de celle que j'ai sélectionnée...

Je ne sais pas si je suis bien claire...

Voici mon début de code, mais déja je bloque sur comment garder les zéro...

Code:
Ap_Ref = Liste_Reference      'je stock dans Ap_Ref, ma reference choisie dans ma combobox
Sheets(feuille).Select
Sheets(feuille).Cells.Find(What:=Ap_Ref).Select     'recherche la reference dans la feuille
    
num_ligne = Sheets(feuille).Cells.Find(What:=Ap_Ref).Row + 1    'numero de ligne en dessous de la reference
Sheets(feuille).Rows(num_ligne).Insert Shift:=xlDown                'ajoute une ligne 

For i = 1 To Len(Ap_Ref)            'boucle pour extraire les chiffres de la reference
     If Mid(Ap_Ref, i, 1) >= "0" And Mid(Ap_Ref, i, 1) <= "9" Then
            chaine_nombre = chaine_nombre & Mid(Ap_Ref, i, 1)
     End If
Next i

Mais le souci c'est que si ma référence est patatePC0026, il me renvoi juste 26, alors que je voudrais 0026

Et après je dois recomposer ma réference : patatePC & chaine_nombre+1

Ensuite, ajouter +1 a toutes les references dont les chiffres sont supérieurs a chaine_nombre



Je remercie d'avance celui qui pourra m'aider.
N'hésitez pas à me poser des questions si je ne suis pas très claire... ^^
 
Re : Extraction chiffre d'un texte avec zéro - vba

Bonjour,

Si le chiffre ajouté au texte est toujours d'une longeur de 4 ca simplifie grandement le probleme.
Dans ce cas :
Code:
'Convertion des 4 derniers caractères en nombre
leNouveauNombre = CInt(Right(ap_ref, 4))+1
'concatene les premiers caractères du texte avec le nouveau nombre formaté sur 4 chiffres
LaNouvelleReference = Left(ap_ref, InStr(ap_ref, "0") - 1) & Format(leNouveauNombre, "0000")

Voilà, en espérant que ceci puisse te venir en aide

Bonne continuation
 
Re : Extraction chiffre d'un texte avec zéro - vba

Bonjour le fil 🙂,
Pourquoi ne pas utiliser un format personnalisé
Code:
"patatePC"0000
dans tes cellules, comme cela, tu n'as plus que des chiffres dedans, et ce sera plus facile d'additionner 1 🙄...
En plus, en utilisant une petite formule et un vrai tableau 2007, l'insertion de la ligne modifiera directement les lignes en dessous, voir PJ 😛...
Bonne suite 😎
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
788
Réponses
3
Affichages
326
Retour