Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Problème sur un userform

  • Initiateur de la discussion Initiateur de la discussion taupivin
  • 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 !

T

taupivin

Guest
Bonjour à tous,

voici mon problème,
Lorsque je ne ne rempli pas une ou plusieurs cases de mon userform et que je valide j'ai bien mon message d'avertissement mais une ligne est crée dans le tableau final. De plus je ne sais pas comment faire pour agrandir mon tableau en fonction du nombre de ligne que je vais insérer.
Si quelqu'un a une idée pour parer à ces deux problèmes...
Vous trouverez le fichier ci-joint.

Merci d'avance.
 

Pièces jointes

Re : Problème sur un userform

Bonjour,

dans un premier temps je changerai l'ordre d'écriture du code:
Code:
Private Sub CommandButton1_Click()


If rp.Value = "" Then
MsgBox ("Vous devez choisir un responsable pédagogique")
rp.SetFocus
Exit Sub
End If

If ass.Value = "" Then
MsgBox ("Vous devez choisir une assistante")
ass.SetFocus
Exit Sub
End If


If dom.Value = "" Then
MsgBox ("Vous devez choisir un domaine")
dom.SetFocus
Exit Sub
End If

If Intit.Value = "" Then
MsgBox ("Vous devez saisir un intitulé pour la formation")
Intit.SetFocus
Exit Sub
End If

If client.Value = "" Then
MsgBox ("Vous devez saisir un nom de client ")
client.SetFocus
Exit Sub
End If

If TYPEF.Value = "" Then
MsgBox ("Vous devez indiquer de quel type d'action il est question ")
TYPEF.SetFocus
Exit Sub
End If

If REF.Value = "" Then
MsgBox ("Vous devez indiquer s'il s'agit d'une action ARA HT ou ARA Net ")
REF.SetFocus
Exit Sub
End If

num = Sheets("FEUIL1").Range("B65536").End(xlUp).Row + 1
Sheets("Feuil1").Activate
Range("B" & num).Value = datej.Value
Range("A" & num).Value = Month(datej) & "-" & Year(datej) & "-" & num
Range("C" & num).Value = rp.Value
Range("D" & num).Value = ass.Value
Range("E" & num).Value = dom.Value
Range("F" & num).Value = Intit.Value
Range("G" & num).Value = client.Value
Range("h" & num).Value = TYPEF.Value
Range("I" & num).Value = DTPicker1.Value

CHRONO.Hide
reponse = MsgBox("Le numéro chrono de cette proposition est " & Month(datej) & "-" & Year(datej) & "-" & num & Chr(10) & " " & "La proposition est bien enregistrée dans le classeur chrono, la relance peut se faire le " & CDate(datej) + 15, vbYes, "Attribution numéro chrono")

End Sub
ensuite perso je controlerai que tous les champs sont remplis avec un seul messages "veuillez remplir tous les champs" ou liberer un locked sur le bouton valider tant que les champs ne sont pas remplis complètement.
Mais ce n'est que mon point de vue.
A+
 
Re : Problème sur un userform

Bonjour taupivin,

cela vient de cette partie de code qui doit se trouver en fin de procédure et non au début comme tu l'as fait
à mettre donc juste avant CHRONO.Hide
Code:
num = Sheets("FEUIL1").Range("B65536").End(xlUp).Row + 1
Sheets("Feuil1").Activate
Range("B" & num).Value = datej.Value
Range("A" & num).Value = Month(datej) & "-" & Year(datej) & "-" & num
Range("C" & num).Value = rp.Value
Range("D" & num).Value = ass.Value
Range("E" & num).Value = dom.Value
Range("F" & num).Value = Intit.Value
Range("G" & num).Value = client.Value
Range("h" & num).Value = TYPEF.Value
Range("I" & num).Value = DTPicker1.Value
à+
Philippe

Edit: Bonjour Fhoest .................... même solution 🙂
 
Dernière édition:
Bonjour taupivin et le forum.

Pour ce qui est de la création de la ligne, il faut placer l'action Range après les messages d'erreurs. 🙂

A +

Edit bonjour fhoest et philippe pas rafraîchis 🙂
 
Dernière édition:
Re : Problème sur un userform

Bonjour PHLaurent,Stephan et les autres si il y a entre temps.😱😱
Re,
pour agrandir le tableau automatiquement il suffit d'ajouté la ligne de code suivante à cette endroit:
Code:
num = Sheets("FEUIL1").Range("B65536").End(xlUp).Row + 1

Sheets("Feuil1").Activate
'ligne a ajouter 
''''''''''''''''''''''''''''''''''''''''''''
Rows(num).Insert
''''''''''''''''''''''''''''''''''''''''''''''
Range("B" & num).Value = datej.Value
A bientôt.
 
Dernière édition:
- 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

  • Question Question
Microsoft 365 problème d'index
Réponses
19
Affichages
501
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
523
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…