Affecter un nom à une checkbox

Résolu/Fermé
grace - 19 juil. 2011 à 13:34
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 - 19 juil. 2011 à 15:14
Bonjour,

J'aimerais savoir comment on affecte une valeur à une checkbox.
En effet lorsque la checkbox est cochée (checkbox1.value=True) j'aimerais pouvoir dire checkbox1.value=Machine.
Mais ca ne marche pas aussi facilement...

Car ensuite je veux pouvoir utiliser le mot machine pour pouvoir faire une recherche dans un registre et copier toutes les lignes donc la première cellule contient le mot machine.

Merci d'avance, j'utilise VBA avec Excel 2003.

PS : en réalité j'ai 11 checkbox avec 11noms de machine différents et je veux faire la recherche en fonction des machines cochées par l'utilisateur.

4 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 13:38
bonjour,

au lieu d'appeler checkbox1, tu peux la nommer machine1.

Pour cela, tu vas dans propriété, dans Name, tu as checkbox1. Au lieu de checkbox1, mets le nom de ta machine.

Ou alors utilises des varaibles :
if checkbox1.value =true then
machine1 = Machine
end if

if checkbox2.value = true then
machine2 = machine
end if
0
Merci pour ta réponse mais j'avais déja essayé et cela ne marche pas.
Le principe est la recherche d'un défaut parmis un registre et la création d'un tableau récapitulatif en fonction de ce que l'utilisateur à choisi.
Dans ma userform principale, la personne choisi dans une liste déroulante le défaut qui l'intéresse. Des checkbox sont automatiquement activées. Elles correspondent aux machines concernées par ce défaut. L'utilisateur peut (à souhait) décocher une ou plusieurs machines.
Le but est d'éditer un tableau récapitulatif des données en fonction du défaut choisi (combobox) et des machines sélectionnées (checkbox) en faisant une recherche dans le registre d'origine.
Je suis arrivée a éditer un tableau récap en fonction du défaut choisi mais je n'arrive pas à insérer le parametre checkbox sélectionnée.

Ci-dessous le code qui fonctionne :

Private Sub CommandButton1_Click()
'affichage des feuilles concernées et vérification des champs
Sheets("Recap").Visible = True
If Cathégories = "" Then
MsgBox "Sélectionner une catégorie de défauts dans la liste déroulante"
ElseIf défauts = "" Then
MsgBox "Sélectionner un défauts qualité dans la liste déroulante"
End If

Dim i As Integer
Dim n As Integer
n = 3
i = 2

MsgBox "Veuillez patienter pendant le traitement..."
Application.Cursor = xlWait 'affiche le sablier

'Suppression des données du récap
Worksheets("Recap").Range("A3:V1402").ClearContents

If défauts <> "" Then
n = 3
i = 2
Do While Cells(i, 1) <> ""

If Cells(i, 2) = défauts And Cells(i, 1) = TOMI Then
Worksheets("Registre").Select
Worksheets("Registre").Rows(i).Select
Worksheets("Registre").Rows(i).Copy
Worksheets("Recap").Select
Worksheets("Recap").Rows(n).Select
ActiveSheet.Paste
n = n + 1
Worksheets("Registre").Select

End If
i = i + 1
Loop


'Trier les données par machine
Worksheets("Recap").Select
Range("A2:V1403").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

End If

Application.Cursor = xlDefault 'remet le curseur par défaut

End Sub

Merci pour ton aide ;-)
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 14:10
Re,

voici une solution :crées une feuille que tu appelles Machines :





Private Sub CommandButton1_Click()

' préparation des machines
j=1
sheets("Machines").columns(1).clear

if checkbox1.value = true then
sheets("Machines").cells(j,1) = checkbox1.caption
end if

if checkbox2.value = true then
sheets("Machines").cells(j,1) = checkbox2.caption
end if



'affichage des feuilles concernées et vérification des champs
Sheets("Recap").Visible = True
If Cathégories = "" Then
MsgBox "Sélectionner une catégorie de défauts dans la liste déroulante"
ElseIf défauts = "" Then
MsgBox "Sélectionner un défauts qualité dans la liste déroulante"
End If

Dim i As Integer
Dim n As Integer
n = 3
i = 2

MsgBox "Veuillez patienter pendant le traitement..."
Application.Cursor = xlWait 'affiche le sablier

'Suppression des données du récap
Worksheets("Recap").Range("A3:V1402").ClearContents

If défauts <> "" Then
n = 3
i = 2
Do While Cells(i, 1) <> ""

