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 :

COMBOBOX dans une feuille de calcul [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut COMBOBOX dans une feuille de calcul
    Bonjour


    Dans une feuille de calcul je souhaite mettre un "combobox" ou autres suivant ce que vous me conseillerez, dont la liste de données sera alimenté en VBA et modifiable en fonction d'un critère se trouvant sur une autre feuille. Ce critère est 8,16,32,64,128. J'ai pensé à un select case.

    Je n'arrive pas alimenté en données ma "combobox" ; les données sont:

    si 8 : données = Poule A
    si 16 : données = Poule A; Poule B
    si 32: données = Poule A; Poule B; Poule C; Poule D
    et ainsi de suite

    merci pour votre aide

  2. #2
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut

    Avec un combobox ActiveX placé sur Feuil1 et nommé ComboBox1, tu pourrais avoir ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub FillCombo()
      Dim Value As Long
      Dim Counter As Long
     
      Value = Range("a1").Value
      If Value Mod 8 = 0 Then
        Feuil1.ComboBox1.Clear
        For Counter = 1 To Value / 8
          Feuil1.ComboBox1.AddItem "Poule " & Chr(64 + Counter)
        Next
      End If
    End Sub

    A toi d'adapter la cellule qui contient la valeur à utiliser. Perso, je nommerais cette cellule pour pouvoir utiliser son nom en VBA, rendant ainsi le code VBA indépendant de l'emplacement de cette cellule.
    "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...
    ---------------

  3. #3
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Bonjour à tous,

    Il me semble que MKTF1 utilise les puissances de 2 supérieures ou égales à 8 plutôt que les multiples de 8. Dans ce cas, la vérification de la variable Value est moins triviale.
    Ci-dessous une proposition de modification du code de Pierre pour utiliser les puissances de 2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub FillCombo()
      Dim Value As Long, CheckVal as Long
      Dim Counter As Long
     
      Value = Range("a1").Value
      CheckVal = Value And (Value - 1)
      If Value >= 8 And CheckVal = 0 Then
        Feuil1.ComboBox1.Clear
        For Counter = 1 To CInt(Ln(Value) / Ln(2))
          Feuil1.ComboBox1.AddItem "Poule " & Chr(64 + Counter)
        Next
      End If
    End Sub
    Cdt

  4. #4
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut Ben

    Avec l'exemple fourni dans la demande, ce n'était pas très clair. Merci pour ta proposition qui donne le choix en fonction de la situation réelle du demandeur
    "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...
    ---------------

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Bonjour et merci à tous

    Je vais essayer d'être plus clair

    Il s'agit d'un tournoi de sport pour lequel j'essaye de faire un fichier de marque

    Les poules sont constituées de 8 équipes

    Je souhaite faire un programme qui s'adapte au nombre de poule allant de 1 poule (soit 8 équipes) à 16 poules (soit 128 équipes)

    Dans ma première feuille qui se nomme "Equipes", je détermine le nombre d'équipe, c'est à dire; soit 8, 16, 32, 64 ou 128.
    Ce qui me fait soit
    -Poule A pour 8 équipes
    -Poule A, Poule B pour 16 équipes
    -Poule A, Poule B, Poule C, Poule D pour 32 équipes
    etc

    Sur cette feuille, à partir d'une cellule avec validation de données je masque les lignes (poules) inutiles (ça j'y arrive), et sur cette feuille je saisie le nom de club, d'équipe, les noms des joueurs et leurs résultats pour classement provenant d'autres feuilles (sans intérêt ici).

    C'est à partir d'ici que cela se complique.
    Avant les matchs, j'imprime des feuilles de saisie de score pour chaque match en tête à tête, cela se fait sur un autre feuille Excel nommée "Feuille_Papier", et chacun part sur son terrain avec.
    Sur cette feuille Excel, on choisit la poule et cela me permet d'imprimer des feuilles de saisie de score contenant le nom de la poule, le terrain de jeu, le nom des équipes.
    Et c'est donc sur cette feuille que je voudrais une combobox (ou une validation de données type liste mais programmable) qui ne contiennent que les noms des poules en jeu.

    Donc la combobox doit récupérer une info sur une autre feuille.

    Le but de se programme est de s'adapter au format du tournoi afin de ne pas avoir une multitude de programme.

    Et j'avoue que malgré votre aide je n'arrive pas, sans doute ai je été trop vague dans mon explication.
    J'ai écris ce code pour essai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim intEquipe As Integer
     
        intEquipe = Sheets("Equipes").Cells(1, "G").Value
        If intEquipe = 8 Then
            ComboBox1.AddItem = "Poule A"
     
        Else
            ComboBox1.Clear
        End If
    Mais j'ai cette réponse
    Nom : Message erreur.jpg
