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

A

Archimed

Guest
Bonsoir ;
qlq'un peut m'aider à extraire le Chiffre 7 de 1327 589(ou autres..)
tout en utilisant un code VBA.
Merci beaucoup. Archi
 
Re : Extraire le

Bonsoir,
Extraire?????
Pour connaitre le rang de ton chiffre, écrit par exemple en C1, inséré dans ta série de chiffre en A1, tu tapes en B1 ceci :
=CHERCHE(C1;A1)
Tu auras alors la position de ton chiffre cherché...
Si ce n'est pas ce que tu désires, expliques un peu mieux...
Bonne soirée
 
Re : Extraire le

Bonjour Archimed

Par formule : En A1 tu mets ton texte ou ton nombre
en B1 tu mets le caractere à extraire

En C1 tu mets :
=SI(ESTERREUR(CHERCHE($B$1;A1))=FAUX;GAUCHE(A1;CHERCHE(B1;A1)-1) & DROITE(A1;NBCAR(A1)-(CHERCHE(B1;A12)+1));"Pas trouve")
En c1 tu aura la nouvelle chaine sans le caractere extrait

meme chose en VBA
sub extraire(chaine string, car as string)
dim i as integer, newchaine as string
newchaine = ""
for i =1 to len(chaine)
if mid(chaine,i,1)<>car then newchaine = newchaine - 1
next i
range("A1").value = newchaine
 
Dernière édition:
Re : Extraire le

Bonsoir Archimed, bhbh, re le forum,

CHERCHE (en simple formule) t'indique que le chiffre ou la lettre existe... sinon tu as un magnifique #VALEUR!, mais il ne l'extrait pas. En VBA, je pense que, c'est à peu près la même chose.

Il convient, maintenant, de connaitre le pourquoi.... les tenants et les aboutissants.

Donc, et comme bhbh, des explications seraient les bienvenues.

Bonne soirée.

Jean-Pierre

Edit : Salut Wil... le temps de réfléchir et de composer, tu es passé.... bon week-end à toi aussi.
 
Re : Extraire le

Bonsoir Archi, jeanpierre et wilfrid
Au cas où, en Vba :

Sub on_garde_ce_k_on_veut()
On Error GoTo plouf
x = Application.Search([c1], [a1])
[a1].Offset(1, 0).Value = Left([a1], x - 1) & Right([a1], Len([a1]) - x)
Exit Sub
plouf:
MsgBox "y'en a pas"
End Sub

Avec toujours les mêmes dispositions (chaîne en A1, valeur à extraire en C1)
Peut-être?
 
Re : Extraire le

re:

bhbh tu utilises les on error goto, c'est une manipulation delicate, je te renvoie ton code avec une erreur volontaire, essaye le

Sub on_garde_ce_k_on_veut()
On Error GoTo plouf
x = Application.Search([c1], [a1])
a = 10 / 0 ' devrait donner une erreur division par 0
[a1].Offset(1, 0).Value = Left([a1], x - 1) & Right([a1], Len([a1]) - x)
Exit Sub
plouf:
MsgBox "y'en a pas"
End Sub

ton code corrigé :
Sub on_garde_ce_k_on_veut()
On Error GoTo plouf ' Search pouvant renvoyer un erreur en cas d'inexistance de la chaine
x = Application.Search([c1], [a1])
on error goto 0 ' rend le controle d'erreur a excel
[a1].Offset(1, 0).Value = Left([a1], x - 1) & Right([a1], Len([a1]) - x)
Exit Sub
plouf:
on error goto 0 ' rend le controle d'erreur a excelMsgBox "y'en a pas"
End Sub
 
Re : Extraire le

Bonsoir Wil,
effectivement, le On Error..; est d'une manipulation délicate, tout comme le Application.EnableEvents=False, cependant, dans mon code, il n'a jamais été question de chercher une erreur de calcul, mais une recherche simple, et s'il n'y a a pas de correspondance, un MsgBox l'informe..
Donc, gérer toutes les erreurs dans une procédure......
Faisable, mais le code risque de devenir aussi long que Guerre et Paix de Tolstoï.
Bon dimanche ensoleillé (du moins pour toi, ici, en Bretagne, risque d'orage..😉
 
- 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
10
Affichages
302
Réponses
6
Affichages
191
Retour