Utiliser plusieurs fois d'affilés un onglet d'un menu déroulant

Country_time Messages postés 7 Statut Membre -  
Country_time Messages postés 7 Statut Membre -
Bonjour,

je suis débutante en VBA, et je bute sur un petit quelque chose.

J'ai crée un menu déroulant, et à chaque fois que je clique sur un des onglets du menu j'ajoute un tableau (qui fait des calculs mais peu importe...) mais je peux aussi le supprimer, ou ajouter des cellules pour ensuite rajouter un tableau, j'espère que je me fais bien comprendre ...

Et donc mon problème c'est que j'obtiens plusieurs tableaux à la suite, et donc j'aimerais pouvoir utiliser plusieurs fois d'affilés mon onglet "supprimer" parce que jusqu'ici je dois appuyer sur un autre onglet puis retourner sur "supprimer" à chaque fois, et je ne trouve pas ça très pratique...

Avez-vous des idées?

Merci d'avance!!

5 réponses

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,

    Avez-vous des idées?
    Oui, bien sur. Plein d'idées.

    Mais...
    Ta demande sans un fichier exemple (sans données confidentielles), comportant toutefois des données et les macros, ne saurait être traitée.
    Dans l'attente...
    0
  2. Country_time Messages postés 7 Statut Membre
     
    Ah oui, désolé, j'ai oublié ce petit détail, voilà un fichier simplifié et sans données confidentielles ^^

    http://cjoint.com/14jn/DFtj4TJDbOO.htm

    Voilà ^^
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Un petit essai.

      Sur chacune des deux listes, clic droit/format de contrôle.
      Remplacer : Feuil3!$A$6:$A$9 par Feuil3!$A$5:$A$9 et Feuil3!$B$6:$B$9 par Feuil3!$B$6:$B$9
      Et ce afin d'avoir, dans chaque liste, une valeur "par défaut" vide.
      Ensuite, dans votre code, ajouter, en fin de macro ce code :
          Dim Sh As Shape
          
          For Each Sh In ActiveSheet.Shapes
            Sh.ControlFormat.Value = 0
          Next

      Il va remettre vos listes déroulantes à 0 après chaque clic dessus.
      Du coup vous devriez pouvoir supprimer plusieurs fois... Ou pas...
      0
  3. Country_time Messages postés 7 Statut Membre
     
    Alors j'ai tenté ce que vous m'avez dit,

    le problème c'est que cela supprime sans décaler les blocs et si je fais "ajouter" le bloc se retrouve décaler en dessous du deuxieme bloc :) enfin un truc bizarre quoi...

    N'existe-t-il pas un évènement qui permet de dire : si je clique plusieurs fois sur l'onglet, l'action se fait à chaque fois?
    J'avais tenté avec Doubleclick... mais avec des menus déroulants je n'ai pas trouvé l'astuce...
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Le souci est que vous utilisez un menu déroulant "contrôles de formulaire" et non pas "contrôles activex".
      Ces derniers, certes moins élégants, comportent davantage de possibilités, notamment l'événement Double_Click...
      A voir donc.
      0
    2. Country_time Messages postés 7 Statut Membre
       
      Oui ça serait peut être plus pratique, je vais essayer cela, merci en tout cas ^^
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      de rien.
      Reviens ici, après tes essais, nous dire ce qu'il en est.
      Et n'hésite pas en cas de difficulté.
      0
  4. Country_time Messages postés 7 Statut Membre
     
    Bonjour, bonjour,

    Après plusieurs essais pour créer ma liste déroulante, ce fut un echec...

    Je ne trouve pas la bonne syntaxe pour faire quelque chose comme "si je selectionne cet onglet dans la liste, il apparait un certain bloc de calcul, et si je selectionne un autre onglet il apparait un autre bloc de calcul..."

    Pouvez-vous m'éclairer?

    Merci d'avance
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Excuse le retard, soucis familiaux et de santé...

      Regarde ce code qui fonctionne avec une combobox du menu "contrôle activex" :
      Option Explicit
      
      Private Sub Worksheet_Activate()
      'vide et remplit ta liste
      'à chaque fois que tu sélectionnes ta feuille
      With ComboBox1
          .Clear
          .AddItem "Supprimer"
          .AddItem "Ajouter"
          .AddItem "Bidule"
      End With
      End Sub
      
      Private Sub ComboBox1_Change()
      'réalise les actions voulues
      'à chaque fois que tu changes la valeur de ta liste
      Select Case ComboBox1.Value
          Case "Supprimer"
              'ici tu indiques quel bloc supprimer
              'tu peux utiliser des tests if pour cela
          Case "Ajouter"
              'ici tu indiques quel bloc ajouter et ou les ajouter
              'tu peux utiliser des tests if pour cela
          
          'Case "Machin"
          
          'Case Bidule
          
          'autant de Case que de lignes dans ta combobox
          Case Else
              'autre cas
      End Select
      End Sub
      
      
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Country_time Messages postés 7 Statut Membre
     
    Ne t'en fais pas, ce n'est pas aussi pressé que cela!!

    En tout cas merci de prendre du temps pour me répondre.

    J'ai essayé ta solution, les différents cas marchent bien, mais j'ai toujours le problème pour supprimer plusieurs fois d'affilés.

    Au final, j'ai essayé avec des userforms et là ça fonctionne, je ne sais pas trop pourquoi mais bon...

    Mais maintenant j'ai un autre problème, j'aimerais pouvoir afficher les blocs les uns à la suite des autres en utilisant qu'un seul userform avec liste déroulante et pas plusieurs comme j'avais fait avant, c'est peut être moins compliqué mais pas très pratique et en sachant que je ne sais pas combien de blocs j'aurais besoin pour mon calcul final, je preferais n'utiliser qu'une seule liste.

    Je me suis trituré le cerveau mais sûrement pas assez, puisque je ne trouve pas l'astuce,

    Voici mon fichier avec les userforms : https://www.cjoint.com/?DFAqwWBWXg0

    Merci d'avance ^^
    0
    1. Country_time Messages postés 7 Statut Membre
       
      Je me suis trompée de fichier c'est celui-ci : http://cjoint.com/14jn/DFBjKIR3SwV.htm
      0