protection et validation par bouton a cocher

Le
plaisir-perso
Bonjour,

suite a un précédant poste je me retrouve avec un classeur (office 2003) en trois feuil dont 2 sont des récaps. out fonctionne parfaitement des que j'encode une donnés dans la premiere il me les classe correctement dans les 2 autres. mnt j'ai envie d'aller plus loin et de créer 1 bouton pour protéger ma ligne je m'explique:
dans la feuil 1 il y a des donnés et des calcul de la colonne A jusque I que je rentre au fil du temps. j'ai donc envie d'y insérer un bouton a cocher (ça pas de prob) mais d'y faire agir une macro (ça ça me pose un problème, pas de l'ajouter mais de l'écrire) qui me dis:
quand je coche il me verrouille la ligne correspondant au bouton (1 bouton par ligne) et qu'il me la valide (si pas coché que la ligne soit considérer comme vide). et que le bouton soit aussi verrouillé une fois coché. (éviter les modification donc la triche)

je ne sais pas si tout cela est possible mais je crois que oui. si qq'un peut m'aider je suis preneur.

François
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LSteph
Le #20232121
On 26 sep, 15:34, plaisir-perso
Bonjour,

suite a un précédant poste je me retrouve avec un classeur (office 20 03) en
trois feuil dont 2 sont des récaps. out fonctionne parfaitement des que j'encode
une donnés dans la premiere il me les classe correctement dans les 2 au tres. mnt
j'ai envie d'aller plus loin et de créer 1 bouton pour protéger ma li gne je
m'explique:
dans la feuil 1 il y a des donnés et des calcul de la colonne A jusque I que je
rentre au fil du temps. j'ai donc envie d'y insérer un bouton a cocher (ça pas
de prob) mais d'y faire agir une macro (ça ça me pose un problème, pas de
l'ajouter mais de l'écrire) qui me dis:
quand je coche il me verrouille la ligne correspondant au bouton (1 bouto n par
ligne) et qu'il me la valide (si pas coché que la ligne soit considér er comme
vide). et que le bouton soit aussi verrouillé une fois coché. (évit er les
modification donc la triche)

je ne sais pas si tout cela est possible mais je crois que oui. si qq'un peut
m'aider je suis preneur.

François


plaisir-perso
Le #20233251
LSteph a écrit le 26/09/2009 à 15h43 :
On 26 sep, 15:34, plaisir-perso wrote:
Bonjour,

suite a un précédant poste je me retrouve avec un classeur
(office 20 03) en
trois feuil dont 2 sont des récaps. out fonctionne parfaitement des que
j'encode
une donnés dans la premiere il me les classe correctement dans les 2 au
tres. mnt
j'ai envie d'aller plus loin et de créer 1 bouton pour protéger
ma li gne je
m'explique:
dans la feuil 1 il y a des donnés et des calcul de la colonne A jusque
I que je
rentre au fil du temps. j'ai donc envie d'y insérer un bouton a cocher
(ça pas
de prob) mais d'y faire agir une macro (ça ça me pose un
problème, pas de
l'ajouter mais de l'écrire) qui me dis:
quand je coche il me verrouille la ligne correspondant au bouton (1 bouto n
par
ligne) et qu'il me la valide (si pas coché que la ligne soit
considér er comme
vide). et que le bouton soit aussi verrouillé une fois coché.
(évit er les
modification donc la triche)

je ne sais pas si tout cela est possible mais je crois que oui. si qq'un peut
m'aider je suis preneur.

François





bonjour,
heu j'avoue que cette réponse me perturbe!
c'est juste un copier coller de mon message! ou j'ai raté un lien?
François
LSteph
Le #20241421
Bonjour,

...des que j'encode
une donnés dans la premiere il me les classe correctement dans les 2 au tres. mnt



