Excel VBA convertir en nombre pr rechercheV

Fermé
Projekx - 19 févr. 2008 à 20:40
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 - 21 févr. 2008 à 22:58
Bonjour à tous,

Cela fait déjà quelques temps que je recherche une solution pour ce problème.

Tout sous VB, je copie une formule partout dans ma colonne que je copie-colle en valeur. Ensuite dans la colonne à côté, je veux faire une recherche en V.

Mais le résultat est tout le temps négatif car ma valeur dans la première colonne est en texte. Sélectionner toute la colonne et lui imposer le format nombre ou encore #### n'est pas suffisant pour régler mon problème.

Je suis en mesure de le faire manuellement, je sélectionne ma colonne et j'appuie sur enter, lorsqu'il y a un nombre convertissable, je clique sur le petit icone jaune avec le point d'exclamation et je fais convertir en nombre.

Je ne comprend pas pkoi cette façcon de faire est différente du formatage de cellule...mais le résultat y est.

Y'aurait-il moyen d'automatiser cette fonction ???

Merci de votre aide

Projekx
A voir également:

4 réponses

LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
19 févr. 2008 à 23:57
Et comme ça, ça fonctionnerait pas????

VLOOKUP(VALUE(RC[-1]),Shops!C[-31]:C[-29],3,FALSE)
1
Ouais Super Geek !!!

Merci beaucoup...c'est si simple en plus :)
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
21 févr. 2008 à 22:58
De rien, contente d'avoir pu t'aider!!!!
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
19 févr. 2008 à 20:43
Comment se fait-il que le résultat du collage spécial soit de type texte? Essaie de faire un CNum de ta formule.
-1
en fait mon resultat ressemble à ceci :

=============
8850
8949

Jazz
Jazz
=============

Donc j'ai des chiffres, des mots et des vides. Excel met la colonne en spécial°postnummer.

Je peux effectivement copier la formule cnum (value en anglais) à côté et utilisé ce résultat pour faire ma rechercheV sur cette nouvelle colonne. Mais j'aimerais ne pas rajouter de colonne et de formules...chose qui rallonge le processus

Ya t-il moyen de faire cela plus simplement qu'en ajoutant une autre colonne avec la nouvelle fonction pour mes chiffres.

Il doit y avoir l'équivalent de ''convertir en nombre'' qui apparait quand on sélectionne toute la colonne ?

Merci de votre aide

Projekx
0
LatelyGeek Messages postés 1758 Date d'inscription vendredi 4 janvier 2008 Statut Membre Dernière intervention 5 janvier 2023 550
19 févr. 2008 à 21:14
Non, je parlais de la formule initiale:
"Tout sous VB, je copie une formule partout dans ma colonne que je copie-colle en valeur. Ensuite dans la colonne à côté, je veux faire une recherche en V. "
-1
premiere colonne = data brute

voila la dite formule en format VBA dans la deuxieme colonne
vb =
"=IF(LEFT(R[-1]C[-1],1)=""8"",LEFT(R[-1]C[-1],4),IF(R[-1]C[-1]=""SVJAZACBAY1YYZ"",""Jazz"",IF(R[-1]C[-1]=""SVJAZACSTOREYUL"",""Jazz"",IF(R[-1]C[-1]=""SVYXUACJAZZCCHECK"",""Jazz"",IF(R[-1]C[-1]=""SVYYCACJAZZ"",""Jazz"",IF(RIGHT(R[-1]C[-1],6)=""STORES"",""Stores"",""""))))))"

en format excel cela ressemble à : =IF(LEFT(AC1,1)="8",LEFT(AC1,4),IF(AC1="SVJAZACBAY1YYZ","Jazz",IF(AC1="SVJAZACSTOREYUL","Jazz",IF(AC1="SVYXUACJAZZCCHECK","Jazz",IF(AC1="SVYYCACJAZZ","Jazz",IF(RIGHT(AC1,6)="STORES","Stores",""))))))

Celle que j'ai utilisé pour résoudre mon probleme dans une autre colonne à côté (3ieme)
en vb : ActiveCell.FormulaR1C1 = "=IF(LEFT(RC[-1],1)=""8"",VALUE(RC[-1]),RC[-1])"
en excel : =IF(LEFT(AD2,1)="8",VALUE(AD2),AD2)

Donc cela converti efficacement mes données qui ressemble à des chiffres(mais qui sont autre chose) en chiffre!

Et dans ma 4ieme colonne celle qui fait ma rechercheV
en vb : "=IF(LEFT(RC[-3],1)=""8"",IF(ISERROR(VLOOKUP(RC[-1],Shops!C[-31]:C[-29],3,FALSE)),RC[-1],VLOOKUP(RC[-1],Shops!C[-31]:C[-29],3,FALSE)),RC[-1])"

excel : =IF(LEFT(AC2,1)="8",IF(ISERROR(VLOOKUP(AE2,Shops!A:C,3,FALSE)),AE2,VLOOKUP(AE2,Shops!A:C,3,FALSE)),AE2)
0