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 :

Faire une boucle sur une liste déroulante


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Par défaut Faire une boucle sur une liste déroulante
    Bonjour ,
    J'ai créer l'instruction suivante qui marche
    En plus , Je voudrais juste ajouter une boucle sur une liste déroulante situé en CC.Range("AB2") qui pointe sur le champs Data.Range("B2:B78"), pour ensuite dérouler les actions copier-coller valeur, masquer.
    Dois je créer une autre variable pour la liste? Faut il une boucle type " for each..."?

    Merci pour votre aide

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Sub CreateForm()
    '
    ' Création des formulaire budget
     
    Dim Wbname As String, Chemin As String, Extension As String, nomfichier As String
    Dim WbFF As String
        With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        End With
        Extension = ".xlsm"
        nomfichier = CC.Range("AB2")
        Chemin = data.Range("TonRépertoire")
        Wbname = ThisWorkbook.Name
        WbFF = ThisWorkbook
     
        With ActiveWorkbook
            .SaveAs Filename:=Chemin & nomfichier & Extension
            CC.Range("E1:L170").Copy
            CC.Range("E1:L170").PasteSpecial Paste:=xlPasteValues
            .Sheets("base").Delete
            Sheets("data").Select
            ActiveWindow.SelectedSheets.Visible = False
            Sheets("CC").Select
            ChDir "U:fraisfixes"
            Workbooks.Open Filename:= _
            "U:\fraisfixes\modele.xlsm"
            Workbooks.Open Filename:= _
            "U:\fraisfixes\10515000 FL.xlsm"
            Application.DisplayAlerts = False
            Application.CutCopyMode = False
            ThisWorkbook.Close True
     
        End With

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par JeanGui01 Voir le message
    ajouter une boucle sur une liste déroulante situé en CC.Range("AB2") qui pointe sur le champs Data.Range("B2:B78")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim RCur As Range
    For Each RCur In Worksheeets("data").Range("B2:B78")
     
     
    Next RCur
    A lire : https://docs.microsoft.com/fr-fr/off...next-statement

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Par défaut boucle sur liste déroulante
    merci beaucoup Menhir, j'essaye d'intégrer cette boucle et regarder le lien. Je vous tiens au courant !

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2019
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure et Loir (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2019
    Messages : 3
    Par défaut Boucle each va dans les choux
    J'ai appliqué la boucle avec each . J'arrive à créer mon premier fichier , mais la boucle ne se fait pas ensuite! on m a dit de sauvegarder dans une variable

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub CreateForm()
    '
    ' Création des formulaire budget
     
    Dim ClasseurSource As String, Chemin As String, Extension As String, nomfichier As String
    Dim WbFF As String
    Dim RCur As Range
        With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
        End With
        Extension = ".xlsm"
        nomfichier = CC.Range("AB2")
        Chemin = data.Range("Rep")
        Wbname = ThisWorkbook.Name
        ClasseurSource = ActiveWorkbook.Name
        repertoire = [Rep] & "\"
     
        With ActiveWorkbook
                For Each RCur In Worksheets("data").Range("B2:B78")
     
                    .SaveAs Filename:=Chemin & nomfichier & Extension
                    extraction = ActiveWorkbook.Name
                    CC.Range("E1:L170").Copy
                    CC.Range("E1:L170").PasteSpecial Paste:=xlPasteValues
                    .Sheets("base").Delete
                    Sheets("data").Select
                    ActiveWindow.SelectedSheets.Visible = False
                    Sheets("CC").Select
     
                    Workbooks.Open ClasseurSource
                    Application.DisplayAlerts = False
                    Application.CutCopyMode = False
                    Windows(extraction).Close True
     
                Next RCur
       End With
     
     
    End Sub
    Fichiers attachés Fichiers attachés

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Fais dérouler ta macro en pas-à-pas et tu verras que l'exécution boucle.
    Mais tu ne le vois pas parce qu'elle fait exactement la même chose à chaque tour, ce qui est normal puisque dans le code à l'intérieur de la boucle, tu ne te sers jamais de RCur.
    Il est donc normal que ta boucle fasse plusieurs fois exactement la même chose sans rien changer.

    Autre détail : With ActiveWorkbook ne sert à rien puisque ActiveWorkbook est le parent par défaut des Sheets.

Discussions similaires

  1. [XL-2007] Comment faire une liste déroulante ?
    Par looping06 dans le forum Excel
    Réponses: 1
    Dernier message: 28/09/2010, 12h57
  2. Comment faire une liste déroulante?
    Par Petugnia dans le forum Tkinter
    Réponses: 6
    Dernier message: 25/05/2009, 07h48
  3. [BO XI R2] Faire une liste déroulante dans un invite
    Par perrine1985 dans le forum Débuter
    Réponses: 3
    Dernier message: 02/06/2008, 23h03
  4. faire une liste déroulante selon une autre liste
    Par PtiteNanou dans le forum Modélisation
    Réponses: 7
    Dernier message: 15/02/2008, 16h00
  5. Réponses: 12
    Dernier message: 08/06/2007, 10h11

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