Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/01/2012, 16h24   #1
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
Par défaut Affichage dans une listbox

Bonjour,

je cherche à faire userform avec une listbox qui me permettra de masquer ou démasquer des feuilles situées dans un autre classeur.

ce dernier est déjà ouvert lors d'une précédente macro.

La liste des Onglet se trouve dans la colonne A située dans le classeur qui déclenche la macro.

J'avais imaginé qu'au clic sur le bouton masquer un "1" serais mis dans la colonne B, et au clic sur le bouton démasquer je mettrais un "0".

Donc dans ma listbox ne s'afficherais que les onglets qui ont un "0".

Voici le début de mon code, mais j'avoue que je bloque pour la suite :

Code :
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
32
33
34
35
Private Sub CommandButton1_Click()
Dim SitMoAffiche As String
SitMoAffiche = ListBox1
 
Windows("modele situation.xls").Activate
 
Sheets(SitMoAffiche).Visible = True
 
  Windows("SITUATION INITIALE.xls").Activate
 
 
End Sub
 
Private Sub CommandButton2_Click()
Dim SitMomMasque As String
SitMomMasque = ListBox1
 
Windows("modele situation.xls").Activate
 
 
Sheets(SitMomMasque).Visible = xlSheetHidden
 
  Windows("SITUATION INITIALE.xls").Activate
 
End Sub
 
Private Sub ListBox1_Click()
 
End Sub
Private Sub UserForm_Initialize()
 
ListBox1.ColumnHeads = True
ListBox1.RowSource = "BDDSITUATION!A30:A65"
 
End Sub
Merci pour votre aide

David
breizhgen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/01/2012, 18h45   #2
Expert Confirmé Sénior
 
Avatar de jfontaine
 
Homme Jérôme FONTAINE
Contrôleur de Gestion
Inscription : juin 2006
Messages : 3 920
Détails du profil
Informations personnelles :
Nom : Homme Jérôme FONTAINE
Âge : 38
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Contrôleur de Gestion

Informations forums :
Inscription : juin 2006
Messages : 3 920
Points : 7 237
Points : 7 237
Bonjour,

Tu pourrais éviter de passer par une liste donglet tampon, et lire directement les onglets du classeur

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
Private Sub UserForm_Initialize()
 
Dim sh As Worksheet
 
For Each sh In Workbooks("SITUATION INITIALE").Worksheets
    ListBox1.AddItem sh.Name
    If sh.Visible = xlSheetVisible Then
        ListBox1.Selected(ListBox1.ListCount - 1) = True
    Else
        ListBox1.Selected(ListBox1.ListCount - 1) = False
    End If
Next sh
End Sub
Puis dans l’évènement Change de la listbox
Code :
1
2
3
Private Sub ListBox1_Change()
Workbooks("SITUATION INITIALE").Sheets(ListBox1.List(ListBox1.ListIndex)).Visible = ListBox1.Selected(ListBox1.ListIndex)
End Sub
__________________
Jérôme

Citation:
"Ils ne savaient pas que c'était impossible, alors ils l'ont fait" - Marc Twain
Si la réponse répond à votre besoin, votre vote nous encouragera.
Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
jfontaine est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/01/2012, 17h08   #3
Nouveau Membre du Club
 
Inscription : août 2006
Messages : 86
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : août 2006
Messages : 86
Points : 29
Points : 29
Bonjour Jérôme,

merci pour cette réponse.

Je viens de tester et le résultat est pas mal.

Merci

David
breizhgen est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h42.


 
 
 
 
Partenaires

Hébergement Web