Excel vba checkbox et combobox
Fermé
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
-
11 sept. 2012 à 18:16
f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 - 12 sept. 2012 à 16:54
f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 - 12 sept. 2012 à 16:54
A voir également:
- Excel vba checkbox et combobox
- Si et excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
19 réponses
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
Modifié par f894009 le 12/09/2012 à 09:34
Modifié par f894009 le 12/09/2012 à 09:34
Bonjour,
VBA de le feuille ou vous avez cree vos objets:
ex:
Private Sub checkbox1_Click()
ComboBox1.Visible = Not ComboBox1.Visible
End Sub
ou
Dans un module:
If Sheets(1).OLEObjects("CheckBox2").Object Then
Sheets(1).OLEObjects("Combobox1").Visible = True
End If
A+
VBA de le feuille ou vous avez cree vos objets:
ex:
Private Sub checkbox1_Click()
ComboBox1.Visible = Not ComboBox1.Visible
End Sub
ou
Dans un module:
If Sheets(1).OLEObjects("CheckBox2").Object Then
Sheets(1).OLEObjects("Combobox1").Visible = True
End If
A+
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 09:34
12 sept. 2012 à 09:34
voila mon code entier
Sub auto()
Dim fichier1 As Variant
Dim total_ligne_tcd As Integer
Dim c As OLEObject
Dim d As OLEObject
Dim i As Integer
Dim ligne As Integer
fichier1 = Application.GetOpenFilename("Fichier (*.*), *.*")
If fichier1 = False Then
MsgBox "erreur de fichier Excel"
Exit Sub
End If
Workbooks.Open (fichier1)
Sheets("Smp99_Donnees").Select
Sheets("Smp99_Donnees").Activate
Sheets("Smp99_Donnees").Move _
Before:=Workbooks("Classeur1.xls").Sheets(3)
'Comptage du nombre d'arrets
Sheets("Smp99_Donnees").Select
ligne = 8
dat = Cells(ligne, 2)
Do While dat <> ""
ligne = ligne + 1
dat = Cells(ligne, 2)
Loop
total_ligne = ligne - 1
Range("B8").Select
'tableau dynamique
Sheets("Smp99_Donnees").Select
Range(Cells(7, 2), Cells(total_ligne, 40)).Select
ActiveWorkbook.Names.Add Name:="tcd_tcd", RefersToR1C1:= _
Range(Cells(7, 2), Cells(total_ligne, 40))
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"tcd_tcd").CreatePivotTable TableDestination:="Feuil2!R5C1", TableName:= _
"Tableau croisé dynamique", DefaultVersion:=xlPivotTableVersion10
Sheets("Feuil2").Select
Cells(5, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique").PivotFields("Durée"), "Somme de Durée" _
, xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields("Type")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields("Zone")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"Evénement")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"Commentaire")
.Orientation = xlRowField
.Position = 4
End With
ActiveWorkbook.Sheets("Feuil2").Select
ligne = 7
dat = Cells(ligne, 5)
Do While dat <> ""
ligne = ligne + 1
dat = Cells(ligne, 5)
Loop
total_ligne_tcd = ligne - 1
For i = 7 To total_ligne_tcd
With ActiveSheet.Range("G" & i)
Set c = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
c.Name = "CheckBox_" & i
End With
With ActiveSheet.Range("H" & i)
Set d = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
d.Name = "ComboBox_" & i
d.Visible = False
End With
Next
End Sub
j'ai essayé avec
For i = 7 To total_ligne_tcd
If ActiveSheet.OLEObjects("CheckBox_" & i).Object.Value = True Then
ActiveSheet.OLEObjects("ComboBox_" & i).Object.Visible = True
End If
Next
mais ca ne marche tjs pas
Sub auto()
Dim fichier1 As Variant
Dim total_ligne_tcd As Integer
Dim c As OLEObject
Dim d As OLEObject
Dim i As Integer
Dim ligne As Integer
fichier1 = Application.GetOpenFilename("Fichier (*.*), *.*")
If fichier1 = False Then
MsgBox "erreur de fichier Excel"
Exit Sub
End If
Workbooks.Open (fichier1)
Sheets("Smp99_Donnees").Select
Sheets("Smp99_Donnees").Activate
Sheets("Smp99_Donnees").Move _
Before:=Workbooks("Classeur1.xls").Sheets(3)
'Comptage du nombre d'arrets
Sheets("Smp99_Donnees").Select
ligne = 8
dat = Cells(ligne, 2)
Do While dat <> ""
ligne = ligne + 1
dat = Cells(ligne, 2)
Loop
total_ligne = ligne - 1
Range("B8").Select
'tableau dynamique
Sheets("Smp99_Donnees").Select
Range(Cells(7, 2), Cells(total_ligne, 40)).Select
ActiveWorkbook.Names.Add Name:="tcd_tcd", RefersToR1C1:= _
Range(Cells(7, 2), Cells(total_ligne, 40))
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"tcd_tcd").CreatePivotTable TableDestination:="Feuil2!R5C1", TableName:= _
"Tableau croisé dynamique", DefaultVersion:=xlPivotTableVersion10
Sheets("Feuil2").Select
Cells(5, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique").PivotFields("Durée"), "Somme de Durée" _
, xlSum
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields("Type")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields("Zone")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"Evénement")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique").PivotFields( _
"Commentaire")
.Orientation = xlRowField
.Position = 4
End With
ActiveWorkbook.Sheets("Feuil2").Select
ligne = 7
dat = Cells(ligne, 5)
Do While dat <> ""
ligne = ligne + 1
dat = Cells(ligne, 5)
Loop
total_ligne_tcd = ligne - 1
For i = 7 To total_ligne_tcd
With ActiveSheet.Range("G" & i)
Set c = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
c.Name = "CheckBox_" & i
End With
With ActiveSheet.Range("H" & i)
Set d = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
d.Name = "ComboBox_" & i
d.Visible = False
End With
Next
End Sub
j'ai essayé avec
For i = 7 To total_ligne_tcd
If ActiveSheet.OLEObjects("CheckBox_" & i).Object.Value = True Then
ActiveSheet.OLEObjects("ComboBox_" & i).Object.Visible = True
End If
Next
mais ca ne marche tjs pas
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 09:58
12 sept. 2012 à 09:58
Re,
Je regarde la chose.
A+
Je regarde la chose.
A+
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 10:06
12 sept. 2012 à 10:06
Re,
A+
For i = 7 To total_ligne_tcd If ActiveSheet.OLEObjects("CheckBox_" & i).Object.Value = True Then ActiveSheet.OLEObjects("ComboBox_" & i).Visible = True End If Next i
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 10:19
12 sept. 2012 à 10:19
Re,
Hélas ça ne marche toujours pas...j'ai aussi essayé en associant à ma checkbox une cellule qui récupère true or false et puis faire un test sur cette dernière mais toujours rien je ne comprend pas ce qui ne va pas :(
merci de votre aide
Hélas ça ne marche toujours pas...j'ai aussi essayé en associant à ma checkbox une cellule qui récupère true or false et puis faire un test sur cette dernière mais toujours rien je ne comprend pas ce qui ne va pas :(
merci de votre aide
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 10:26
12 sept. 2012 à 10:26
Re,
Hélas ça ne marche toujours pas... Cela ne fait rien ou y a t-il une erreur.
Hélas ça ne marche toujours pas... Cela ne fait rien ou y a t-il une erreur.
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 10:28
12 sept. 2012 à 10:28
Re
Cela ne fait rien... sans aucune erreur de compilation
Cela ne fait rien... sans aucune erreur de compilation
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 10:36
12 sept. 2012 à 10:36
Re,
Ce morceau de code est lance comment??
Ce morceau de code est lance comment??
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 10:38
12 sept. 2012 à 10:38
il est lancé via un bouton auquel j'ai associé cette macro...
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 10:40
12 sept. 2012 à 10:40
Re,
Et ce bouton est bien sur la feuille de vos Comboboxs?????
Et ce bouton est bien sur la feuille de vos Comboboxs?????
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 10:43
12 sept. 2012 à 10:43
ce bouton est dans la première feuille de mon classeur, ensuite mon tableau croisé dynamique se crée dans la seconde feuille de ce dernier...la génération du tcd ainsi que des checkbox marche (et même celle des combobox qd je les mets en visible = true)
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 10:45
12 sept. 2012 à 10:45
Re,
Je repete la question!!
Je repete la question!!
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 10:46
12 sept. 2012 à 10:46
non pas dans la même feuille
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 10:53
12 sept. 2012 à 10:53
Re,
Il faut eviter ActiveSheet quand vous naviguez sur plusieurs feuilles
A+
Il faut eviter ActiveSheet quand vous naviguez sur plusieurs feuilles
With WorkSheets("nom_de_votre_feuille") For i = 7 To total_ligne_tcd If .OLEObjects("CheckBox_" & i).Object.Value = True Then .OLEObjects("ComboBox_" & i).Visible = True End If Next i End With
A+
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 10:58
12 sept. 2012 à 10:58
Ca marche toujours pas
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 11:04
12 sept. 2012 à 11:04
Re,
Est-t-il possible d'avoir votre fichier avec seulement la creation des objets et votre bouton plus son code (peut-etre que vos donnees sont "sensibles") comme vous l'avez actuellement
lien https://www.cjoint.com/ et copier le lien de votre fichier
Est-t-il possible d'avoir votre fichier avec seulement la creation des objets et votre bouton plus son code (peut-etre que vos donnees sont "sensibles") comme vous l'avez actuellement
lien https://www.cjoint.com/ et copier le lien de votre fichier
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 11:31
12 sept. 2012 à 11:31
lien du fichier
https://www.cjoint.com/?BImlDQof6Gw
lien de la feuille excel a insérer
https://www.cjoint.com/?BImlFacn0an
https://www.cjoint.com/?BImlDQof6Gw
lien de la feuille excel a insérer
https://www.cjoint.com/?BImlFacn0an
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 11:35
12 sept. 2012 à 11:35
Re,
Je recupere les fichiers et je vous tiens au courant.
A+
Je recupere les fichiers et je vous tiens au courant.
A+
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 11:36
12 sept. 2012 à 11:36
ok merci pour votre aide
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 13:32
12 sept. 2012 à 13:32
Re,
Je vous ai un peu modifie votre fichier, a vous de voir.
Pour lancer: onglet Accueil----> Bouton Départ
https://www.cjoint.com/?BImnDBI4i06
A+
Je vous ai un peu modifie votre fichier, a vous de voir.
Pour lancer: onglet Accueil----> Bouton Départ
https://www.cjoint.com/?BImnDBI4i06
A+
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 14:04
12 sept. 2012 à 14:04
Tout d'abord je vous remercie pour l'effort fourni mais je pense qu'il ya un petit problème lorsque je lance avec le bouton départ ca ne marche pas
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
Modifié par f894009 le 12/09/2012 à 14:28
Modifié par f894009 le 12/09/2012 à 14:28
Re,
Chez moi ca marche en 2003 et 2007!!!!!
Ca ne fait rien du tout ou ......
Chez moi ca marche en 2003 et 2007!!!!!
Ca ne fait rien du tout ou ......
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 14:35
12 sept. 2012 à 14:35
Re,
ben en fait quand ca ouvre le fichier ca me met les checkbox dans le smp99_données (en plein milieu du grand tableau) et ca ne génère pas le tcd en gros programme ne s'effectue pas dans le classeur1...bizare
ben en fait quand ca ouvre le fichier ca me met les checkbox dans le smp99_données (en plein milieu du grand tableau) et ca ne génère pas le tcd en gros programme ne s'effectue pas dans le classeur1...bizare
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 14:45
12 sept. 2012 à 14:45
Re,
Je n'ai rien modife dans votre source a ces endroits. Je regarde.
Je n'ai rien modife dans votre source a ces endroits. Je regarde.
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 15:15
12 sept. 2012 à 15:15
Re,
essayez celui-ci, quelques modifs, mais pas significatives de votre anomalie
https://www.cjoint.com/?BImpnLWWamN
essayez celui-ci, quelques modifs, mais pas significatives de votre anomalie
https://www.cjoint.com/?BImpnLWWamN
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 15:35
12 sept. 2012 à 15:35
Re,
Toujours le même problème mais je vous remercie énormément pour l'effort que vous avez fourni je commence a voir comment il faut procéder
merci encore une fois
Toujours le même problème mais je vous remercie énormément pour l'effort que vous avez fourni je commence a voir comment il faut procéder
merci encore une fois
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 15:44
12 sept. 2012 à 15:44
Re,
Quel EXCEL 2007 avez vous
Quel EXCEL 2007 avez vous
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 15:44
12 sept. 2012 à 15:44
oui
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
12 sept. 2012 à 15:51
12 sept. 2012 à 15:51
Re,
Pro. ou...
Pro. ou...
JuJuK
Messages postés
21
Date d'inscription
mardi 11 septembre 2012
Statut
Membre
Dernière intervention
12 septembre 2012
12 sept. 2012 à 15:52
12 sept. 2012 à 15:52
2007 professional plus :p