IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Boucle: For If Next x Else blabla Next x


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 34
    Par défaut Boucle: For If Next x Else blabla Next x
    Bonjour et bon lundi,

    Comme le sujet l'indique en très codifié, je cherche a faire une boucle for avec la structure suivante et je demande aux vbatistes expérimentés si c'est possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For x = 0 To x = 10
        If Cells(x, "A") = "" Then
              Next x
        Else
              Action
    Next x
    Lorsque j'exécute le code, le message d'erreur Next sans for apparaît.
    Il y a t'il une syntaxe pour passer au prochain x avant la fin de la boucle ?
    Ou dois-je développer mon If afin qu'il incrémente x jusqu'a à ce que Cells(1, "A") = "" soit faux ?

    Merci

  2. #2
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Bonjour,

    Il ne faut qu'un seul next par for, mais déjà pose toi la question :

    As quoi sert ma boucle For x.... si je ne me sert pas de la valeur x ...?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 34
    Par défaut
    J'avais mal copié mon code.

    Cells(1, "A") est en fait Cells(x, "A")
    Voici le code complet, mais je crois que j'ai trouvé la solution...
    Il marche lorsque la colonne A est entièrement remplie. Mais à ce moment la, nombreDeDettes a également une valeur plus grande ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    For x = 2 To nombreDeDettes
            Sheets("MACAAT39").Select
            ligne = 1
     
            If (Cells(x, "S") = "" Or Cells(x, "A") = "") Then
     
            ElseIf (Len(Cells(x, "A")) <> 0 And Asc(Cells(x, "S")) = 67) Then
                Rows(x & ":" & x).Select
                Selection.Cut
                Sheets("Compensés").Select
                Do
                    If Cells(ligne, "A") <> "" Then
                        ligne = ligne + 1
                    Else
                        Rows(ligne & ":" & ligne).Select
                        ActiveSheet.Paste
                        Exit Do
                    End If
                Loop While ligne <= x
            Else
            End If
        Next x

  4. #4
    Membre Expert
    Avatar de JackOuYA
    Inscrit en
    Juin 2008
    Messages
    1 040
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1 040
    Par défaut
    Complétement illisible ton code sans balises de code ,


    Si je comprends bien tu ne veux rien faire si Cells(x,A) = "" ..?


    un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For x = ...
      If Cells(X,A) <> "" Then
            '.... ton code ici...
      End if
    Next x

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 34
    Par défaut
    Exactement, je ne veux rien faire dans ce cas.
    Seul les lignes ou la colonne A est remplie m'intéressent.
    Le problème s'est résolu tout seul.
    Quand j'ai un problème avec un code, c'est comme X-Files : la réponse est ailleurs
    XD
    Merci :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] test if then else dans boucle for next
    Par markuus dans le forum VBA Access
    Réponses: 2
    Dernier message: 20/08/2011, 11h41
  2. [VBA-E]PB sur une boucle for each next
    Par rond24 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/07/2006, 15h47
  3. [VB.net] Boucle for next avec un tableau
    Par grand_prophete dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 11h08
  4. [VB6] Problème contrôle Timer et boucle For-Next ...
    Par Stéphane BEHMENBURG dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/12/2005, 17h36
  5. Réponses: 3
    Dernier message: 03/11/2005, 19h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo