OVH Cloud OVH Cloud

Case à cocher

21 réponses
Avatar
David 02
Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D, E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela rempli la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon vide. Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et recherche la
première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David

10 réponses

1 2 3
Avatar
Denis Michon
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne 6 ?


Salutations!



"David 02" a écrit dans le message de news:bobm6k$jh0$
Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D, E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela rempli la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon vide. Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et recherche la
première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David
Avatar
David 02
Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors ligne 7 avec
un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message de
news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne 6 ?


Salutations!



"David 02" a écrit dans le message de
news:bobm6k$jh0$

Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D, E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela rempli
la

date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon vide. Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et recherche
la

première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David





Avatar
Denis Michon
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec des valeurs de 1 à 12 dans l'ordre que tu aimerais
voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date ayant un format date valide ! Pour être sûr que le
format entré est celui attendu, tu peux utilisé un autre formulaire dans lequel tu insères un contrôle "Calendrier" .
Sur évènement "Enter" du textbox1, le calendrier apparaît et l'usager est appelé à sélectionner une date par un clic sur
le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message de news:bobr5u$pqs$
Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors ligne 7 avec
un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message de
news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne 6 ?


Salutations!



"David 02" a écrit dans le message de
news:bobm6k$jh0$

Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D, E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela rempli
la

date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon vide. Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et recherche
la

première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David





Avatar
David 02
Bonjour et merci denis

je vais essayer tout cela

salutations et bonne journée

david


"Denis Michon" a écrit dans le message de
news:k0fqb.10484$
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec des
valeurs de 1 à 12 dans l'ordre que tu aimerais

voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date ayant un
format date valide ! Pour être sûr que le

format entré est celui attendu, tu peux utilisé un autre formulaire dans
lequel tu insères un contrôle "Calendrier" .

Sur évènement "Enter" du textbox1, le calendrier apparaît et l'usager est
appelé à sélectionner une date par un clic sur

le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message de
news:bobr5u$pqs$

Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors ligne 7
avec

un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message de
news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne 6 ?


Salutations!



"David 02" a écrit dans le message de
news:bobm6k$jh0$

Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D, E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une
date.


Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela
rempli


la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon vide.
Puis


ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et recherche
la

première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David










Avatar
David 02
il y a un problème sur cette ligne

For Each c In UserForm1.Controls

merci

"David 02" a écrit dans le message de
news:bocpna$s4l$
Bonjour et merci denis

je vais essayer tout cela

salutations et bonne journée

david


"Denis Michon" a écrit dans le message de
news:k0fqb.10484$
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec
des


valeurs de 1 à 12 dans l'ordre que tu aimerais
voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date ayant
un


format date valide ! Pour être sûr que le
format entré est celui attendu, tu peux utilisé un autre formulaire dans
lequel tu insères un contrôle "Calendrier" .

Sur évènement "Enter" du textbox1, le calendrier apparaît et l'usager
est


appelé à sélectionner une date par un clic sur
le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message de
news:bobr5u$pqs$

Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors ligne 7
avec

un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message de
news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne 6 ?


Salutations!



"David 02" a écrit dans le message de
news:bobm6k$jh0$

Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire
ceci.




Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D, E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une
date.


Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela
rempli


la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon vide.
Puis


ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et
recherche



la
première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David














Avatar
papou
Bonjour David
Si le message est "variable non définie"
tu ajoutes ceci avant le "For Each c..." :
Dim c As MSForms.Control
Cordialement
Pascal

"David 02" a écrit dans le message de
news:bocufm$i2o$
il y a un problème sur cette ligne

For Each c In UserForm1.Controls

merci

"David 02" a écrit dans le message de
news:bocpna$s4l$
Bonjour et merci denis

je vais essayer tout cela

salutations et bonne journée

david


"Denis Michon" a écrit dans le message de
news:k0fqb.10484$
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec
des


valeurs de 1 à 12 dans l'ordre que tu aimerais
voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date
ayant



un
format date valide ! Pour être sûr que le
format entré est celui attendu, tu peux utilisé un autre formulaire
dans



lequel tu insères un contrôle "Calendrier" .
Sur évènement "Enter" du textbox1, le calendrier apparaît et l'usager
est


appelé à sélectionner une date par un clic sur
le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message de
news:bobr5u$pqs$

Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors ligne 7
avec

un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message de
news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne 6
?






Salutations!



"David 02" a écrit dans le message
de




news:bobm6k$jh0$
Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire
ceci.




Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à
N30




Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C, D,
E,




etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre une
date.


Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela
rempli


la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon
vide.




Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic sur
valider, qu'une procédure recherche si la date n'existe pas et
recherche



la
première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David


















Avatar
David 02
bonjour et merci papou
plus de message d'erreur

par contre denis me marque :

"Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec des
valeurs de 1 à 12 dans l'ordre que tu aimerais voir remplir tes cellules sur
la même ligne."

C'est a dire ? ou ?

merci de ton aide



"papou" <nspm> a écrit dans le message de
news:
Bonjour David
Si le message est "variable non définie"
tu ajoutes ceci avant le "For Each c..." :
Dim c As MSForms.Control
Cordialement
Pascal

"David 02" a écrit dans le message de
news:bocufm$i2o$
il y a un problème sur cette ligne

For Each c In UserForm1.Controls

merci

"David 02" a écrit dans le message de
news:bocpna$s4l$
Bonjour et merci denis

je vais essayer tout cela

salutations et bonne journée

david


"Denis Michon" a écrit dans le message de
news:k0fqb.10484$
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag"
avec




des
valeurs de 1 à 12 dans l'ordre que tu aimerais
voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date
ayant



un
format date valide ! Pour être sûr que le
format entré est celui attendu, tu peux utilisé un autre formulaire
dans



lequel tu insères un contrôle "Calendrier" .
Sur évènement "Enter" du textbox1, le calendrier apparaît et
l'usager




est
appelé à sélectionner une date par un clic sur
le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message
de




news:bobr5u$pqs$
Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors ligne
7




avec
un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message de
news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même ligne
6





?


Salutations!



"David 02" a écrit dans le message
de




news:bobm6k$jh0$
Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment faire
ceci.




Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6 à
N30




Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C,
D,





E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre
une





date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm cela
rempli


la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon
vide.




Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic
sur





valider, qu'une procédure recherche si la date n'existe pas et
recherche



la
première ligne vide pour copier les nouvelles données en dessous.

Merci de votre aide
Salutations
David






















Avatar
David 02
bonjour à tous
j'ai rempli mais case à cocher de cette façon

name = CheckBox1 Tag = 1
name = CheckBox2 Tag = 2
etc
ceci est correcte ?
et cela ne fonctionne pas

merci de votre aide

"David 02" a écrit dans le message de
news:bocvr4$s5o$
bonjour et merci papou
plus de message d'erreur

par contre denis me marque :

"Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec des
valeurs de 1 à 12 dans l'ordre que tu aimerais voir remplir tes cellules
sur

la même ligne."

C'est a dire ? ou ?

merci de ton aide



"papou" <nspm> a écrit dans le message de
news:
Bonjour David
Si le message est "variable non définie"
tu ajoutes ceci avant le "For Each c..." :
Dim c As MSForms.Control
Cordialement
Pascal

"David 02" a écrit dans le message de
news:bocufm$i2o$
il y a un problème sur cette ligne

For Each c In UserForm1.Controls

merci

"David 02" a écrit dans le message de
news:bocpna$s4l$
Bonjour et merci denis

je vais essayer tout cela

salutations et bonne journée

david


"Denis Michon" a écrit dans le message de
news:k0fqb.10484$
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag"
avec




des
valeurs de 1 à 12 dans l'ordre que tu aimerais
voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date
ayant



un
format date valide ! Pour être sûr que le
format entré est celui attendu, tu peux utilisé un autre
formulaire





dans
lequel tu insères un contrôle "Calendrier" .
Sur évènement "Enter" du textbox1, le calendrier apparaît et
l'usager




est
appelé à sélectionner une date par un clic sur
le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message
de




news:bobr5u$pqs$
Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors
ligne





7
avec
un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message
de





news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même
ligne






6
?


Salutations!



"David 02" a écrit dans le
message






de
news:bobm6k$jh0$
Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment
faire






ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6
à






N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C,
D,





E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre
une





date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm
cela






rempli
la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon
vide.




Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic
sur





valider, qu'une procédure recherche si la date n'existe pas et
recherche



la
première ligne vide pour copier les nouvelles données en
dessous.







Merci de votre aide
Salutations
David


























Avatar
Denis Michon
Bonjour David,

Si j'ai bien compris ce que tu voulais faire :

Un bouton de commande , un textbox et 12 boutons checkbox

Si tu cliques sur le bouton de commande :

Range("B6") = textbox1
range("C6") = checkbox1.value
Range("D6")= Checkbox2.value
.../.... pour les 12 checkbox...


En mode création, chaque checkbox à une propriété "Tag" . à chacun d'eux, tu définis une valeur de 1 à 12 selon l'ordre
dans lequel les cellules de la ligne 6 vont être rempli de c6 à n6. C6 associé au Tag du checkbox valant 1 and so on ..

Dans la procédure, il y a une erreur "Majeur" que tu as peut êre décelé, j'ai utilisé l'objet "OptionButton" au lieu des
"Checkbox" sur cette ligne de code :

If TypeOf c Is MSForms.OptionButton Then

Remplace ceci par :

If TypeOf c Is MSForms.CheckBox Then



Salutations!




"David 02" a écrit dans le message de news:bod8hs$7bt$
bonjour à tous
j'ai rempli mais case à cocher de cette façon

name = CheckBox1 Tag = 1
name = CheckBox2 Tag = 2
etc
ceci est correcte ?
et cela ne fonctionne pas

merci de votre aide

"David 02" a écrit dans le message de
news:bocvr4$s5o$
bonjour et merci papou
plus de message d'erreur

par contre denis me marque :

"Pour les 12 boutons d'options, tu vas définir la propriété "Tag" avec des
valeurs de 1 à 12 dans l'ordre que tu aimerais voir remplir tes cellules
sur

la même ligne."

C'est a dire ? ou ?

merci de ton aide



"papou" <nspm> a écrit dans le message de
news:
Bonjour David
Si le message est "variable non définie"
tu ajoutes ceci avant le "For Each c..." :
Dim c As MSForms.Control
Cordialement
Pascal

"David 02" a écrit dans le message de
news:bocufm$i2o$
il y a un problème sur cette ligne

For Each c In UserForm1.Controls

merci

"David 02" a écrit dans le message de
news:bocpna$s4l$
Bonjour et merci denis

je vais essayer tout cela

salutations et bonne journée

david


"Denis Michon" a écrit dans le message de
news:k0fqb.10484$
Bonsoir David,

Essaie ceci :

Pour faire fonctionner cette procédure :

Pour les 12 boutons d'options, tu vas définir la propriété "Tag"
avec




des
valeurs de 1 à 12 dans l'ordre que tu aimerais
voir remplir tes cellules sur la même ligne.

Le format saisie dans le textbox doit être reconnu comme une date
ayant



un
format date valide ! Pour être sûr que le
format entré est celui attendu, tu peux utilisé un autre
formulaire





dans
lequel tu insères un contrôle "Calendrier" .
Sur évènement "Enter" du textbox1, le calendrier apparaît et
l'usager




est
appelé à sélectionner une date par un clic sur
le calendrier qui a son tour alimentera le textbox.


