Activation combobox à l ouverture de la feuille

Résolu
amo-51 Messages postés 98 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

j ai cette combobox

Private Sub ComboBox1_AfterUpdate()

Feuil11.Activate
Dim lZoom As Long

lZoom = 100

Cells(3, 7).Value = ComboBox9.List

ComboBox2.List = Array(" ", "Mr", "Mme")
ComboBox3.List = Array(" ", "0", "0,50%", "1%", "3%", "3,50%")
ComboBox4.List = Array(" ", "Oui", "Non")
ComboBox5.List = Array(" ", "Oui", "Non")
ComboBox6.List = Array(" ", "Oui", "Non")
ComboBox7.List = Array(" ", "Oui", "Non")
ComboBox8.List = Array(" ", "0", "3", "6", "9", "12")

End Sub

elle marche très bien
mais lorsque je ferme la feuille et je ré-ouvre , la combobox disparaît et je dois l’activer en accédant à ma macro

que dois je faire pour que je trouve mes combobox à l'ouverture du fichier

merci de m"aider

Configuration: Windows / Chrome 71.0.3578.98

4 réponses

Résumé de la discussion

Des échanges portent sur un combobox ActiveX sur Feuil11 qui se vide à l’ouverture du fichier malgré un code qui remplit ses listes dans l’événement AfterUpdate. Plusieurs propositions visent à exécuter le chargement des listes au démarrage du classeur ou à l’activation de la feuille (Workbook_Open ou Worksheet_Activate) pour éviter que la combobox disparaisse. D’autres suggèrent de réinitialiser les listes dans l’événement ComboBox1_Change afin que les éléments soient présents même après la fermeture et réouverture du fichier. Une nuance utile à retenir est que la cellule associée peut être vide à l’ouverture, ce qui entraîne la nécessité d’un réarmement par code plutôt qu’un rechargement manuel.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    C'est pas clair !

    « j ai cette combobox
    Private Sub ComboBox1_AfterUpdate()
    '....
    End Sub
    ... elle marche très bien »

    Ça c'est pas une Combobox, c'est une procédure évènementielle qui est exécutée après la mise à jour de la combobox1.

    « Elle marche très bien » me semble présomptueux !
    Disons que, pour l'instant, ce qu'elle fait te convient.

    « mais lorsque je ferme la feuille et je ré-ouvre , la combobox disparaît et je dois l’activer en accédant à ma macro »
    Je ne vois là aucun rapport entre ces deux affirmations.
    Comment fermes-tu une feuille sans fermer le classeur ?

    Mais peut-être qu'on ne nous dit pas tout (sic) !
    Est-ce là, le seul code présent dans le classeur ?

    --
    Patrice
    0
    1. amo-51 Messages postés 98 Statut Membre
       
      effectivement elle marche très bien

      ce n est pas le seul code présent dans mon classeur

      j ai une macro dans le module et la combo dans la feuille

      au faite, mon souci est que quand je quitte (ferme) mon fichier puis je l'ouvre, la macro s’exécute mais la combo est vide
      chaque fois, je dois interpeller le développeur , entrée dans la feuille et faire exécuter la combo

      aussi je cherche une solution, je veux trouver ma combo à l'ouverture du fichier

      j’espère que tu as compris cette fois ci
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Pourquoi définir une variable et y affecter une valeur, et ne pas l'utiliser ?
      Dim lZoom As Long
      lZoom = 100 
      

      « ce n est pas le seul code » C'est bien ce que j'ai dit : on ne nous dit pas tout !!!
      Il faut qu'on le devine ?
      0
    3. amo-51 Messages postés 98 Statut Membre
       
      je vous ai tout dit Patrice

      que voulez vous savoir d"autres, apparemment vous avez une imagination très débordante


      et puis le problème n est pas dans le zoom mais dans la combo qui affiche une liste vide à l ouverture du fichier
      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > amo-51 Messages postés 98 Statut Membre
       
      si tu veux être compris, je t'invite à faire un effort de vocabulaire.
      je suppose que tu as un classeur Excel, qui contient une feuille, appelée Feuil11.
      tu as aussi plusieurs boites combinées, l'une s'appelant combobox1.
      tu as encore une procédure événementielle, appélée ComboBox1_AfterUpdate, qui, dès que la boite combinée combobox1 est modifiée, modifie le contenu d'une cellule, ainsi que le contenu de 7 autres boites combinées.

      tu mentionnes que quelque chose disparaîtrait entre le moment où tu fermes et rouvres le classeur: de quoi s'agit-il précisément?
      0
    5. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      « que voulez vous savoir d"autres, »
      Au minimum, la totalité du code VBA contenu dans le classeur en précisant dans quel module.
      Et aussi la structure du classeur, ce que contiennent les feuilles, à quoi ça sert

      « le problème n est pas dans le zoom mais dans la combo qui affiche une liste vide à l ouverture du fichier » Dans le code que tu présentes, il n'y a aucune instruction pour remplir le combobox, c'est donc que ça se situe ailleurs, pas besoin d'imaginer quoi que ce soit pour comprendre ça !!!
      Mais à part ça tu ne caches rien !
      0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    "ma combo s'affiche dans une cellule , j'utilise l'instruction "likedcall" qui se trouve dans propriété de la combo"


    Quel type de Combobox utilises-tu ?

    Il n'y a pas de méthode ou proprièté portant ce nom (ou un nom similaire) dans les Combobox de type MSForm. (FM20.dll)
    0
    1. amo-51
       
      PLUTÔT "Linkedcell"
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      C'est donc normal, LinkedCell c'est la cellule que reçoit le résultat.
      Pour la liste c'est ListFillRange
      0
    3. amo-51 Messages postés 98 Statut Membre
       
      que dois je mettre dans ListFillRange
      0
    4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      la plage de cellules qui contient la liste, par exemple A1:A10
      0
    5. amo-51 Messages postés 98 Statut Membre
       
      mais moi je n ai pas de plage de cellules puis certains combo sont des boucles avec fonction if
      0
  3. amo-51 Messages postés 98 Statut Membre
     
    on m a donné la solution dans un autre forum et je le partage
    Private Sub Worksheet_Change(ByVal Target As Range)
    With Sheets("Fiche crédit")

    ComboBox2.List = Array(" ", "Mr", "Mme")
    ComboBox3.List = Array(" ", "0", "0,50%", "1%", "3%", "3,50%")
    ComboBox4.List = Array(" ", "Oui", "Non")
    ComboBox5.List = Array(" ", "Oui", "Non")
    ComboBox6.List = Array(" ", "Oui", "Non")
    ComboBox7.List = Array(" ", "Oui", "Non")
    ComboBox8.List = Array(" ", "0", "3", "6", "9", "12")

    End With
    End Sub
    ............................................
    Private Sub Workbook_Open()
    ' on fait appel à la macro crédit du module 3
    Call crédit
    End Sub

    au plaisir
    0
    1. amo-51
       
      @Patrice 33740
      Yg
      Que je salue
      Au faite j ai eu une réponse après 10 minutes de sa publication
      Professionnalisme et efficacité
      Bénévolat réussi
      Bien à vous les bénévoles
      N oubliez pas de rester brancher :)
      0
    2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      En réalité :
      Question à 21:41
      1ère mauvaise réponse après 34 minutes à 22:15
      Dépôt de ton fichier (partiel) à 22:30
      Réponse 1 heure 20 après la question à 23:01
      0
  4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Re,
    « on doit être professionnel même lorsqu" on est dans le bénévolat »
    C'est incompatible, qui dit professionnel, dit rémunération alors qu'un bénévole travaille gratis.
    Tu voulais probablement dire :
    Dans le bénévolat, on se doit de fournir une réponse d'aussi bonne qualité que celle qu'aurait donné un professionnel.

    Effectuons une analyse de ce que nous savons, comme l'aurait fait un professionnel :
    #0 « elle marche très bien. mais lorsque je ferme la feuille et je ré-ouvre , la combobox disparaît et je dois l’activer en accédant à ma macro » Mais c'était pas ça, c'est :
    #2 « au faite, mon souci est que quand je quitte (ferme) mon fichier puis je l'ouvre, la macro s’exécute mais la combo est vide »
    #7 « mon problème est que je trouve la cellule de la combo vide à l'ouverture de mon fichier »
    Ça on l'a bien compris !

    Par contre, par rapport au #0 on voit apparaître en #7
    ComboBox1.List = Array.............
    
    qui n'y était pas au début, et ça ce n'est pas le véritable code, car ce n'est pas compilable.
    Puis en #11 « il y a Array ». Dans le genre « je dis et je le redis, je vous ai tous dis » : peut mieux faire !

    En plus c'est pas cohérent avec :
    #23 « ma combo s'affiche dans une cellule , j'utilise l'instruction "likedcall" qui se trouve dans propriété de la combo » Mais c'était #26 « PLUTÔT "Linkedcell" »
    Et encore moins cohérent quand tu réponds #30 « mais moi je n ai pas de plage de cellules » qui laisse supposer que tu n'utilises pas LinkedCell (puisque tu n'a pas défini la plage).

    En outre, mon ami belge yg (que je salue) t'a posé plusieurs question auxquelles tu n'a pas fourni de réponse précise.
    Alors soyons sérieux, nous voulons bien faire preuve de professionnalisme, mais comment veux-tu qu'on devine ce qu'il faut te proposer devant autant d’incohérences et avec si peu d'informations !
    0