Affichages : 547
Taille : 45,3 Ko
    J'espère que celle-ci est maintenant complète.
    Pour finir, il s'agit de tournoi de MOLKKY en club et pour ceux qui ne connaitrais pas c'est un jeu de quilles d'origine finlandaise assimilable dans les grands principes à la pétanque.

    Merci

  6. #6
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Salut Pierre,

    Citation Envoyé par Pierre Fauconnier Voir le message
    dans la demande, ce n'était pas très clair
    En effet ! Et je me suis planté dans les grandes largeurs dans l'interprétation de cette demande.
    La proposition de code que j'ai transmise hier crée 3 poules pour 8 équipes, 4 poules pour 16 équipes, 5 poules pour 32 équipes, etc. ; ce qui est complètement faux
    Ci-dessous une correction qui devrait être plus conforme aux attentes de MKTF1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub FillCombo()
      Dim Value As Long, CheckVal as Long
      Dim intEquipe As Long
     
      Value = Sheets("Equipes").Cells(1, "G").Value
      CheckVal = Value And (Value - 1)
      If Value >= 8 And CheckVal = 0 Then
        Sheets("Feuille_Papier").ComboBox1.Clear
        For intEquipe = 1 To Value / 8
          Sheets("Feuille_Papier").ComboBox1.AddItem "Poule " & Chr(64 + Counter)
        Next intEquipe
      End If
    End Sub
    Quant à l'erreur produite par votre code, MKTF1, elle provient du signe égal (=) présent sur la ligne d'ajout d'élément : ce signe doit être supprimé.

    Bonne journée à vous tous !

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Quant à l'erreur produite par votre code, MKTF1, elle provient du signe égal (=) présent sur la ligne d'ajout d'élément : ce signe doit être supprimé.
    Merci c'est déjà ça de gagné.

    Mais ou placé ce code? Je ne comprends pas


  8. #8
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Ce code doit être placé dans un module standard, et probablement déclenché sur un évènement (clic sur bouton, modification d'une cellule, ...). A toi d'en dire plus sur la conception de ton outil.
    "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...
    ---------------

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Merci pour le code que j'ai mis dans un module et en tant que fonction

    Sur click du combobox j'appelle la fonction mais n'obtient pas tout à fait le bon résultat
    Nom : Erreur données.jpg
Affichages : 533
Taille : 19,2 Ko

    J'ai trouvé une autre solution avec la validation de données:

    Nom : tableau 1.jpg
Affichages : 526
Taille : 46,2 Ko

    et le référentiel suivant placé sur la même feuille en masqué

    Nom : tableau 2.jpg
Affichages : 544
Taille : 59,1 Ko


    La cellule Y1 (valeur 16 dans l'exemple) est une variable qui dépend de ma feuille "Equipes" comme dit plus haut.

    C'est PAS beau mais pour l'instant ça marche. C'est inspiré d'une vidéo YOUTUBE

  10. #10
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    il me semblait que ma première réponse donnait le résultat que tu souhaitais. L'as-tu testée?
    "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...
    ---------------

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Oui j'ai testé comme décrit plus haut et cela me rends des Poules @

  12. #12
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    A la ligne 5 du code de ma première réponse, je donne Value = Range("a1").Value.

    Quelle est la valeur de A1? @ ayant 64 comme code Ascii, ton problème pourrait venir de là, même si, normalement, s'il est à 0 ou vide, il ne devrait avoir aucune ligne dans le combobox. Si tu utilises une autre cellule, tu dois évidemment adapter le code que l'on te donne à ta situation ^^

    Si la valeur ( 8, 16 ,32, ...) est saisie dans une autre cellule que le A1 de la feuille active, tu dois adapter ton code.

    Autre solution: Nommer la cellule qui contient ta valeur, et utiliser le nom de cette cellule dans ton code. Par exemple, si tu nommes ta cellule "NombreEquipes", tu peux utiliser le code Value = Range("NombreEquipes").Value
    Pourrais-tu montrer une copie exacte du code que tu as utilisé?
    "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...
    ---------------

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    D'abord mes excuses en effet je n'avais suivi toutes les instructions et notamment le fait de renommer, mais cela ne change rien, j'ai le bon nombre de poule mais toujours poule @

    Voici le code modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function FillCombo()
     
      Dim Value As Long
      Dim Counter As Long
     
      Value = Range("NombreEquipes").Value
      If Value Mod 8 = 0 Then
        Feuille_papier.ComboBox1.Clear
        For Counter = 1 To Value / 8
          Feuille_papier.ComboBox1.AddItem "Poule " & Chr(64 + Counter)
        Next
      End If
     
    End Function
    et pour le combo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub ComboBox1_Click()
        Call FillCombo
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Value = Range("NombreEquipes").Value
    la valeur viens de la feuille Equipes et avec le code ci dessous c'est pareil

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Value = Equipes.Range("NombreEquipes").Value

  14. #14
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Voilà le fichier avec une mise en place qui fonctionne
    Fichiers attachés Fichiers attachés
    "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...
    ---------------

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Quand je clique sur la combobox, il ne passe rien vu qu'il n'y a pas de code rattaché

  16. #16
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Ben, rattache-lui ton code ^^

    Avant cela, en VBA, clique dans le code que je t'ai donné puis presse F5. Après cela, retourne dans Excel et regarde si le résultat te convient. Il sera toujours temps de savoir sur quoi le déclencher par la suite lorsque tu auras le code qui remplit correctement ton combobox. Essaie avec plusieurs valeurs cohérentes par rapport à ton besoin (8, 16, 32, 64, ...). On verra déjà si on a compris ta demande.
    "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...
    ---------------

  17. #17
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Dans le fichier reçu ca marche, après avoir fait F5
    J'ai copié le code de mon module fonction, et ça ne marche toujours pas = poule @
    Peut être parce que j'utilise 2 feuilles distinctes

    La feuille qui me permet de sélectionner le nombre d'équipes

    Nom : 1.jpg
Affichages : 604
Taille : 94,7 Ko


    La feuille à imprimer, avec en haut à droite ma validation de données qui fonctionne bien meme si c'est pas beau

    Nom : 2.jpg
Affichages : 577
Taille : 222,7 Ko

  18. #18
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Pourrais-tu fournir ton fichier dépersonnalisé?
    "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...
    ---------------

  19. #19
    Nouveau membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juin 2016
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2016
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    Que veux dire dépersonnalisé?

  20. #20
    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 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Tu as deux soucis dans le code de la feuille Equipes.

    D'abord, tout ton code de masquage des lignes s'effectue à chaque changement. Je doute que ce soit efficace. Tu devrais l'exécuter uniquement lorsque tu modifies la cellule G1.

    Plus embêtant, tu charges le combobox à chaque changement de la feuille Equipes. C'est cela qui te pose le problème des @. Tu dois virer les dernières lignes de cette procédure, à partir de Dim Value...

    Perso, je n'enclencherais la procédure que lorsque c'est la cellule NombreEquipes qui est modifiée avec le code suivant (Il y a plus académique mais j'ai repris ton code en n'en modifiant que ce qui fallait pour que cela fonctionne, et on va faire avec)
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
      If Target.Address = Range("NombreEquipes").Address Then
        Select Case Cells(1, "G")
          Case 128
            Sheets("Equipes").Select
            Rows("5:132").Hidden = False
          Case 64
            Sheets("Equipes").Select
            Rows("5:68").Hidden = False
            Rows("69:132").Hidden = True
          Case 32
            Sheets("Equipes").Select
            Rows("5:36").Hidden = False
            Rows("37:132").Hidden = True
          Case 16
            Sheets("Equipes").Select
            Rows("5:20").Hidden = False
            Rows("21:132").Hidden = True
            Sheets("Feuille_papier").ComboBox1.Clear
          Case 8
            Sheets("Equipes").Select
            Rows("5:12").Hidden = False
            Rows("13:132").Hidden = True
        End Select
     
        Sheets("Equipes").Select
        Cells(5, "C").Select
     
        FillCombo
      End If
    End Sub
    Le code de FillCombo doit aussi être modifié car j'avais vu dans ton code que tu travaillais avec Feuille_Papier.Combobox1..., mais c'est avec Worksheets("Feuille_Papier").Combobox1 que tu dois travailler.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Function FillCombo()
     
      Dim Value As Long
      Dim Counter As Long
     
      Value = Range("NombreEquipes").Value
      If Value Mod 8 = 0 Then
        Worksheets("Feuille_papier").ComboBox1.Clear
        For Counter = 1 To Value / 8
          Worksheets("Feuille_papier").ComboBox1.AddItem "Poule " & Chr(64 + Counter)
        Next
      End If
     
    End Function
    Avec ces modifs, ça fonctionne chez moi
    "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...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Identifier le contrôle actif dans une feuille de calculs
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/03/2008, 18h47
  2. Supprimer une/des image(s) dans une feuille de calcul
    Par Lorenzole+bo dans le forum Excel
    Réponses: 1
    Dernier message: 21/12/2007, 11h23
  3. Utiliser un userform pour lire et écrire dans une feuille de calculs
    Par sebi78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/04/2007, 19h51
  4. [VBA-E] Nommer chemin d'accès dans une feuille de calcul.
    Par BRUNO71 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/03/2007, 13h30
  5. [VBA-E] Passer d'un contrôle à l'autre avec tab dans une feuille de calculs
    Par small_heart dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/02/2007, 20h57

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