( Attention , ce n'est pas tout à fait cela, la maj des 2 autres
onglets s'effectue lorsqu'on active l'onglet).

Pour le reste, je ne souscris guère à la méthode de ces cases à
cocher , déjà une par ligne c'est franchement lourd, une case
pourrait d'emblée se retrouver verrouillée alors que l'on a pas fini
de complèter la ligne.
Par ailleurs, pourquoi suspicion de triche alors que l'on donne la
possibilité de saisir des lignes.?
Il serait possible de les verrouiller dès qu'elles sont remplies mais
rien empêcherait de les supprimer et/ou d'en
saisir d'autres (qui ne sont pas encore verrouilées).
Déjà, toute protection est contournable et dès qu'il y a du VBA on
peut aussi ne pas l'activer et rien ne fonctionne.
Si on veut distribuer un truc qui doit plus bouger, autant le mettre
en pdf (par exemple) et en garder une copie qui permettra outre toute
tentative, de conserver une trace. Enfin, si on veut le proposer pour
modification, la latitude nécessaire à cet effet devrait écarter
l'idée de protection.
Mais tel n'est peut-être pas ton but, aussi selon tout autre objectif
qui viserait uniquement un contrôle de saisie et de se préserver
d'écraser accidentellement les données déjà entrées, j'opterais b ien
pour un userform qui permette d'entrée les données dans les lignes
vides et de valider si et seulement si il y a complétude.

Qu'en dis-tu?

--
lSteph

On 26 sep, 15:34, plaisir-perso
Bonjour,

suite a un précédant poste je me retrouve avec un classeur (office 20 03) en
trois feuil dont 2 sont des récaps. out fonctionne parfaitement des que j'encode
une donnés dans la premiere il me les classe correctement dans les 2 au tres. mnt
j'ai envie d'aller plus loin et de créer 1 bouton pour protéger ma li gne je
m'explique:
dans la feuil 1 il y a des donnés et des calcul de la colonne A jusque I que je
rentre au fil du temps. j'ai donc envie d'y insérer un bouton a cocher (ça pas
de prob) mais d'y faire agir une macro (ça ça me pose un problème, pas de
l'ajouter mais de l'écrire) qui me dis:
quand je coche il me verrouille la ligne correspondant au bouton (1 bouto n par
ligne) et qu'il me la valide (si pas coché que la ligne soit considér er comme
vide). et que le bouton soit aussi verrouillé une fois coché. (évit er les
modification donc la triche)

je ne sais pas si tout cela est possible mais je crois que oui. si qq'un peut
m'aider je suis preneur.

François


plaisir-perso
Le #20246861
LSteph a écrit le 28/09/2009 à 10h25 :
Bonjour,

...des que j'encode
une donnés dans la premiere il me les classe correctement dans les 2 au
tres. mnt




( Attention , ce n'est pas tout à fait cela, la maj des 2 autres
onglets s'effectue lorsqu'on active l'onglet).

Pour le reste, je ne souscris guère à la méthode de ces
cases à
cocher , déjà une par ligne c'est franchement lourd, une case
pourrait d'emblée se retrouver verrouillée alors que l'on a pas
fini
de complèter la ligne.
Par ailleurs, pourquoi suspicion de triche alors que l'on donne la
possibilité de saisir des lignes.?
Il serait possible de les verrouiller dès qu'elles sont remplies mais
rien empêcherait de les supprimer et/ou d'en
saisir d'autres (qui ne sont pas encore verrouilées).
Déjà, toute protection est contournable et dès qu'il y a
du VBA on
peut aussi ne pas l'activer et rien ne fonctionne.
Si on veut distribuer un truc qui doit plus bouger, autant le mettre
en pdf (par exemple) et en garder une copie qui permettra outre toute
tentative, de conserver une trace. Enfin, si on veut le proposer pour
modification, la latitude nécessaire à cet effet devrait
écarter
l'idée de protection.
Mais tel n'est peut-être pas ton but, aussi selon tout autre objectif
qui viserait uniquement un contrôle de saisie et de se préserver
d'écraser accidentellement les données déjà
entrées, j'opterais b ien
pour un userform qui permette d'entrée les données dans les
lignes
vides et de valider si et seulement si il y a complétude.

Qu'en dis-tu?

--
lSteph

On 26 sep, 15:34, plaisir-perso wrote:
Bonjour,

suite a un précédant poste je me retrouve avec un classeur
(office 20 03) en
trois feuil dont 2 sont des récaps. out fonctionne parfaitement des que
j'encode
une donnés dans la premiere il me les classe correctement dans les 2 au
tres. mnt
j'ai envie d'aller plus loin et de créer 1 bouton pour protéger
ma li gne je
m'explique:
dans la feuil 1 il y a des donnés et des calcul de la colonne A jusque
I que je
rentre au fil du temps. j'ai donc envie d'y insérer un bouton a cocher
(ça pas
de prob) mais d'y faire agir une macro (ça ça me pose un
problème, pas de
l'ajouter mais de l'écrire) qui me dis:
quand je coche il me verrouille la ligne correspondant au bouton (1 bouto n
par
ligne) et qu'il me la valide (si pas coché que la ligne soit
considér er comme
vide). et que le bouton soit aussi verrouillé une fois coché.
(évit er les
modification donc la triche)

je ne sais pas si tout cela est possible mais je crois que oui. si qq'un peut
m'aider je suis preneur.

François





bonjour,
qu'est ce que vous entendez par "lourd" (...1 case a cocher par ligne...)?
le but de cette case a cocher je l'ai changé en bouton a cliquer (ça change rien dans le concept je sais lol), est en fait a la base une façon de valider de la ligne.et par la suite donc de la verrouillé, de fait étant débutant je ne conçoit pas toutes (elle sont larges) les possibilités. voici une petit macro que j'ai réalisé dans ce sens
Sub protectvalid()
If Range("E5") <> "" Then
Range("A5:E5").Select
With Selection
.Locked = True
End With
Range("L5").Select
With Selection
.FormulaR1C1 = "valide"
End With
ElseIf Range("l5") = "" Then
Range("a5") = ""
End If
End Sub

