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

Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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!!
A voir également:

5 réponses

pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Oui ça serait peut être plus pratique, je vais essayer cela, merci en tout cas ^^
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
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
Country_time Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Je me suis trompée de fichier c'est celui-ci : http://cjoint.com/14jn/DFBjKIR3SwV.htm
0