Hum... tu voulais probablement dire..
;)Code:Set PlageATraiter = .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp))
Version imprimable
Hum... tu voulais probablement dire..
;)Code:Set PlageATraiter = .Range("A1:A" & .Cells(Rows.Count, "A").End(xlUp))
Re,
J’ai ouvert ton fichier, mais il ne contient que le code VBA.
Quel type de classeur est-on censé traiter ? Je pourrais essayer de trouver tout seul, mais je ne suis pas du tout amateur de devinettes.
Je suppose que l’instruction évoquée dans tes messages précédents est celle-ci :
La fonction appelée commence ainsi :Code:Do While ExtractElement(Cellule.Offset(IndexParametres, 0), ";", 1) <> "Apply to breakdown" Xor ExtractElement(Cellule.Offset(IndexParametres, 0), ";", 1) <> "Appliquer sur les détails"
Ce qui signifie qu’en cas d’erreur aucun message n’est affiché.Code:
1
2 Function ExtractElement(ByVal Chaine As String, ByVal Delimiteur As String, Optional ByVal NoElement As Integer) On Error Resume Next
Colmme le gestionnaire d’erreur n’a incidence que dans la procédure où il est placé, cela pourrait expliquer pourquoi c'est la ligne
qui est surlignée quand on clique sur le bouton Débogage. Il faudrait enlever le On Error, pour vérifier si une ligne à l’intérieur de la fonction n’est pas la cause de l’erreur.Code:Do while k<>"toto" xor k<>"tata"
Ce serait bien d’avoir un fichier avec lequel tester.
Cordialement,
Bonjour à tous,
merci à tous pour vos réponses précieuses !
il me semble que c'est Bigalo qui a raison ! A un moment dans ma boucle, il y a une chaîne vide qui passe dans la fonction, et boum, ca provoque une erreur...
je vais donc chercher dans cette voie.
merci à tous pour votre aide et vos conseils sur le code que je vous ai soumis. :king:
laloune
Ca n'as pas de sens si k est dfifférent de "toto" et different de "tata" il ne rentrera jamais dans la boucle car k est different des 2 (ou exclusif)Citation:
Code:Do while k<>"toto" xor k<>"tata"
Il as mis ce post en résolu, mais ca serais sympa pour ceux qui ont contribué de nous dire ce qui allais pas.
Pour ma part ce persiste à dire qu'il n'étais pas clair
Il comment par nous dire :puis :Code:Do While k = "toto" Or k = "tata"
puisCode:Do while k<>"toto" Or k<>"tata"
Dans ce genre de problème il serais bon d'expliquer ce qu'il désire dans la langue de Molière, par exemple (je met en exemple ce que je crois avoir compris qu'il veux faire) :Code:Do While k <> "toto" Xor k <> "tata"
Je souhaite que la boucle s'exécute tant que l'une des deux conditions (k="toto" ou k="tata") n'est pas remplie.
Si c'est ca, je persiste à penser qu'il lui faut un ET :Sur le même sujet, pour ceux qui ne connaissent pas, il est utile de connaitre les lois de Morgan qui permettent de simplifier certaine conditions :Code:Do While k <> "toto" And k <> "tata"
Citation:
non (A et B) = non (A) ou non (B)
non (A ou B) = non (A) et non (B)
SAlut Eric93
Peu importe les valeurs ou les signes, ce qu'a donné laloune, ils n'etaient qu'un exemple de principe. Son probleme etait que, dans les conditions de sa boucle while une fonction etait appelée et a un moment donné une valeur vide etait transmise à cette fonction, qui malheureusement ne savait pas gerer ce cas et bam.
La remarque de Bigalo (jolie anagramme en passant (enfin au y pres)) etait que dans cette fonction l'ordre de compilation On error resume next etait donné, ce qui signifi que si cette function dans son code (et uniquement dans son code) genere une erreur celle ci n'est pas prise en compte du moins elle est prise en compte que dans la globalité de la function, ce qui explique que l'erreur apparaisse sur la ligne d'appelle de la function en question... Comme quoi les On error Resume Next mieux vaux les mettre une fois que le debugage de l'appli et faite (quand c'est possible).
A++
Qwaz