[VBA][excel]conditions ???

Fermé
pussaultf - 14 janv. 2004 à 09:28
 Utilisateur anonyme - 14 janv. 2004 à 12:34
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 :

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

6 réponses

Utilisateur anonyme
14 janv. 2004 à 10:14
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
  :-)
0
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..
0
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
14 janv. 2004 à 10:28
;-)

Envoie moi ton xls !! Ca ira mille fois plus vite, si tu es pressé...

;-)


Wild and Free
0
ok je t'envoie un mail

merci
0
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
14 janv. 2004 à 12:03
;-)

Le temps que je te renvoie tout ça nickel, compte demain matin ;-)

Pas trop long ?

;-)

Wild and Free
0

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

Posez votre question
merci c'est deja sympa de regarder....

alors fais comme tu peux...

merci encore
0
WhiteFang Messages postés 2056 Date d'inscription dimanche 1 septembre 2002 Statut Membre Dernière intervention 15 février 2008 204
14 janv. 2004 à 12:26
;-)

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
0
Utilisateur anonyme
14 janv. 2004 à 12:34
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
  :-)
0