If Cells(i, 2) = défauts then
j=1
do while sheets(j,1)<> ""
if cells(i,1) = sheets("Machines").cells(j,1) then
Worksheets("Registre").Select
Worksheets("Registre").Rows(i).Select
Worksheets("Registre").Rows(i).Copy
Worksheets("Recap").Select
Worksheets("Recap").Rows(n).Select
ActiveSheet.Paste
n = n + 1
Worksheets("Registre").Select
end if
j=j+1
loop

End If
i = i + 1
Loop


'Trier les données par machine
Worksheets("Recap").Select
Range("A2:V1403").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

End If

Application.Cursor = xlDefault 'remet le curseur par défaut

End Sub
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 14:11
do while sheets(j,1)<> "" à remplacer par do while sheets("Machines").cells(j,1) <>""
0
ok merci!
Je vais essayer
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 14:19
Je viens de m'apercevoir d'une petite erreur et à adapter aux 11 autres :
if checkbox1.value = true then
sheets("Machines").cells(j,1) = checkbox1.caption
j=j+1
end if

if checkbox2.value = true then
sheets("Machines").cells(j,1) = checkbox2.caption
j=j+1
end if

....

if checkbox10.value = true then
sheets("Machines").cells(j,1) = checkbox10.caption
j=j+1
end if

if checkbox11.value = true then
sheets("Machines").cells(j,1) = checkbox11.caption
j=j+1
end if
0
merci!
Ca marche quand j'en mets une mais pas quand il y en a plusieurs à la suite???
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 14:54
c'est la correction à apporter. je te donne ton code en entier
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 14:55
Private Sub CommandButton1_Click()

' préparation des machines
j=1
sheets("Machines").columns(1).clear

if checkbox1.value = true then
sheets("Machines").cells(j,1) = checkbox1.caption
j=j+1
end if

if checkbox2.value = true then
sheets("Machines").cells(j,1) = checkbox2.caption
j=j+1
end if

if checkbox3.value = true then
sheets("Machines").cells(j,1) = checkbox3.caption
j=j+1
end if

if checkbox4.value = true then
sheets("Machines").cells(j,1) = checkbox4.caption
j=j+1
end if

if checkbox5.value = true then
sheets("Machines").cells(j,1) = checkbox5.caption
j=j+1
end if

if checkbox6.value = true then
sheets("Machines").cells(j,1) = checkbox6.caption
j=j+1
end if

if checkbox7.value = true then
sheets("Machines").cells(j,1) = checkbox7.caption
j=j+1
end if

if checkbox8.value = true then
sheets("Machines").cells(j,1) = checkbox8.caption
j=j+1
end if

if checkbox9.value = true then
sheets("Machines").cells(j,1) = checkbox9.caption
j=j+1
end if

if checkbox10.value = true then
sheets("Machines").cells(j,1) = checkbox10.caption
j=j+1
end if

if checkbox11.value = true then
sheets("Machines").cells(j,1) = checkbox11.caption
j=j+1
end if

'affichage des feuilles concernées et vérification des champs
Sheets("Recap").Visible = True
If Cathégories = "" Then
MsgBox "Sélectionner une catégorie de défauts dans la liste déroulante"
ElseIf défauts = "" Then
MsgBox "Sélectionner un défauts qualité dans la liste déroulante"
End If

Dim i As Integer
Dim n As Integer
n = 3
i = 2

MsgBox "Veuillez patienter pendant le traitement..."
Application.Cursor = xlWait 'affiche le sablier

'Suppression des données du récap
Worksheets("Recap").Range("A3:V1402").ClearContents

If défauts <> "" Then
n = 3
i = 2
Do While Cells(i, 1) <> ""

If Cells(i, 2) = défauts then
j=1
do while sheets("Machines").cells(j,1)<> ""
if cells(i,1) = sheets("Machines").cells(j,1) then
Worksheets("Registre").Select
Worksheets("Registre").Rows(i).Select
Worksheets("Registre").Rows(i).Copy
Worksheets("Recap").Select
Worksheets("Recap").Rows(n).Select
ActiveSheet.Paste
n = n + 1
Worksheets("Registre").Select
end if
j=j+1
loop

End If
i = i + 1
Loop


'Trier les données par machine
Worksheets("Recap").Select
Range("A2:V1403").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A3"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

End If

Application.Cursor = xlDefault 'remet le curseur par défaut

End Sub
0
Erreur de ma part, tu as raison!
Ca focntionne nickel!!!
Merci beaucoup!
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
19 juil. 2011 à 15:14
tu peux le mettre à resolu stp (juste en dessous du tire de ton message. merci
0