Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
Re à tous
je m'apercois que le click renvoie l'index de l'élément du listbox qui est choisi
petite adaptation à faire par un plus calé que moi
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
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…