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

Tibo

XLDnaute Barbatruc
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

@+
 

Efgé

XLDnaute Barbatruc
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
 

Tibo

XLDnaute Barbatruc
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.

@+
 

Efgé

XLDnaute Barbatruc
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
 

bqtr

XLDnaute Accro
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:

MJ13

XLDnaute Barbatruc
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:).
 

pierrejean

XLDnaute Barbatruc
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
 

Fichiers joints

Dernière édition:

MJ13

XLDnaute Barbatruc
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 :p.​

Bonne soirée à tous :).​
 
Dernière édition:

david84

XLDnaute Barbatruc
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
 

Fichiers joints

pierrejean

XLDnaute Barbatruc
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
 

Fichiers joints

Tibo

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

Salut mon cher Pierre,

Titiller dis-tu :D !

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.

@+
 

pierrejean

XLDnaute Barbatruc
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 !!
 

Fichiers joints

david84

XLDnaute Barbatruc
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
 

tototiti2008

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

Bonjour à tous,

Comme tout le monde joue, une formule pour la 1ère problématique (ne peut toujours pas ouvrir les zip)

Code:
=STXT(G2;EQUIV("1";STXT(G2;LIGNE(INDIRECT("A1:A"&NBCAR(G2)));1);0);4)
(matricielle)

en espérant ne pas être trop loin du sujet actuel ;)
 

tototiti2008

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

Bonjour à tous,

Merci beaucoup PierreJean, mais je crois que ça dépasse mes compétences en formule matricielle ;) d'au moins la longueur de la rue de la Gare :D
 

MJ13

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

Re Bonjour à tous, bienvenue au Club Tototiti

Bon, comme je vois qu'ons s'amuse. Du coup, je viens de faire cette petite fonction pour extraire les chiffres.

Code:
Function num_extr_MJ(cel As Range)
'MJ
Lcel = Len(cel.Value)
For i = Lcel To 1 Step -1
If IsNumeric(Mid(cel.Value, i, 1)) Then valnum1 = Mid(cel.Text, i, 1) & valnum1
Next
num_extr_MJ = valnum1
End Function
 

david84

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

Bonsoir,
une proposition répondant à la dernière demande de pierrejean;) (il y a sûrement plus simple mais pas le temps tout de suite).
A+
 

Fichiers joints

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas