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

Fermé
Country_time Messages postés 7 Date d'inscription mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014 - 18 juin 2014 à 16:22
Country_time Messages postés 7 Date d'inscription mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014 - 27 juin 2014 à 09:38
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
19 juin 2014 à 09:16
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 mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014
19 juin 2014 à 09:57
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
19 juin 2014 à 10:40
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 mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014
19 juin 2014 à 11:10
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
19 juin 2014 à 11:17
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 mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014
19 juin 2014 à 11:21
Oui ça serait peut être plus pratique, je vais essayer cela, merci en tout cas ^^
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
19 juin 2014 à 11:23
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 mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014
23 juin 2014 à 15:55
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 jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
26 juin 2014 à 12:16
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 mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014
26 juin 2014 à 16:23
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 mercredi 18 juin 2014 Statut Membre Dernière intervention 27 juin 2014
27 juin 2014 à 09:38
Je me suis trompée de fichier c'est celui-ci : http://cjoint.com/14jn/DFBjKIR3SwV.htm
0