.------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, A As Long

If IsDate(Me.TextBox1) = True Then
With Worksheets("Feuil1")
If .Range("B6") = "" Then
.Range("B6").NumberFormat = "dd/mm/YY"
.Range("B6") = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B6").Resize(1, 13)
Else
A = .Range("B65536").End(xlUp)(2).Row
.Range("B" & A).NumberFormat = "dd/mm/YY"
.Range("B" & A) = Format(Me.TextBox1, "dd/mm/YY")
Set Rg = .Range("B" & A).Resize(1, 13)
End If
For Each c In UserForm1.Controls
If TypeOf c Is MSForms.OptionButton Then
Select Case c.Tag
Case 1
Rg(, 2) = c.Value
Case 2
Rg(, 3) = c.Value
Case 3
Rg(, 4) = c.Value
Case 4
Rg(, 5) = c.Value
Case 5
Rg(, 5) = c.Value

'.../12 fois
End Select
End If
Next
End With
Else
MsgBox "La date saisie n'est pas reconnu."
End If

End Sub
.------------------------------


Salutations!




"David 02" a écrit dans le message
de




news:bobr5u$pqs$
Bonsoir denis

A ta réponse : non

Si ligne 6 = quelque chose et <> de la valeur de TextBox alors
ligne





7
avec
un maxi à ligne 30

merci de ton aide

salutations


"Denis Michon" a écrit dans le message
de





news:X_dqb.10476$
Bonjour David,

Est-ce que la validation doit se faire toujours dans la même
ligne






6
?


Salutations!



"David 02" a écrit dans le
message






de
news:bobm6k$jh0$
Bonsoir à tous

Etant débutant en VB. Quelqu'un peut il m'expliquer comment
faire






ceci.

Une feuille "Annexe". Dans celui ci, j'ai fais un tableau de B6
à






N30
Un UserForm. Dans celui ci, j'ai mis 12 cases à cocher.
Chaque case à cocher correspond à une colonne de ma feuille. (C,
D,





E,
etc..)
Dans cet UserForm, il y a aussi un TextBox dans lequel je rentre
une





date.
Ce TextBox correspond à la colonne B.
J'aimerais après clic sur le bonton "Valider" de mon UserForm
cela






rempli
la
date dans B6 et le résultat
des cases à cocher à droite de cette date. Cocher = "oui" sinon
vide.




Puis
ferme l'UserForm
Quand je reviens sur celui ci pour le remplir à nouveau, je clic
sur





valider, qu'une procédure recherche si la date n'existe pas et
recherche



la
première ligne vide pour copier les nouvelles données en
dessous.







Merci de votre aide
Salutations
David


























Avatar
David 02
bonsoir denis

Un grand merci d'avoir consacrer de ton temps à mon projet (je n'oubli pas
les autres)
mais également à l'explication sur la version française et anglaise un peu
plus haut que j'ai encore du mal à saisir ! ! ! je récupère le fil et on
reviens dessus !!!!

Concernant ce projet

En remplacant "OptionButton" par "CheckBox" cela fonctionne très bien.

Y a t'il un moyen pour : quand une case est cochée cela procure un "x" et si
décochée cela procure un "Abs"
Par défaut cela procure un "VRAI" ou "FAUX"

Egalement si la date rentrée dans TxtDate existe déjà dans la colonne B cela
m'en informe et me demande ou pas de modifier cette ligne. C'est à dire
impossibilite que la colonne B reçoive deux valeurs identiques soit :
TxtDate = à une valeur de la colonne B alors UserForm "Cette date existe
déjà. Voulez vous modifier les données de cette date" Si OUI alors
modification de cette ligne, si NON retour à l'UserForm.

J'en demande peut être beaucoup, non ?
Mon projet est disponible si tu veux y jeter un oeil ! ! !

Encore merci
Salutations
1 2 3