Condition dans un do while qui plante

  • Initiateur de la discussion Initiateur de la discussion pierre@
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

pierre@

Guest
Bonjour à tous!

je suis un peu ennuyé, je ne comprend pas mon erreur , j'ai une condition dans un while qui retourne

"lindice n'appartient pas à la selection"

Je précise que mon classeur possède deux feuilles.

voici le bout de code


Code:
    i=1
    Sheets(i).Range("A1" ) = Sheets(i + 1).Name
    Sheets(i + 1).Range("A1" ) = "coucou"
    Do While ((i <= Sheets.Count()) And (a <> Sheets(i).Name))
        i = i + 1
    Loop



ce qui est bizarre c'est que les instructions 2 et 3 au dessus fonctionnent et c'est celle là qui plante :

Code:
a <> Sheets(i).Name



Auriez vous une idée? Merci!
 
Re : Condition dans un do while qui plante

hello,
possible d avoir le code en entier ? parce que je vois pas pourquoi ces deux lignes sont hors de ta boucle :
Code:
Sheets(i).Range("A1" ) = Sheets(i + 1).Name
    Sheets(i + 1).Range("A1" ) = "coucou"

a toute
 
Re : Condition dans un do while qui plante

en fait c'était pour vérifier si ça marchait bien, c'est juste un test, mais j'ai compris pourquoi, en fait arrivé à i=3 (je n'ai que 2 feuille) le while vérifie les deux conditions alors que la première est fausse et que c'est un AND ce qui est con! (différent en C) donc comment faire pour que le while ne vérifie pas la deuxième? je suis obligé de faire un truc du genre ?

Code:
while(indice <nbfeuille)
if(feuille n° indice = "blabla")
sortir du while
endif
indice++
endwhile
 
Re : Condition dans un do while qui plante

tu peux essayer ceci : mais je suis pas sur d avoir bien compris ce que tu veux faire avec cette procedure
Code:
    i=1
    Sheets(i).Range("A1" ) = Sheets(i + 1).Name
    Sheets(i + 1).Range("A1" ) = "coucou"
    Do While ((i <= Sheets.Count())
           If a<>Sheets(i).Name then
           i = i + 1
           End if
    Loop
voila
a toute
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
877
Retour