Boîte de dialogue avec cases à cocher

  • Initiateur de la discussion Fredrennes
  • Date de début
F

Fredrennes

Guest
Bonjour à tous,

Sur une feuille j'ai 2 colonnes.

La 1ère contient une dizaine de libellés.
La 2nde affiche en face de chaque libellé un "1" ou un "0".

Ce que je souhaiterais faire : je voudrais qu'à l'ouverture de mon fichier apparaisse une boîte de dialogue dans laquelle seront présents la totalité de mes libellés avec en face de chacun une case à cocher.

Si l'utilisateur coche la case, la valeur "1" s'affichera directement sur le feuille de calcul excel.

Pouvez-vous m'aider svp ?

Merci

Cdlt
Fred
 
M

marc F

Guest
Bonjour,

Lorsque tu fabriques ta boite de dialogue, tu as la possibilité d'avoir des actions sur évènement. En double cliquant dessus apparaît une feuille avec Checkbox1.click()
choisi checkbox1.change()
puis tu veux changer la valeur de la cellule

if range ("feuil1!$a$1") = "O" then range("feuil1!$a$1").value = "L"
else range("feuil1!$a$1").value = "O"
end if

ce qui fait que si la cellule A1 de la feuil1 et avec L, ça passera à O et inversement. Si elle est vide cela passera aussi à O.

Si tu click sur la boite de dialogue, tu as la possibilité avec Sub UserForm_Activate()

d'initialisé ta boite de la manière suivante

Sub UserForm_Activate()
if range("feuil1!$a$1").value = "L" then checkbox1.value = true
else checkbox1.value = false
end if
End Sub

Amicalement
 
C

CHti160

Guest
Salut "Fredrennes","marc F"
Re le "FORUM"
une solution peut être
tu crées dans VBA (Alt+F11)
un Userform tu fais insertion Userform
tu inseres une listbox sur le userform via la boite à outils
ensuite tu clic sur le Userform et tu copies ce texte dans la page code du userform
je ne sais pas comment tu recopies dans la feuille j'ai donc mis le resultat dans la cellule C1
Private Sub ListBox1_Click()
Worksheets("Feuil1").Range("C1") = ListBox1.Value
End Sub

Private Sub UserForm_Initialize()
Dim L As Integer
Dim plage As String
L = Worksheets("Feuil1").Range("A65536").End(xlUp).Row
plage = Worksheets("Feuil1").Range("A1:B" & L).Address
With ListBox1
.ColumnCount = 2
.RowSource = plage
.BoundColumn = 0
End With

End Sub

A+++
Jean Marie
 
C

CHti160

Guest
Salut "Fredrennes"
re re à tous OuPssss
j'ai trouvé ;o) Lol
tu remplaces
Private Sub ListBox1_Click()
Worksheets("Feuil1").Range("C1") = ListBox1.Value
End Sub
Par
Private Sub ListBox1_Click()
ListBox1.BoundColumn = 2
Worksheets("Feuil1").Range("C1") = ListBox1.Value
End Sub
et là tu as ton 1 ou ton 0 dans C1 OupSSSS

A++
Jean Marie
Ps il faut Persévérer toujours Persévérer
 

Discussions similaires

Réponses
5
Affichages
374

Statistiques des forums

Discussions
314 210
Messages
2 107 301
Membres
109 798
dernier inscrit
NAJI2005