elle s'applique évidement que a un bouton en K5 mais il y a une validation qui ne fonctionne pas évidement. et de plus je ne sais pas la réutiliser. il faudrait que je trouve avec votre aide ce qu'il faudrait écrire a la place des cellules nommé précisément.

merci
François
LSteph
Le #20249561
Bonjour,
Oui c'est bien cela que j'entends
Voici un exemple avec userform
Doublecliquer dans Saisie pour le faire apparaître:

http://cjoint.com/?jDio6Zamzx

Assurer la saisie par userform (code précisé plus bas)
pour controler ainsi que la ligne soit complète avant de valider
puis au moment où l'on entre son contenu, terminer l'action par un
verrouillage des cellules.
La feuille restant ainsi "protègée".

--
lSteph


Dim maVal As Single
Private Sub CommandButton1_Click()
Dim c As Range
With ActiveCell
.Value = Format(DateValue(TextBox1), "dd/mm/yyyy")
.Offset(0, 1) = Frame1.Tag
.Offset(0, 2) = Frame2.Tag
.Offset(0, 3) = ListBox1
.Offset(0, 4) = maVal
.Offset(0, 5) = TextBox3
.Offset(0, 6) = TextBox4
End With
For Each c In Range([a65536].End(xlUp).Address, "J1").Cells
If Not IsEmpty(c) Then c.Locked = True
Next
Unload Me
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub




Private Sub ListBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
If Len(Frame2.Tag) = 0 Then
ListBox1.ListIndex = -1
MsgBox "Précisez d'abord positif ou négatif"
Frame2.SetFocus
End If
End Sub

Private Sub OptionButton1_Click()
Frame1.Tag = OptionButton1.Caption
End Sub

Private Sub OptionButton2_Click()
Frame1.Tag = OptionButton2.Caption
End Sub
Private Sub OptionButton3_Click()
If Len(Frame1.Tag) = 0 Then
Frame2.Tag = ""
MsgBox "Précisez d'abord la modalité"
OptionButton3 = False
Else
Frame2.Tag = OptionButton3.Caption
End If
End Sub

Private Sub OptionButton4_Click()
If Len(Frame1.Tag) = 0 Then
MsgBox "Précisez d'abord la modalité"
Frame2.Tag = ""
OptionButton4 = False
Else
Frame2.Tag = OptionButton4.Caption
End If
End Sub

Private Sub TextBox1_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
On Error GoTo gesterr

TextBox1 = Format(DateValue(TextBox1), "dd/mm/yyyy")
If DateValue(TextBox1) < ActiveCell.Offset(-1) Then GoTo gesterr
Exit Sub
gesterr:
MsgBox "date non valide"
Cancel = True
TextBox1.SetFocus

End Sub

Private Sub TextBox2_BeforeUpdate(ByVal Cancel As
MSForms.ReturnBoolean)
CommandButton1.Enabled = False
maVal = 0
If ListBox1.ListIndex < 0 Then

TextBox2 = ""
MsgBox "vous devez d'abord choisir une catégorie"
Else
On Error Resume Next
maVal = CSng(TextBox2)
On Error GoTo 0
If Not maVal = 0 Then
CommandButton1.Enabled = True
MsgBox "Si vous validez sans avoir rempli Extrait et facture ils
seront omis"
Else
CommandButton1.Enabled = False
MsgBox "montant non valide"
End If
End If
End Sub




Private Sub UserForm_Initialize()
Dim c As Range
Feuil1.[a65536].End(xlUp)(2).Activate
ListBox1.Clear
CommandButton1.Enabled = False
For Each c In [categories]
ListBox1.AddItem c
Next
TextBox1 = Format(Now, "dd/mm/yyyy")
End Sub


bonjour,
qu'est ce que vous entendez par "lourd" (...1 case a cocher par ligne...) ?
le but de cette case a cocher je l'ai changé en bouton a cliquer (ça change
rien dans le concept je sais lol), est en fait a la base une façon de v alider de
la ligne.et par la suite donc de la verrouillé, de fait étant début ant je ne
conçoit pas toutes (elle sont larges) les possibilités. voici une pet it macro
que j'ai réalisé dans ce sens
Sub protectvalid()
    If Range("E5") <> "" Then
    Range("A5:E5").Select
        With Selection
        .Locked = True
        End With
    Range("L5").Select
        With Selection
        .FormulaR1C1 = "valide"
        End With
    ElseIf Range("l5") = "" Then
    Range("a5") = ""
    End If
End Sub

elle s'applique évidement que a un bouton en K5 mais il y a une validat ion qui
ne fonctionne pas évidement. et de plus je ne sais pas la réutiliser. il
faudrait que je trouve avec votre aide ce qu'il faudrait écrire a la pl ace des
cellules nommé précisément.

merci
François- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -


Publicité
Poster une réponse
Anonyme