Bonjour,
voilà je fais un formulaire et dans celui-ci j'ai une catégorie "fruit".
Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêche et
figue.
Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits,
legumes, viandes, poissons.
J'aimerais avoir la possibilité :
1/ de cocher 3 cases au maximum pour les fruits
2/ de cocher 2 cases au maximum pour la catégorie d'achat
2/ d'insérer les valeurs à la suite dans la même case excel sous la forme
(une case pour les fruits, une autre case pour type d'achat) :
banane / poire / figue
et
viande / legumes
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Céline
Bonjour Paflolo
qu'entends tu par catégorie? j'ai essayé de te monter qqch qui sera "avec les moyens du bord". Ca marche, mais c surement pas optimisé Je suis partie du principe que sur mon userfom1 il n'y avait qu'une catégorie de checkbox (genre que les fruits) et que les différents checkbox s'apelaient checkbox1....n (le nom par défaut) Il faudra donc revoir le for each outil in... en fonction de tes catégories
Voici ce que je te propose : dans chacune des procédures checkbox_click (double clic sur le chckbox en mode création) tu écris : Mamacro (pour appeler la proc Mamacro)
et ensuite : Sub mamacro()
Dim outil As Control
Dim i As Integer i = 0
For Each outil In UserForm1.Controls If Left(outil.Name, 8) = "CheckBox" Then If outil.Value = True Then i = i + 1 End If Next outil
If i > 2 Then For Each outil In UserForm1.Controls If Left(outil.Name, 8) = "CheckBox" Then If outil.Value = False Then outil.Enabled = False End If Next outil ElseIf i < 3 Then For Each outil In UserForm1.Controls If Left(outil.Name, 8) = "CheckBox" Then If outil.Value = False Then outil.Enabled = True End If Next outil End If
End Sub
Voila, j'espère que ca te convient? si besoin + de détails n'hésite pas bonne journée Céline
Bonjour, voilà je fais un formulaire et dans celui-ci j'ai une catégorie "frui t". Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêch e et figue. Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits, legumes, viandes, poissons. J'aimerais avoir la possibilité : 1/ de cocher 3 cases au maximum pour les fruits 2/ de cocher 2 cases au maximum pour la catégorie d'achat 2/ d'insérer les valeurs à la suite dans la même case excel sous l a forme (une case pour les fruits, une autre case pour type d'achat) : banane / poire / figue et viande / legumes
Merci de votre aide précieuse!
Bonjour Paflolo
qu'entends tu par catégorie?
j'ai essayé de te monter qqch qui sera "avec les moyens du bord". Ca
marche, mais c surement pas optimisé
Je suis partie du principe que sur mon userfom1 il n'y avait qu'une
catégorie de checkbox (genre que les fruits) et que les différents
checkbox s'apelaient checkbox1....n (le nom par défaut)
Il faudra donc revoir le for each outil in... en fonction de tes
catégories
Voici ce que je te propose :
dans chacune des procédures checkbox_click (double clic sur le chckbox
en mode création)
tu écris :
Mamacro (pour appeler la proc Mamacro)
et ensuite :
Sub mamacro()
Dim outil As Control
Dim i As Integer
i = 0
For Each outil In UserForm1.Controls
If Left(outil.Name, 8) = "CheckBox" Then
If outil.Value = True Then i = i + 1
End If
Next outil
If i > 2 Then
For Each outil In UserForm1.Controls
If Left(outil.Name, 8) = "CheckBox" Then
If outil.Value = False Then outil.Enabled = False
End If
Next outil
ElseIf i < 3 Then
For Each outil In UserForm1.Controls
If Left(outil.Name, 8) = "CheckBox" Then
If outil.Value = False Then outil.Enabled = True
End If
Next outil
End If
End Sub
Voila, j'espère que ca te convient? si besoin + de détails n'hésite
pas
bonne journée
Céline
Bonjour,
voilà je fais un formulaire et dans celui-ci j'ai une catégorie "frui t".
Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêch e et
figue.
Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits,
legumes, viandes, poissons.
J'aimerais avoir la possibilité :
1/ de cocher 3 cases au maximum pour les fruits
2/ de cocher 2 cases au maximum pour la catégorie d'achat
2/ d'insérer les valeurs à la suite dans la même case excel sous l a forme
(une case pour les fruits, une autre case pour type d'achat) :
banane / poire / figue
et
viande / legumes
qu'entends tu par catégorie? j'ai essayé de te monter qqch qui sera "avec les moyens du bord". Ca marche, mais c surement pas optimisé Je suis partie du principe que sur mon userfom1 il n'y avait qu'une catégorie de checkbox (genre que les fruits) et que les différents checkbox s'apelaient checkbox1....n (le nom par défaut) Il faudra donc revoir le for each outil in... en fonction de tes catégories
Voici ce que je te propose : dans chacune des procédures checkbox_click (double clic sur le chckbox en mode création) tu écris : Mamacro (pour appeler la proc Mamacro)
et ensuite : Sub mamacro()
Dim outil As Control
Dim i As Integer i = 0
For Each outil In UserForm1.Controls If Left(outil.Name, 8) = "CheckBox" Then If outil.Value = True Then i = i + 1 End If Next outil
If i > 2 Then For Each outil In UserForm1.Controls If Left(outil.Name, 8) = "CheckBox" Then If outil.Value = False Then outil.Enabled = False End If Next outil ElseIf i < 3 Then For Each outil In UserForm1.Controls If Left(outil.Name, 8) = "CheckBox" Then If outil.Value = False Then outil.Enabled = True End If Next outil End If
End Sub
Voila, j'espère que ca te convient? si besoin + de détails n'hésite pas bonne journée Céline
Bonjour, voilà je fais un formulaire et dans celui-ci j'ai une catégorie "frui t". Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêch e et figue. Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits, legumes, viandes, poissons. J'aimerais avoir la possibilité : 1/ de cocher 3 cases au maximum pour les fruits 2/ de cocher 2 cases au maximum pour la catégorie d'achat 2/ d'insérer les valeurs à la suite dans la même case excel sous l a forme (une case pour les fruits, une autre case pour type d'achat) : banane / poire / figue et viande / legumes
Merci de votre aide précieuse!
lSteph
Bonjour, Voici qui devrait gèrer les deux listes selon ce que j'ai compris. j'ai utilisé la propriété groupename et un module de classe pour les checkbox: http://cjoint.com/?kkrLzwVPxH
Cordialement.
lSteph
Bonjour, voilà je fais un formulaire et dans celui-ci j'ai une catégorie "frui t". Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêch e et figue. Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits, legumes, viandes, poissons. J'aimerais avoir la possibilité : 1/ de cocher 3 cases au maximum pour les fruits 2/ de cocher 2 cases au maximum pour la catégorie d'achat 2/ d'insérer les valeurs à la suite dans la même case excel sous l a forme (une case pour les fruits, une autre case pour type d'achat) : banane / poire / figue et viande / legumes
Merci de votre aide précieuse!
Bonjour,
Voici qui devrait gèrer les deux listes selon ce que j'ai compris.
j'ai utilisé la propriété groupename et un module de classe pour
les checkbox:
http://cjoint.com/?kkrLzwVPxH
Cordialement.
lSteph
Bonjour,
voilà je fais un formulaire et dans celui-ci j'ai une catégorie "frui t".
Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêch e et
figue.
Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits,
legumes, viandes, poissons.
J'aimerais avoir la possibilité :
1/ de cocher 3 cases au maximum pour les fruits
2/ de cocher 2 cases au maximum pour la catégorie d'achat
2/ d'insérer les valeurs à la suite dans la même case excel sous l a forme
(une case pour les fruits, une autre case pour type d'achat) :
banane / poire / figue
et
viande / legumes
Bonjour, Voici qui devrait gèrer les deux listes selon ce que j'ai compris. j'ai utilisé la propriété groupename et un module de classe pour les checkbox: http://cjoint.com/?kkrLzwVPxH
Cordialement.
lSteph
Bonjour, voilà je fais un formulaire et dans celui-ci j'ai une catégorie "frui t". Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêch e et figue. Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits, legumes, viandes, poissons. J'aimerais avoir la possibilité : 1/ de cocher 3 cases au maximum pour les fruits 2/ de cocher 2 cases au maximum pour la catégorie d'achat 2/ d'insérer les valeurs à la suite dans la même case excel sous l a forme (une case pour les fruits, une autre case pour type d'achat) : banane / poire / figue et viande / legumes
Merci de votre aide précieuse!
lSteph
Bonjour, pas pris le temps hier, les cjoint disparaissent, le code reste! Préalable: Dans vbe insérer un module standard puis un userform faire un premier alignement de Checkbox fenêtre des propriétés (en groupe des checkbox) règler la propriété left, et surtout le groupName Groupe1 Ensuite isolément pour chaque indiquer les caption (abricot,banane...etc) Faire idem pour ..Groupe2 Ajouter 2 boutons mettre leur propriété Name: Ok Fermer
insérer un module de classe puis dans le menu affichage fenêtre des propriétés renommer le module MyChbClass '''''''''''''''''''******MyChbClass******* Option Explicit Public WithEvents mychbx As MSForms.CheckBox
Private Sub MyChBx_Click()
Grp = mychbx.GroupName If Grp = "Groupe1" Then maxGrp = 3 Else maxGrp = 2 End If If comptCheck() >= maxGrp Then verrouille Else deverrouille End If
End Sub
'''''''''''''''''''******Code Userform1******* Option Explicit Private meschbx() As New MyChbClass
Private Sub Ok_Click() Dim ctl As MSForms.CheckBox, txt1 As String, txt2 As String txt1 = "" txt2 = "" On Error Resume Next For Each ctl In UserForm1.Controls If ctl.GroupName = "Groupe1" And ctl Then txt1 = txt1 & " " & ctl.Caption If ctl.GroupName = "Groupe2" And ctl Then txt2 = txt2 & " " & ctl.Caption Next On Error GoTo 0 [a1] = txt1 [a2] = txt2 End Sub
Private Sub Fermer_Click() Unload Me End Sub
Private Sub UserForm_Initialize() Dim elt As Control, i& For Each elt In Me.Controls If TypeName(elt) = "CheckBox" Then ReDim Preserve meschbx(0 To i) Set meschbx(i).mychbx = elt i = i + 1 End If Next elt End Sub
Private Sub UserForm_Terminate() Dim i& For i = 0& To UBound(meschbx) Set meschbx(i) = Nothing Next i End Sub
'''''''''''''''''*********dans module Standard******** Public maxGrp As Byte Public Grp As String
Public Function comptCheck() Dim elt As Control comptCheck = 0 For Each elt In UserForm1.Controls If TypeName(elt) = "CheckBox" Then If elt.GroupName = Grp And elt.Value Then comptCheck = comptCheck + 1 End If Next End Function
Public Sub verrouille() Dim elt As Control For Each elt In UserForm1.Controls If TypeName(elt) = "CheckBox" Then If elt.GroupName = Grp Then elt.Enabled = elt.Value End If
Next End Sub Public Sub deverrouille() Dim elt As Control For Each elt In UserForm1.Controls If TypeName(elt) = "CheckBox" Then If elt.GroupName = Grp Then elt.Enabled = True End If Next End Sub
'Cordialement
'lSteph
"Paflolo" a écrit dans le message de news:
Bonjour, voilà je fais un formulaire et dans celui-ci j'ai une catégorie "fruit". Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêche et figue. Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits, legumes, viandes, poissons. J'aimerais avoir la possibilité : 1/ de cocher 3 cases au maximum pour les fruits 2/ de cocher 2 cases au maximum pour la catégorie d'achat 2/ d'insérer les valeurs à la suite dans la même case excel sous la forme (une case pour les fruits, une autre case pour type d'achat) : banane / poire / figue et viande / legumes
Merci de votre aide précieuse!
Bonjour,
pas pris le temps hier, les cjoint disparaissent, le code reste!
Préalable:
Dans vbe insérer un module standard puis un userform faire un premier
alignement de Checkbox
fenêtre des propriétés (en groupe des checkbox) règler la propriété left, et
surtout le groupName Groupe1
Ensuite isolément pour chaque indiquer les caption (abricot,banane...etc)
Faire idem pour ..Groupe2
Ajouter 2 boutons mettre leur propriété Name: Ok Fermer
insérer un module de classe puis dans le menu affichage fenêtre des
propriétés renommer le module MyChbClass
'''''''''''''''''''******MyChbClass*******
Option Explicit
Public WithEvents mychbx As MSForms.CheckBox
Private Sub MyChBx_Click()
Grp = mychbx.GroupName
If Grp = "Groupe1" Then
maxGrp = 3
Else
maxGrp = 2
End If
If comptCheck() >= maxGrp Then
verrouille
Else
deverrouille
End If
End Sub
'''''''''''''''''''******Code Userform1*******
Option Explicit
Private meschbx() As New MyChbClass
Private Sub Ok_Click()
Dim ctl As MSForms.CheckBox, txt1 As String, txt2 As String
txt1 = ""
txt2 = ""
On Error Resume Next
For Each ctl In UserForm1.Controls
If ctl.GroupName = "Groupe1" And ctl Then txt1 = txt1 & " " &
ctl.Caption
If ctl.GroupName = "Groupe2" And ctl Then txt2 = txt2 & " " &
ctl.Caption
Next
On Error GoTo 0
[a1] = txt1
[a2] = txt2
End Sub
Private Sub Fermer_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim elt As Control, i&
For Each elt In Me.Controls
If TypeName(elt) = "CheckBox" Then
ReDim Preserve meschbx(0 To i)
Set meschbx(i).mychbx = elt
i = i + 1
End If
Next elt
End Sub
Private Sub UserForm_Terminate()
Dim i&
For i = 0& To UBound(meschbx)
Set meschbx(i) = Nothing
Next i
End Sub
'''''''''''''''''*********dans module Standard********
Public maxGrp As Byte
Public Grp As String
Public Function comptCheck()
Dim elt As Control
comptCheck = 0
For Each elt In UserForm1.Controls
If TypeName(elt) = "CheckBox" Then
If elt.GroupName = Grp And elt.Value Then comptCheck =
comptCheck + 1
End If
Next
End Function
Public Sub verrouille()
Dim elt As Control
For Each elt In UserForm1.Controls
If TypeName(elt) = "CheckBox" Then
If elt.GroupName = Grp Then elt.Enabled = elt.Value
End If
Next
End Sub
Public Sub deverrouille()
Dim elt As Control
For Each elt In UserForm1.Controls
If TypeName(elt) = "CheckBox" Then
If elt.GroupName = Grp Then elt.Enabled = True
End If
Next
End Sub
'Cordialement
'lSteph
"Paflolo" <Paflolo@discussions.microsoft.com> a écrit dans le message de
news: 74CFB822-098E-4DDE-B2C6-AC2DBACC16CF@microsoft.com...
Bonjour,
voilà je fais un formulaire et dans celui-ci j'ai une catégorie "fruit".
Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêche et
figue.
Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits,
legumes, viandes, poissons.
J'aimerais avoir la possibilité :
1/ de cocher 3 cases au maximum pour les fruits
2/ de cocher 2 cases au maximum pour la catégorie d'achat
2/ d'insérer les valeurs à la suite dans la même case excel sous la forme
(une case pour les fruits, une autre case pour type d'achat) :
banane / poire / figue
et
viande / legumes
Bonjour, pas pris le temps hier, les cjoint disparaissent, le code reste! Préalable: Dans vbe insérer un module standard puis un userform faire un premier alignement de Checkbox fenêtre des propriétés (en groupe des checkbox) règler la propriété left, et surtout le groupName Groupe1 Ensuite isolément pour chaque indiquer les caption (abricot,banane...etc) Faire idem pour ..Groupe2 Ajouter 2 boutons mettre leur propriété Name: Ok Fermer
insérer un module de classe puis dans le menu affichage fenêtre des propriétés renommer le module MyChbClass '''''''''''''''''''******MyChbClass******* Option Explicit Public WithEvents mychbx As MSForms.CheckBox
Private Sub MyChBx_Click()
Grp = mychbx.GroupName If Grp = "Groupe1" Then maxGrp = 3 Else maxGrp = 2 End If If comptCheck() >= maxGrp Then verrouille Else deverrouille End If
End Sub
'''''''''''''''''''******Code Userform1******* Option Explicit Private meschbx() As New MyChbClass
Private Sub Ok_Click() Dim ctl As MSForms.CheckBox, txt1 As String, txt2 As String txt1 = "" txt2 = "" On Error Resume Next For Each ctl In UserForm1.Controls If ctl.GroupName = "Groupe1" And ctl Then txt1 = txt1 & " " & ctl.Caption If ctl.GroupName = "Groupe2" And ctl Then txt2 = txt2 & " " & ctl.Caption Next On Error GoTo 0 [a1] = txt1 [a2] = txt2 End Sub
Private Sub Fermer_Click() Unload Me End Sub
Private Sub UserForm_Initialize() Dim elt As Control, i& For Each elt In Me.Controls If TypeName(elt) = "CheckBox" Then ReDim Preserve meschbx(0 To i) Set meschbx(i).mychbx = elt i = i + 1 End If Next elt End Sub
Private Sub UserForm_Terminate() Dim i& For i = 0& To UBound(meschbx) Set meschbx(i) = Nothing Next i End Sub
'''''''''''''''''*********dans module Standard******** Public maxGrp As Byte Public Grp As String
Public Function comptCheck() Dim elt As Control comptCheck = 0 For Each elt In UserForm1.Controls If TypeName(elt) = "CheckBox" Then If elt.GroupName = Grp And elt.Value Then comptCheck = comptCheck + 1 End If Next End Function
Public Sub verrouille() Dim elt As Control For Each elt In UserForm1.Controls If TypeName(elt) = "CheckBox" Then If elt.GroupName = Grp Then elt.Enabled = elt.Value End If
Next End Sub Public Sub deverrouille() Dim elt As Control For Each elt In UserForm1.Controls If TypeName(elt) = "CheckBox" Then If elt.GroupName = Grp Then elt.Enabled = True End If Next End Sub
'Cordialement
'lSteph
"Paflolo" a écrit dans le message de news:
Bonjour, voilà je fais un formulaire et dans celui-ci j'ai une catégorie "fruit". Je mets plusieurs cases à cocher: banane, pomme, poire, abricot, pêche et figue. Puis une autre zone où j'ai plusieurs autres cases à cocher: fruits, legumes, viandes, poissons. J'aimerais avoir la possibilité : 1/ de cocher 3 cases au maximum pour les fruits 2/ de cocher 2 cases au maximum pour la catégorie d'achat 2/ d'insérer les valeurs à la suite dans la même case excel sous la forme (une case pour les fruits, une autre case pour type d'achat) : banane / poire / figue et viande / legumes