Non reconnaisance de texte

Résolu
jonew - 8 déc. 2013 à 17:32
 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.

6 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
8 déc. 2013 à 17:43
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"")"




0
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?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 8/12/2013 à 18:18
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
9 déc. 2013 à 00:04

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
'...

0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
9 déc. 2013 à 00:06
Si tu veux un bon tuto sur la manipulation des chaines de caractères :
http://silkyroad.developpez.com/VBA/ManipulerChainesCaracteres/#LI-L*
0
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
9 déc. 2013 à 00:35
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").
0
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
9 déc. 2013 à 00:43

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

0
OK. Merci quand meme.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
9 déc. 2013 à 01:05
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 () )
0
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.
0
Rejoignez-nous