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 :

Feuilles à cocher dans Userform [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut Feuilles à cocher dans Userform
    Bonjour à tous,

    J'ai un programme qui me permet de créer des feuilles par catégorie ( que je préfère au filtre ) et qui en plus affiche la catégorie comme nom de feuille.


    Voici mon problème :
    Je souhaite donc créer une boite de dialogue ( Userform par exemple ) dans lequel je récupère les noms des feuilles ainsi crées et les afficher dans une listBox ( si sélectionnée donc imprimée )

    Comment récupérer les noms des feuilles crées afin de les mettre dans autant de cellules d'une autre feuille ( qui me permet de créer la liste ).


    Merci d'avance

    Novice72

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 755
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 755
    Points : 28 606
    Points
    28 606
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Il me semble que tu te répètes dans tes questions.
    Pour parcourir la collection des feuilles d'un classeur, il suffit d'utiliser la boucle For Each ... In ...
    Si toutes feuiles ne doivent pas être reprises dans cette liste, il suffit d'utiliser un If ou un Select Case
    Petit exemple rapide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub t()
     Dim sht As Worksheet, msg As String
     For Each sht In ThisWorkbook.Worksheets
      msg = msg & vbCrLf & sht.Name
     Next
     MsgBox msg
    End Sub
    Le même exemple qui affiche toutes les feuilles exceptées celle qui se nomme liens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub t()
     Dim sht As Worksheet, msg As String
     For Each sht In ThisWorkbook.Worksheets
      If Trim(LCase(sht.Name)) <> "liens" Then
       msg = msg & vbCrLf & sht.Name
      End If
     Next
     MsgBox msg
    End Sub
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 942
    Points
    55 942
    Billets dans le blog
    131
    Par défaut
    Salut.

    Perso, je ne m'amuserais pas à essayer de créer la liste dans une feuille pour connecter la combobox sur cette liste. J'alimenterais directement la combobox à l'initialisation du userform...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub UserForm_Initialize()
      Dim ws As Worksheet
     
      ComboBox1.Clear
      For Each ws In ThisWorkbook.Worksheets
        ComboBox1.AddItem ws.Name
      Next ws
    End Sub
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Bonjour à tous et merci à Philippe et à Pierre,

    En espérant ne pas me répéter, j'ai résolu une partie de mon problème. En effet, comme mes feuilles étaient créees à l'aide d'une plage de cellules d'une autre feuille, je l'ai réutilisée afin de remplir une listBox ( et non d'une ComboBox comme me le disait Pierre ).
    Pour Pierre : L'avantage d'une ListBox est qu'on peut avoir une sélection multiple contrairement à la ComboBox. N'est-ce pas ?

    En attendant, je vais maintenant essayer d'adapter vos codes au mien et je reviens vers vous pour dire si mon problème est entièrement résolu ou non.


    Encore Merci à tous les 2

    Novice72

  5. #5
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Il me semble que tu te répètes dans tes questions.
    Pour parcourir la collection des feuilles d'un classeur, il suffit d'utiliser la boucle For Each ... In ...
    Si toutes feuiles ne doivent pas être reprises dans cette liste, il suffit d'utiliser un If ou un Select Case
    Petit exemple rapide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub t()
     Dim sht As Worksheet, msg As String
     For Each sht In ThisWorkbook.Worksheets
      msg = msg & vbCrLf & sht.Name
     Next
     MsgBox msg
    End Sub
    Le même exemple qui affiche toutes les feuilles exceptées celle qui se nomme liens
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub t()
     Dim sht As Worksheet, msg As String
     For Each sht In ThisWorkbook.Worksheets
      If Trim(LCase(sht.Name)) <> "liens" Then
       msg = msg & vbCrLf & sht.Name
      End If
     Next
     MsgBox msg
    End Sub
    Bonjour Philippe,
    Je viens juste d'essayer ton 2ème code que je préfère au premier car il permet de n'ouvrir que certaine(s) feuille(s).
    J'ai donc remplacé le mot liens par le nom d'une feuille à moi BDD et la boite d'affichage affiche toutes les feuilles existante ( donc "BDD" ainsi que les feuilles cachées mais ça dès que j'ai trouvé à bien sélectionner, je penserai aux feuilles cachées... )

    N'y a-t-il pas une erreur ?

    Cordialement.

    Novice72

  6. #6
    Membre régulier
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2015
    Messages
    211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2015
    Messages : 211
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par Novice72 Voir le message
    Bonjour Philippe,
    Je viens juste d'essayer ton 2ème code que je préfère au premier car il permet de n'ouvrir que certaine(s) feuille(s).
    J'ai donc remplacé le mot liens par le nom d'une feuille à moi BDD et la boite d'affichage affiche toutes les feuilles existante ( donc "BDD" ainsi que les feuilles cachées mais ça dès que j'ai trouvé à bien sélectionner, je penserai aux feuilles cachées... )

    N'y a-t-il pas une erreur ?

    Cordialement.

    Novice72
    Je viens de regarder pourquoi ça ne marchait pas en plaçant ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Dim test As Variant
     test = Trim(LCase(sht.Name))
     MsgBox "test = " & test
    entre la ligne 3 et 4.

    J'ai remarqué que toutes les feuilles affichées étaient en minuscules.
    En remplaçant BDD par bdd, maintenant ça fonctionne.


    Merci à toi philippe.


    Il ne me reste maintenant plus qu'à continuer mon code..... et remplacer la boite d'affichage par du code qui me permettra d'imprimer toutes les feuilles sélectionnées ( je vais essayer de me débrouiller..... ).

    Novice72

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

Discussions similaires

  1. [XL-2010] Feuille entière dans UserForm
    Par SSelim dans le forum Excel
    Réponses: 4
    Dernier message: 09/11/2012, 13h53
  2. [XL-2003] Case à cocher dans userform
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 11/12/2010, 16h07
  3. Renseigner une liste sans doublon dans une feuille ou dans un userform
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 26/01/2009, 14h54
  4. Feuille excel dans userform
    Par vinssieux dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/05/2008, 08h56
  5. [VBA-E]Impression de feuilles selectionnées dans un "userform"
    Par gregoim dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/03/2007, 16h31

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