Forumulaire de saisie obligatoire

  • Initiateur de la discussion Initiateur de la discussion Magiclucien
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

Magiclucien

Guest
Bonjour,

Je découvre le forum depuis peu et VBA depuis guère plus longtemps.

Je vous explique mon besoin, je cherche un créer un planning. Celui sera en partage entre différents utilisateurs qui ont la mauvaise habitude de ne pas le renseigner correctement.

J’ai donc créé un formulaire de saisie obligeant l’utilisateur à renseigner 5 champs différents.

Mon problème est le suivant : Comment contraindre l’utilisateur à utiliser le formulaire ??

En effet, celui-ci s’ouvre via une commande au dessus de la feuille mais l’utilisateur peut directement renseigner la ligne. Auquel cas, il ne la renseigne pas correctement. Comment l’empêcher de toucher à la feuille tout en permettant au formulaire de fonctionner ?

Merci beaucoup pour vos réponses,
 
Re : Forumulaire de saisie obligatoire

Bonjour Kjin,

Je craignais de mettre mal fait comprendre, c'est le cas.

Les utilisateurs en question ne doivent pas disposer du mot de passe pour deprotéger la feuille. Cependant, ils sont les seuls à renseigner le fichier.

Pour simplifier ma demande, je voudrais soit les contraindre à utiliser le formulaire de saisie, soit si ils tapent directement les informations en ligne, les obliger à renseigner les 5 champs obligatoires (5 cellules sur une même ligne).

Est-ce possible ? Merci beaucoup,
 
Re : Forumulaire de saisie obligatoire

Bjr MagicLucien et Kjin
L'idée n'est pas de donner le mot de passe aux utilisateurs, mais seulement de vérouiller les cellules pour ne pas permettre l'écriture directe dans la feuille.
Le mot de passe sera désactivé via le Vba du formulaire et réactiver (tjrs par Vba) après le remplissage des cellules concernées

Cordialement, Gérard
 
Re : Forumulaire de saisie obligatoire

Le mot de passe sera désactivé via le Vba du formulaire et réactiver (tjrs par Vba) après le remplissage des cellules concernées

Bonjour natorp,

Voila c'est exactement çà.

Ou trouvez un code VBA permettant de désactiver la protection pour permettre au formulaire de se "décharger" dans la feuille puis de réactiver la protection ?

Merci beaucoup !
 
Re : Forumulaire de saisie obligatoire

Re
le code pour déprotéger la feuille 1 avec mot de passe "titi" :
Code:
Sheets("Feuil1").Unprotect "titi"

le code pour protéger :
Code:
Sheets("Feuil1").Protect "titi"

cordialement, Gérard

PS : Et oui comme d'hab ...!! tjrs aussi performant Kjin... bonne journée
 
Re : Forumulaire de saisie obligatoire

Je rencontre une petite difficulté pour coller ton code VBA :

Voici la macro de mon formulaire :

Private Sub CommandButton1_Click()
If Me.TextBox2.Text = "" Then
MsgBox "Vous devez renseigner un nombre de références pour ce test."
Me.TextBox2.SetFocus
Exit Sub
End If
If Me.TextBox3.Text = "" Then
MsgBox "Vous devez renseigner un ou plusieurs libellés produits."
Me.TextBox3.SetFocus
Exit Sub
End If
If Me.ComboBox2.Text = "" Then
MsgBox "Vous devez selectionner un nom de chef de produit."
Me.ComboBox2.SetFocus
Exit Sub
End If
If Me.ComboBox4.Text = "" Then
MsgBox "Vous devez selectionner un type de test."
Me.ComboBox4.SetFocus
Exit Sub
End If
If Me.TextBox5.Text = "" Then
MsgBox "Vous devez renseigner le contexte ou l'objectif de ce test."
Me.TextBox5.SetFocus
Exit Sub
End If
' Conversion en NOMPRPRE
Numconverti = Application.WorksheetFunction.Proper(Me.TextBox2.Text)
Libconverti = Application.WorksheetFunction.Proper(Me.TextBox3.Text)
Desconverti = Application.WorksheetFunction.Proper(Me.TextBox5.Text)
Cpconverti = Application.WorksheetFunction.Proper(Me.ComboBox2.Text)
Typetestconverti = Application.WorksheetFunction.Proper(Me.ComboBox4.Text)
' Mise en place des valeurs saisies
Range("C1000").End(xlUp).Offset(1, 0).Value = Numconverti
Range("D1000").End(xlUp).Offset(1, 0).Value = Libconverti
Range("G1000").End(xlUp).Offset(1, 0).Value = Typetestconverti
Range("H1000").End(xlUp).Offset(1, 0).Value = Desconverti
Range("F1000").End(xlUp).Offset(1, 0).Value = Cpconverti
' On décharge le formulaire
Unload Me
End Sub

En regardant ton code dans le fichier que tu as envoyé, c'est :

Private Sub CommandButton1_Click()
For i = 1 To 5
If Controls("TextBox" & i) = "" Then
MsgBox "tout les champs ne sont pas renseignés"
Exit Sub
End If
Next
With Sheets("Feuil1")
.Unprotect "Toto"
dl = .Range("A65000").End(xlUp).Row + 1
For i = 1 To 5
.Cells(dl, i) = Controls("TextBox" & i)
Next
.Protect "Toto", userinterfaceonly = True
End With

End Sub

Comment compiler les deux ? Peux-tu m'aider ?

Merci beaucoup,
 
Re : Forumulaire de saisie obligatoire

Bonjour à vous tous.

Trouvant le fichier joint proche de ce que je souhaite réaliser, je me pose la question à savoir, si il serais possible de faire un rappel d'une ligne en cas de modification.
Encore merci à tous pour votre aide.

Cordialement Dominique
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
786
J
  • Résolu(e)
Réponses
6
Affichages
1 K
JeanDidouille
J
Retour