|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Bonjour,
Je souhaiterais extraire uniquement les chiffres contenu dans plusieurs cellules pour ensuite pouvoir les comparer. Je souhaite intégrer cela dans une macro VBA. par exemple, j'ai ARF234 et df234 dans deux cellules différentes. Le but étant que si le nombre créé par les chiffres extraits dans les 2 cellules sont les mêmes (ici ce sera donc 234) alors la condition est vrai et donc action. Quelqu'un peut-il m'aider pour effectuer cette extraction et surtout bien obtenir deux chiffres à comparer (sachant qu'il faut aussi que je considère peut-etre le cas où certaines cellules ne contiennent pas de chiffres)? Bonne journée |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Bonjour,
Une solution consiste a se créer sa propre fonction Cette proposition retourne EGAL si identique sinon PAS EGAL A mettre dans un module Code :
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|||
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() |
bonjour nimiquel
pour jfontaine ca marche mieux comme ca Code :
au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Salut Patrick
Que veux tu dire par Citation:
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||
|
|
00
|
|
|
#5 | ||
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Bon je suis mauvais en codage mais comment intégrer votre fonction dans mon if?
Voici le code alors le if de départ qui ne marchait pas Code :
|
||
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Essais comme cela
Code :
If CompareNombre(Sheets("Global").Range("G" & nw),Sheets("EPR").Range("F" & nz)) = "EGAL" then
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#7 |
|
Expert Confirmé
![]() |
bonjour jfontaine
j'ai essayer ton code comme tu l'a donné et visiblement les variables n'etait pas pris en compte comme elle devait l'etre d'ou le Code :
lareponse = CompareNombre(Range("A1"), Range("A2")) en ayant le type de variable dans la fonction et non dans l'appel a la fonction au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Il me sort une "incompatibilté de type" sur la ligne suivante:
Je crois comprendre que cela arrive lorsque je n'ai pas de chiffre dans ma chaîne de caractère ou que la cellule est vide. Sinon je crois que ça marche sans problème. Ca mérite une condition supplémentaire c'est ça? Vous avez une piste? |
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Citation:
D'ou un problème car le pas d'avancement d'une boucle For est + 1 Ajoutes un test de contrôle que tes cellules sont bien pleines Ce test peut être ajouté à la fonction
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() |
Tu peux utiliser aussi la fonction val et t'inspirer de la partie "Extraire toutes les valeurs numériques (entiers et décimales) contenues dans une chaîne" de ce tutoriel sur la manipulation des chaines de caractères: http://silkyroad.developpez.com/VBA/...racteres/#LI-P
Cordialement. |
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
La fonction de Jérôme marche très bien, une variante avec "Instr" : Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bonjour un tous
Une autre proposition utilisant les expressions régulières (Nécessite l'activation de la référence VBScript Regular Expressions 5.5) Code :
__________________
Cordialement. |
||
|
|
20
|
|
|
#13 |
|
Expert Confirmé
![]() |
bonjour
pour mercatog waouahh!! ca c'est du costaud je garde!!!
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Je viens d'essayer la méthode de Theze (et de Jérome) et ça marche mieux mais pas lorsqu'une des cellules est vide.
Pour la méthode de mercatog, je crois tout simplement que je n'ai pas la possibilité d'activer VBScript_RegExp_55.RegExp ... dommage! Mais merci pour tout. |
|
|
00
|
|
|
#15 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Citation:
Soit dans la fonction, soit avant l'appel de la fonction
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bonjour
Pour ne pas activer la référence, la même fonction Code :
__________________
Cordialement. |
||
|
|
00
|
|
|
#17 |
|
Invité de passage
![]() Inscription : septembre 2011 Messages : 7 ![]() |
Salut Mercatog,
Comment intégrer ta fonction dans ma macro ? Je suppose que c'est du genre: mais je ne vois pas ce que la fonction renvoie. Merci |
|
|
00
|
|
|
#18 | |||
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Relis plus haut
Citation:
Code :
__________________
Cordialement. |
|||
|
|
00
|
|
|
#19 |
|
Expert Confirmé
![]() |
bonjour mercatog
purrée ci avec ca il ne s'en sort pas ! une question, a quoi sert le "\D" .moi vouloir apprendre au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#20 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2008 Messages : 5 848 ![]() |
Bonjour Patrick
Plutôt je donnerai un lien intéressant: Les Expressions Rationnelles appliquées en VBA Access Par Charles A
__________________
Cordialement. |
|
|
10
|
Copyright © 2000-2012 - www.developpez.com