Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Extraire le numéro de chèque en Formule et en VBA

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • 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 !

MJ13

XLDnaute Barbatruc
Bonjour à tous

J'aimerai savoir comment facilement en formule et en VBA, extraire le numéro de chèque d'une colonne (voir exemple joint).

J'accepte aussi les fonctions.

Merci d'avance 🙂.
 

Pièces jointes

Re : Extraire le numéro de chèque en Formule et en VBA

Bonjour Michel,

Par formule, et sous réserve que le numéro de chèque comporte toujours 4 chiffres (et que tout nombre à 4 chiffre corresponde bien au numéro de chèque), une formule matricielle :

Code:
=STXT(G2;EQUIV(VRAI;ESTNUM(STXT(SUBSTITUE(G2;" ";"&");LIGNE(INDIRECT("1:"&
NBCAR(G2)));4)*1);0);4)

Principe : repérer la chaine de 4 caractères qui soit numérique

Matricielle donc CTRL + MAJ + ENTREE

@+
 
Re : Extraire le numéro de chèque en Formule et en VBA

Re MJ13, Bonjour Tibo
Avec les mêmes restrictions que Tibo (à mettre en I2 et à tirer vers le bas):
Code:
=STXT(G2;TROUVE(1;G2;1);4)
Cordialement
 
Re : Extraire le numéro de chèque en Formule et en VBA

re,

Bravo efgé,

Je n'avais pas pris garde au fait que le n° devait commencer par 1.

Reste à voir si le chiffre 1 ne pourrait pas être présent de façon isolée.

@+
 
Re : Extraire le numéro de chèque en Formule et en VBA

Re
Une version par macro (le prmier chiffre 1 rencontré doit être le début du N° de chèque) :
Code:
Sub Cheques()
For i = 2 To Range("G" & Application.Rows.Count).End(xlUp).Row
 Cells(i, 9) = Mid(Cells(i, 7), InStr(1, Cells(i, 7), "1"), 4)
Next i
End Sub
Cordialement
 
Re : Extraire le numéro de chèque en Formule et en VBA

Bonjour à tous,

Un exemple par macro :
Code:
Sub Nro_Ch()
 
Dim cel As Range
 For Each cel In Range("G2:G" & Range("G65536").End(xlUp).Row)
   If InStr(1, cel, "1") > 0 And cel Like "*1###*"  Then Range("I" & cel.Row) = Mid(cel, InStr(1, cel, "1"), 4)
 Next
 
End Sub
La macro recherche le "1" puis si il y a 3 chiffres derrière, si OK elle extrait le n° dans la colonne I.

A+
 
Dernière édition:
Re : Extraire le numéro de chèque en Formule et en VBA

Bonjour Tibo, Efgé, Bqtr

Merci beaucoup.

Je teste ce soir et je vous tiens au courant.

Je n'avais pas pris garde au fait que le n° devait commencer par 1.

Sinon Tibo, je pense que le plus important c'est les 4 chiffres (j'espère que c'est facile d'adaptation si j'en ai que 3). Mais cela semble jouable.

Bon après -midi🙂.
 
Re : Extraire le numéro de chèque en Formule et en VBA

Bonjour MJ13 ,Tibo , Efgé ,bqtr

Une version Vba qui tolere un ou d'autres 1 dans le texte
Et pour m'amuser une formule qui joue la prudence et n'affiche rien dans ce cas

Plus la version Vba en fonction personnalisée

Mais comme toujours avec moi à tester et re_tester
 

Pièces jointes

Dernière édition:
Re : Extraire le numéro de chèque en Formule et en VBA

Re à tous, Bonjour Pierre-Jean​

Merci aussi à Pierre-Jean pour ta contribution 🙂.​

Voila le fichier avec vos soluces dans le post #11.​

On a plus que l'embarras du choix 😛.​

Bonne soirée à tous 🙂.​
 
Dernière édition:
Re : Extraire le numéro de chèque en Formule et en VBA

Bonsoir tout le monde
ci-joint une proposition formule permettant d'extraire les n° sans restriction du nombre de chiffres (à partir du moment où ils se suivent, ce qui semble être le cas dans l'exemple donné).
Cordialement
 

Pièces jointes

Re : Extraire le numéro de chèque en Formule et en VBA

Re

Histoire de titiller un peu les formulistes (que j'admire infiniment car je suis assez inapte dans cet exercice)
Le fichier de MJ13 avec 2 petits pièges
 

Pièces jointes

Re : Extraire le numéro de chèque en Formule et en VBA

Salut mon cher Pierre,

Titiller dis-tu 😀 !

Je propose ceci :

Code:
=STXT(G2;EQUIV(VRAI;ESTNUM(STXT(SUBSTITUE(SUBSTITUE(G2;" ";"&");"(";"£");
LIGNE(INDIRECT("1:"&NBCAR(G2)));4)*1);0);4)
Matricielle, donc toujours CTRL + MAJ + ENTREE

J'ai simplement traité la 1ère parenthèse ouvrante en la substituant par un autre caractère.

@+
 
Re : Extraire le numéro de chèque en Formule et en VBA

Re

Mon Cher Tibo

Réaction fulgurante ( Il y en a qu'il ne faut pas gratter ou ça ne les demangent pas)
Fichier mis a jour donc !!
 

Pièces jointes

Re : Extraire le numéro de chèque en Formule et en VBA

Re,
alors je vois que pierrejean joue les poils à gratter !
Bien vu Tibo🙂 (non mais...)
Franchement pierrejean, si j'étais aussi "inapte" en VBA que tu l'es en formules, j'en serais très content !
Commençant à connaître les énergumènes qui circulent sur ce forum, j'avais pris le soin de préciser "permettant d'extraire les n° sans restriction du nombre de chiffres (à partir du moment où ils se suivent, ce qui semble être le cas dans l'exemple donné)" car je m'attendait à ce genre de contre-attaque aussi sympathique qu'intéressante.

Heureusement que Tibo veillait au grain😉
Au plaisir
 
- 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

Discussions similaires

Réponses
10
Affichages
237
  • Question Question
XL 2016 liste
Réponses
10
Affichages
301
Réponses
2
Affichages
130
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…