[VBA][excel]conditions ???
pussaultf
-
Utilisateur anonyme -
Utilisateur anonyme -
bonjour,
j'ai un souci (forcement sinon je poserait pas de question) et comme je suis un peu neuneu dans ce domaine j'implore votre aide..
j'ai un tableau dont la ligne 1 est du style :
dans une fonction j'utilise ce code
certains vont surement dire que ma case ligne 1 contient un caractere bidon et bien non je le presice de suite j'ai reverifié et re-fait verifier 2 ou 3 fois à des personnes differentes deja...
hors pour la colone 28 c'est à dire que :
le retour est que colone="", bien sur c'est la seule colone à échouer...
Plus grave encore :
-hier suite à énervement à ce sujet j'ai ajouter au code un correctif tel que :
bien sur ceci fonctionnait.
j'ouvre ce matin le fichier, relance le fichier et hop
non seulement le premier ifn'as pas executé pour ce cas
à savoir que donc pour excel
"UGADM3"!="UGADM3
ce qui mon problème original et en plus le second ifqui sert de correctif à cela n'a pas été lui non plus executé (en tout cas pas ce qui est entre le if et le end if.
voila ce que j'ai dejà fait comme tests à ce sujet :
utiliser plusieurs machines (w2k office w2k, w2k office xp, xp office XP, xp office w2k) = meme problemes
ajouter dans le code des affichages de MSGBOX pour controler les valeurs au moment du bug = affichage de "UGADM3"!="UGADM3" ce qui est abherant...excel ne sait pas comparer deux valeurs ?
réecrire entierement à la main (pas de copier coller) le meme code dans un fichier nouveau sur une machine independante du reseau configurée pour l'occasion ! (au cas ou ce serrait du à une mauvaise installation ou un virus). resultat meme bug
faire relire le code par 3 personnes differentes
bref je ne comprend pas tout semble bon mais pourtant ce bug persiste et signe... :(
PLEASE HELP......
conseillez moi, dites moi si j'ai fait une boulette quelque part, ou utilisé une mauvaise methode, ou koi :??:
PS: l'idée de base pour etre clair est de balayer la ligne 1 pour selectionner le n° de colone à integrer dans la variable colone tout simplement si j'ose dite...
voilà le bug sur lequel je bute depuis lundi quand même...
j'ai un souci (forcement sinon je poserait pas de question) et comme je suis un peu neuneu dans ce domaine j'implore votre aide..
j'ai un tableau dont la ligne 1 est du style :
...|TOTO|TITI|TUTU|FOO|UGADM3|BAR|TATA|TETE|...
dans une fonction j'utilise ce code
serveur = UCase(serveur) ' rechercher la bonne colone pour le serveur For x = 3 To 33 If Cells(1, x).Value = serveur Then colone = x Exit For ' pas la peine de finir les 33 boucles si on a deja ' le numero de colone au bout de 5 boucles ! End If Next x
certains vont surement dire que ma case ligne 1 contient un caractere bidon et bien non je le presice de suite j'ai reverifié et re-fait verifier 2 ou 3 fois à des personnes differentes deja...
hors pour la colone 28 c'est à dire que :
x=28 cells(1,x).value = serveur = "UGADM3"
le retour est que colone="", bien sur c'est la seule colone à échouer...
Plus grave encore :
-hier suite à énervement à ce sujet j'ai ajouter au code un correctif tel que :
' passage au fichier destination serveur = UCase(serveur) ' rechercher la bonne colone pour le serveur For x = 3 To 33 If Cells(1, x).Value = serveur Then colone = x Exit For ' pas la peine de finir les 33 boucles si on a deja ' le numero de colone au bout de 5 boucles ! End If Next x If serveur = "UGADM3" Then colone = 28 End If
bien sur ceci fonctionnait.
j'ouvre ce matin le fichier, relance le fichier et hop
non seulement le premier ifn'as pas executé pour ce cas
à savoir que donc pour excel
"UGADM3"!="UGADM3
ce qui mon problème original et en plus le second ifqui sert de correctif à cela n'a pas été lui non plus executé (en tout cas pas ce qui est entre le if et le end if.
voila ce que j'ai dejà fait comme tests à ce sujet :
utiliser plusieurs machines (w2k office w2k, w2k office xp, xp office XP, xp office w2k) = meme problemes
ajouter dans le code des affichages de MSGBOX pour controler les valeurs au moment du bug = affichage de "UGADM3"!="UGADM3" ce qui est abherant...excel ne sait pas comparer deux valeurs ?
réecrire entierement à la main (pas de copier coller) le meme code dans un fichier nouveau sur une machine independante du reseau configurée pour l'occasion ! (au cas ou ce serrait du à une mauvaise installation ou un virus). resultat meme bug
faire relire le code par 3 personnes differentes
bref je ne comprend pas tout semble bon mais pourtant ce bug persiste et signe... :(
PLEASE HELP......
conseillez moi, dites moi si j'ai fait une boulette quelque part, ou utilisé une mauvaise methode, ou koi :??:
PS: l'idée de base pour etre clair est de balayer la ligne 1 pour selectionner le n° de colone à integrer dans la variable colone tout simplement si j'ose dite...
voilà le bug sur lequel je bute depuis lundi quand même...
A voir également:
- [VBA][excel]conditions ???
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
6 réponses
As tu essayé avec LOOKUP?
Si tu as ligne1: 1|2|3|4|5
Ligne2: TATA|TITI|TOTO|UGADM3|TUTU
Cellule Z10 = UGADM3
Lookup(Z10;B1:B5;A1:A5) = 4 (colonne en question)
Donc "UGADM3" = "UGADM3"
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Si tu as ligne1: 1|2|3|4|5
Ligne2: TATA|TITI|TOTO|UGADM3|TUTU
Cellule Z10 = UGADM3
Lookup(Z10;B1:B5;A1:A5) = 4 (colonne en question)
Donc "UGADM3" = "UGADM3"
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
lookup ne peux pas marcher...
j'ai rien compris...
deplus je peux pas avoir de ligne 1 telle que tu l'a definie...
je ne peux rien ecrire/afficher d'autre que le tableau que le client m'impose..
j'ai rien compris...
deplus je peux pas avoir de ligne 1 telle que tu l'a definie...
je ne peux rien ecrire/afficher d'autre que le tableau que le client m'impose..
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
;-)
Sauf que, j'ai aussi outlook d'ouvert, et que j'ai encore rien reçu, et que là, bon, c'est mon heure où, heu, mes coussins, je les entends d'ici !! DOM !! ;-)))
Il te suffit de cliquer sur mon nom pour avoir mon mail... Par contre, là, je vais aller faire dodo, ce qui repousee au moins a ce soir, ton xls tout prêt....
;-)
Rhaa, kaisse qu'on f'rait pas pour aider les gens, hein !! ;-)
Là, je coupe (12h25 de l'heure galactique)... Je reprends ce soir, tard... ;-)
Wild and Free
Sauf que, j'ai aussi outlook d'ouvert, et que j'ai encore rien reçu, et que là, bon, c'est mon heure où, heu, mes coussins, je les entends d'ici !! DOM !! ;-)))
Il te suffit de cliquer sur mon nom pour avoir mon mail... Par contre, là, je vais aller faire dodo, ce qui repousee au moins a ce soir, ton xls tout prêt....
;-)
Rhaa, kaisse qu'on f'rait pas pour aider les gens, hein !! ;-)
Là, je coupe (12h25 de l'heure galactique)... Je reprends ce soir, tard... ;-)
Wild and Free
C'était un exemple (Loockup)...
Si tu vas voir dans la doc, tu veras comment l'utiliser dans ton cas.
Je reprends l'exemple (modifié et documenté):
Ligne1: TATA|TITI|TOTO|UGADM3|TUTU
--> Donc A1 = "TATA", A2 = "TITI" etc...
Lookup("UGADM3";B1:B5;(1,2,3,4,5)) = 4 (colonne dans laquelle se trouve "UGADM3")
Explication:
Lookup(Texte, Vecteur, Résultat)
Texte : le string que tu cherche (Serveur dans ton cas)
Vecteur : Ligne dans laquelle la valeur Texte doit être cherchée
Résultat : le résultat renvoyé par Lookup.
Lookup("TATA";B1:B5;(1,2,3,4,5)) = 1
Lookup("TITI";B1:B5;(1,2,3,4,5)) = 2
Lookup("TOT";B1:B5;(1,2,3,4,5)) = 3
...
Je ne vois pas bien pourquoi tu ne pourrais pas utiliser cette fonction?
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)
Si tu vas voir dans la doc, tu veras comment l'utiliser dans ton cas.
Je reprends l'exemple (modifié et documenté):
Ligne1: TATA|TITI|TOTO|UGADM3|TUTU
--> Donc A1 = "TATA", A2 = "TITI" etc...
Lookup("UGADM3";B1:B5;(1,2,3,4,5)) = 4 (colonne dans laquelle se trouve "UGADM3")
Explication:
Lookup(Texte, Vecteur, Résultat)
Texte : le string que tu cherche (Serveur dans ton cas)
Vecteur : Ligne dans laquelle la valeur Texte doit être cherchée
Résultat : le résultat renvoyé par Lookup.
Lookup("TATA";B1:B5;(1,2,3,4,5)) = 1
Lookup("TITI";B1:B5;(1,2,3,4,5)) = 2
Lookup("TOT";B1:B5;(1,2,3,4,5)) = 3
...
Je ne vois pas bien pourquoi tu ne pourrais pas utiliser cette fonction?
Rien n'est plus dangereux qu'une idée quand on a
qu'une idée :-)