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 loop et variables [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Chargé de pilotage et performance
    Inscrit en
    Juillet 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé de pilotage et performance

    Informations forums :
    Inscription : Juillet 2016
    Messages : 25
    Par défaut boucle loop et variables
    Salut a tous,

    J'ai un petit souci depuis ce matin, sur lequel je bloque. Je sais que c'est tout bete mais je ne trouve pas de solution pour le moment...

    Voila j'aimerai simplifier ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheet3.Cells(6, 3).Value = var1
    Sheet3.Cells(7, 3).Value = var2
    Sheet3.Cells(8, 3).Value = var3
    Sheet3.Cells(9, 3).Value = var4
    Sheet3.Cells(11, 3).Value = var5
    Sheet3.Cells(12, 3).Value = var6
    par celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For y = 6 To 12
        For z = 1 To 6
            If y <> 10 Then
                Sheet3.Cells(y, 3).Value = var & z
           End If
        Next z
    Next y
    Mais ca ne fonctionne pas et je ne comprends pas pourquoi... Je pense que l'erreur vient de var & z.
    Quelqu'un pour me donner un coup de main ?

    Merci beaucoup !

  2. #2
    Membre émérite
    Homme Profil pro
    Responsable des études(en disponibilité)
    Inscrit en
    Juin 2007
    Messages
    367
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable des études(en disponibilité)
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 367
    Par défaut
    Bonjour

    je pense que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheet3.Cells(y, 3).Value = "var" & z

  3. #3
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 676
    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 676
    Par défaut
    @a_diard je ne pense pas que ça va marcher si tu met var entre " il va considéré que c'est du texte et non une variable.

    @Lyricslife
    Plutôt que six variable varX tu devrais utiliser un tableau:http://silkyroad.developpez.com/vba/tableaux/

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faut effectivement utiliser un array de stockage

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim MesVar()
        MesVar = Array(Var1, Var2, Var3, Var4, Var5, Var6)
     
    For y = 6 To 12
        For Z = 0 To 5   ' car BASE 0
            If y <> 10 Then
                Sheet3.Cells(y, 3).Value = MesVar(Z)
           End If
        Next Z
    Next y

  5. #5
    Membre averti
    Homme Profil pro
    Chargé de pilotage et performance
    Inscrit en
    Juillet 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé de pilotage et performance

    Informations forums :
    Inscription : Juillet 2016
    Messages : 25
    Par défaut
    Merci pour vos reponses.

    @a_diard en effet, en ajoutant " " Excel comprend que c'est du texte et m'inscrit donc "var6" dans chaque cases.

    @joe.levrai je n'avais pas pense a utiliser Array! Cela dit maintenant il m'inscrit la meme valeur dans chaque cases, la valeur de var6 uniquement.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    Oui, ça m'apprendra à reprendre ton squelette pour illustrer l'exemple... sans adapter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim MesVar(), i As Long
        MesVar = Array(Var1, Var2, Var3, Var4, Var5, Var6)
     
    For y = 6 To 12
            If y <> 10 Then
                Sheet3.Cells(y, 3).Value = MesVar(i)
                i = i + 1
           End If
    Next y

  7. #7
    Membre averti
    Homme Profil pro
    Chargé de pilotage et performance
    Inscrit en
    Juillet 2016
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chargé de pilotage et performance

    Informations forums :
    Inscription : Juillet 2016
    Messages : 25
    Par défaut
    Parfait ca fonctionne correctement ! Maintenant je vais juste essayer de comprendre pourquoi !

    Merci beaucoup pour votre aide !

  8. #8
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    La difficulté réside dans le fait que tu as 6 variables que tu dois placer dans 6 cellules discontinues, via une boucle qui parcours 7 cellules.

    De ce fait, plutôt qu'une boucle tarabiscotée pour sauter la cellule 10 (ou en passant par une union de Cellules lourde à écrire), j'utilise une variable numérique qui commence à 0 (premier élément du Array) et que j'incrémente après chaque utilisation de variable

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

Discussions similaires

  1. [XSLT] Faire une boucle sur une variable [i]
    Par PoT_de_NuTeLLa dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 07/06/2010, 13h45
  2. Boucle sur une variable de type "heure"
    Par Charles25 dans le forum ASP
    Réponses: 3
    Dernier message: 15/11/2006, 18h51
  3. [HTML] boucle sur une variable et non pas un tableau
    Par delma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 03/11/2006, 16h03
  4. Boucle for et variable
    Par Krispy dans le forum Linux
    Réponses: 2
    Dernier message: 07/09/2006, 19h03
  5. Faire une boucle avec des variables vides ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 23/02/2006, 10h33

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