Userform - Remplissage tableau avec règles

Bonjour,

Je suis en train de réaliser un fichier me permettant la saisie de différents champs qui seront retranscris dans un tableau Excel. ( Feuille 'CR' )

Je suis parvenue à une V1 correcte mais je rencontre différentes difficultés pour améliorer mon projet, et j’aurais besoin de votre aide.

Les points qui me bloquent sont :

• Lorsque je saisie le 1er chiffre du champ ‘n°’, l’appli recherche aussitôt la correspondance dans mon tableau et affiche les informations dans les champs suivants alors que je n’ai pas saisie la totalité du n°.

Ex : si on saisie ‘1’, il affiche toutes les infos, alors que je souhaite crée un nouvel enregistrement commençant par ‘1’, les autres cases doivent donc rester vide.

• Mettre en place un calendrier dans les zones ‘Date’ : 4 champs permettant l'affichage sous forme JJ/MM/AAAA

• Limité la zone BL à 7 caractères obligatoirement sinon msg box

• Zone délai : Afficher la différence entre les deux dates Date CR et Date traitement de la Frame grise + un contrôle sur la saisie, à savoir la date CR ne peut > à la date traitement

• Zone statut : Si En cours = alors couleur fond vert, si Cloturé couleur de fond en rouge

Je vous remercie d'avance pour votre aide.

A dispo si besoin,

49test.xlsm (53.21 Ko)

Bonjour,

• Lorsque je saisie le 1er chiffre du champ ‘n°’, l’appli recherche aussitôt la correspondance dans mon tableau et affiche les informations dans les champs suivants alors que je n’ai pas saisie la totalité du n°.

Dans l'userform, essaie en remplaçant la ligne

Private Sub ComboBox1_Change()

par

Private Sub ComboBox1_AfterUpdate()

• Limité la zone BL à 7 caractères obligatoirement sinon msg box

On peut faire sans msgbox. Dans l'userform, sélectionner la textbox pour BL et dans les propriétés de la textbox, il suffit de compléter du chiffre 7 la rubrique MAXLENGTH

• Zone statut : Si En cours = alors couleur fond vert, si Cloturé couleur de fond en rouge

Dans la feuille ou dans l'userform ?

Crdlt

Bonjour Dan,

Merci de ton retour.

• Lorsque je saisie le 1er chiffre du champ ‘n°’, l’appli recherche aussitôt la correspondance dans mon tableau et affiche les informations dans les champs suivants alors que je n’ai pas saisie la totalité du n°.

Dans l'userform, essaie en remplaçant la ligne

Private Sub ComboBox1_Change()

par

Private Sub ComboBox1_AfterUpdate()

--> Cela fonctionne, merci

• Limité la zone BL à 7 caractères obligatoirement sinon msg box

On peut faire sans msgbox. Dans l'userform, sélectionner la textbox pour BL et dans les propriétés de la textbox, il suffit de compléter du chiffre 7 la rubrique MAXLENGTH

--> Ne fonctionne pas, je dois avoir un msgbox si le champ saisie ne fait pas 7 caractères

• Zone statut : Si En cours = alors couleur fond vert, si Cloturé couleur de fond en rouge

Dans la feuille ou dans l'userform ?

--> Les deux si possible

Crdlt[/quote]

re

• Limité la zone BL à 7 caractères obligatoirement sinon msg box

Mets ce code dans l'userform

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 If Me.TextBox2.Value <> 7 Then
    Cancel = True
    MsgBox "Cette case doit être complétée | Saisir 7 chiffres", vbCritical, "Erreur saisie"
End If
End Sub

Crdlt

Merci bien

Pour afficher un calendrier dans les textbox de date avez vous une idée?

Re

Il faut remplacer les textbox3 et 4 par deux nouvelles boites. Une fois dans VBA :

  • Clique sur USerform2
  • dans le menu VBA cliquer sur le bouton "Boite à outils"
  • Aller dans le menu "outils" et choisir l'option "contrôle supplémentaire"
  • cocher la case "Microsoft Date and Time Picker" puis OK
  • dans la boite à outils, cliquer sur l'outil créé "DTPICKER" et dessiner les 2 boites dates dans l'Userform
  • dans les "Private Sub ....() de l'userform, remplacer les noms TEXTBOX3 et TEXTBOX4 par les DTPICKER1 et DTPICKER2 respectifs

A vérifier avec ta version d'Excel. Ici testée sous excel 2010

Pour le statut, le code d'e l'userform ne mentionne pas la combobox2 utilisée. Il faut dire dans que code tu vas la mettre.

Puis ajouter une instruction du genre -->

objLR.Range.Cells(1, 14) = Combobox2.Value
if objLR.Range.Cells(1, 14) = "En cours" then
objLR.Range.Cells(1, 14).interior.color = vbgreen 'vert
else : objLR.Range.Cells(1, 14) =vbred
End if

Crdlt

Bonjou rDan,

Super cela fonctionne très bien, un grand merci.

Rechercher des sujets similaires à "userform remplissage tableau regles"