Non reconnaisance de texte [Résolu]

- - Dernière réponse :  jonew - 9 déc. 2013 à 09:12
Bonjour
J'ai un probleme avec un fichier excel importer d'un outil. Pour analyser une enquete j'ai teste une macro =IF(D3="5: excellent",C3*5,"uu").

Le probleme est que le contenu de la cellule "D3" n'est pas reconnu par le test de la macro. J'ai copie la colonne D sur une autre colonne avec un paste value, mais cela ne change rien.
Par contre si je tape a la main la valeur "5: excellent", cela marche.
J'aurai voulu joindre un extrait du fichier (fichier a l'origine csv) mais je ne vois pas comment faire ?.
Quelqu'un aurait-il une idee du probleme? Merci.
Afficher la suite 

Votre réponse

6 réponses

Messages postés
23551
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci
Bonjour,
Ici nous préférons travailler par de l'explication... pas en téléchargeant les fichiers que les membres souhaiteraient nous partager....

Ce qui me gène dans l'ennoncer de ton problème, c'est que je n'y vois pas de macro... mais juste une FORMULE.

Peux tu nous montrer exactement le code qui te pose problème en nous expliquant clairement le comportement attendu, celui renconté, les éventuels messages d'erreurs.....

Si ton souci est de mettre dans une macro le contenu de D3... il te faut utiliser RANGE ou CELLS ...

Dim MaFormule As String
MaFormule = "=IF(" & Range("D3").Value & "=""5: excellent"",C3*5,""uu"")"




Merci pour ta reponse rapide
En fait il s'agit d'une formule ou macro excel que je veux appliquer a toute une colonne. J'ai egalement teste avec un code VBA tel que

For k = 2 To i2
xx = .Range("B" & k)
If xx = "5: excellent" Then
ws2.Range("E" & k).Value = ws2.Range("C" & k).Value * 5
Else
ws2.Range("E" & k).Value = "nothing"

et il ne trouve rien dans la colonne "B" alors que dans certaine lignes j'ai bien la valeur "5: excellent". D'autre part si je tape a la main cette valeur "5: excellent" dans la colonne B, a ce moment la, cela marche.
Je pense qu'il y a peu etre un probleme de format de cellule dans le fichier excel?
Commenter la réponse de jordane45
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
BGonjour,
exemple (ici : cellule H1) :
 Range("H1").Formula = "=IF(D3=""5: excellent """ & ",C3*5,""uu"")"


et si tu veux l'appliquer à plusieurs cellules d'une colonne en utilisant les adresses relatives ===>> exemple ===>
Range("H1:H10").Formula = "=IF(D3=""5: excellent """ & ",C3*5,""uu"")"
Et la référence à certaines cellules doit être fixe, tu dis.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Commenter la réponse de ucfoutu
Messages postés
23551
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci

En fait il s'agit d'une formule ou macro excel

Formule OU macro ? ... ce n'est pas la même chose.

Ce que tu nous montres est une Macro... (pas une formule)...
Dans ce code

xx = .Range("B" & k)
If xx = "5: excellent" Then
Il faut que la valeur de la cellule soit STRICTEMENT égale à la condition..donc.. pas de majuscules..pas d'espaces avant, au milieu ou après en plus... pas d'autre texte dans cette même cellule.... (c'est pour ça que si tu l'écris à la main..ça fonctionne...)

Le plus simple, je pense, est de supprimer tous les espaces superflus au momment de la vérification et de tester en MAJUSCULE

xx = UCase(Trim(Range("B" & k)))
If xx = UCase(Trim("5: excellent" )) Then
'...

jordane45
Messages postés
23551
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
-
Si tu veux un bon tuto sur la manipulation des chaines de caractères :
http://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-L*
Commenter la réponse de jordane45
0
Merci
En fait j'appelle macro une instruction tel que :
=IF(B3="5: excellent","tt","zz") ecrite dans une cellule et descendue sur toute une colonne. Mais j'ai egalement fait un script VBA tel que indique precedemment.
En ce qui concerne tes instructions

xx = UCase(Trim(Range("B" & k)))
If xx = UCase(Trim("5: excellent" )) Then
'...

cela ne resoud pas le probleme.

Par contre j'ai constate en revenant a ma macro et en utilisant l'option "Evaluate Formulas" que le test apparait ainsi:
IF("5: excellent" ="5: excellent","tt,"zz"). Il semble donc que dans ma cellule B3 j'ai un caratere qui traine et qui ne permet pas l'egalite.
Cela ne viens t-il pas de l'origine csv du fichier ? Comment peux t-on supprimer des caracteres parasites ?
J'espere etre clair dans ma description?

Sinon merci pour la reference sur la manipulation des chaines de caractères
jordane45
Messages postés
23551
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
-
Je persiste....

En fait j'appelle macro une instruction tel que :
=IF(B3="5: excellent","tt","zz") ecrite dans une cellule et descendue sur toute une colonne.

Ca.. c'est une formule... ( A moins que tu l'utilise via une MACRO avec un Range.Formula par exemple..).


D'après ce que tu nous montres,.. il semble qu'il te manque un Guillemet dans ta formule

IF("5: excellent" ="5: excellent","tt","zz").
Non c'est juste une erreur de frappe dans ma description.
Y a t-il un moyen de vous envoyer un extrait du fichier excel qui pose probleme?
Commenter la réponse de jonew
Messages postés
23551
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci

Y a t-il un moyen de vous envoyer un extrait du fichier excel qui pose probleme


Il est toujours possible de le déposer sur un site de partage comme ( cijoint.com)... mais personnellement je ne le téléchargerai pas (et je pense que peux de membres ne le feraient...)
Désolé.

Par contre, autant je veux bien aider sur la Macro... autant pour ce qui est des formules... ce n'est pas le bon forum...

Commenter la réponse de jordane45
jordane45
Messages postés
23551
Date d'inscription
mercredi 22 octobre 2003
Statut
Contributeur
Dernière intervention
9 décembre 2018
-
Pour ta formule, tu peux toujours y ajouter un SUPRRESPACE pour supprimer tous les espaces superflus..
http://office.microsoft.com/fr-fr/excel-help/supprespace-HP005209321.aspx
( pour la version Anglaise : TRIM () )
Bonjour.

Apres m'avoir suggere d'utiliser TRIM qui ne resoud pas le probleme, j'ai utilise CLEAN et cela marche. Super !!
Merci pour ton aide.
Commenter la réponse de jonew

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.