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 NEXT avec Step Variable ? [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut Boucle For NEXT avec Step Variable ?
    Bonjour,

    Une question rapide je ne trouve pas donc à mon avis impossible mais si quelqu'un à une réponse...

    Dans une boucle comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Sub TEST()
    NbColonneAjout = 1
     
    For PremiereColonne = 3 To 100 Step NbColonneAjout
    =>> suivant X,Y,Z,... On ajoute entre 1 et 8 colonnes
    Next PremiereColonne
    Il n'est pas possible de faire varier le Step en réalité.... Je suis obligé de passer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    While x < 100
    =>> suivant X,Y,Z,... On ajoute entre 1 et 8 colonnes
     
    x = x + NbColonneAjout
    Wend
    Sauf que dans la seconde option je peux mettre X < 16384 quoi... (16384 colonne sous excel 2016 de mémoire).


    Si quelqu'un peut me confirmer que mon Step ne peut pas être variable dans une boucle FOR....

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    la valeur du step peut parfaitement être une variable.
    Celle-ci est à bien entendu à typer en numérique (integer ou long selon le besoin)

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 683
    Par défaut
    J'ai l'impression que la question n'est pas être une variable, mais être variable, dans le sens où un coup tu fais step 1 puis step 3 puis step1 puis step 6 ...
    Et malheureusement je n'ai pas la réponse.
    Edit: Après test, moi je ne sais pas le faire, mais ça ne prouve pas que c'est impossible.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    C'est exactement ça

  5. #5
    Invité
    Invité(e)
    Par défaut
    et si tes testes ne te permette pas de de le confirmer alors je le confirme réponse est non dès l'instant ou tu es renté dans la boucle ce n'est plus possible!

    en revanche tu peux faire un boucle do While

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim Deb As Integer, Fin As Integer, pas As Integer, I As Integer
    Deb = 1: Fin = 10: pas = 1
    I = Deb
    Do While I <> Fin
    Debug.Print Cells(Deb, 1)
    I = I + pas
    Debug.Print Fin Mod pas
    If Fin < Fin + Fin - (Fin - Deb Mod pas) Then Fin = Fin + Fin - (Fin - Deb Mod pas)
    pas = 3
    Loop
    End Sub

  6. #6
    Membre expérimenté
    Homme Profil pro
    Responsable des études
    Inscrit en
    Mars 2007
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2007
    Messages : 267
    Par défaut
    Oui plusieurs test et d'après mes lectures + les réponses ici... Impossible.

    Donc je vais rester sur mon while...

    Merci des retours les gens

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

Discussions similaires

  1. Boucle For Next avec 2 variables
    Par neninio31 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/07/2019, 20h46
  2. [XL-2010] For next avec Step
    Par SteveRafferty dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 16/10/2016, 21h21
  3. Boucle For Each avec Offset variable suivant Application.thiscell.column
    Par Ganeshiva dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/07/2015, 18h43
  4. Prob boucle for next avec recherche chaine
    Par papajn dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 11/08/2011, 19h44
  5. [VB.net] Boucle for next avec un tableau
    Par grand_prophete dans le forum Windows Forms
    Réponses: 4
    Dernier message: 31/05/2006, 12h08

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