Comment interferer un formulaire et les cellules d'une feuille

zombe

XLDnaute Occasionnel
Salut à tous

J'ai essayé de réaliser un userform de saisie.
Je souhaite maintenant faire les liens avec les cellules de mes feuilles.
Comment ca se passe?
A l'ouverture, je souhaite que la date et la valeur de la cellule E3 s'affiche automatiquement dans les 2 premiers champs.
Après avoir renseigné les autres champs, en validant par le bouton valider, voici ce que je souhaite:
- que la valeur des champs Nom et prenom s'affiche en B5 et B6 respectivement.
- que la valeur cochée dans le frame1, s'affiche en B7
- que dans le frame2, je puisse faire plus d'un choix et que les éléments cochés apparaissent en B10 (comme par exemple : CNI, Extrait).
N.B: comment faire pour que le curseur circule dans l'ordre souhaité dans le formulaire de saisie?
 

Pièces jointes

  • Relation_userform.xlsm
    16.4 KB · Affichages: 36

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comment interferer un formulaire et les cellules d'une feuille

Bonjour zombe,
[...] A l'ouverture, je souhaite que la date et la valeur de la cellule E3 s'affiche automatiquement dans les 2 premiers champs. [...]
Utiliser la procédure évènementielle "Initialize" de l'USF "UserForm1" qui se produit au chargement de l'USF.
VB:
Private Sub UserForm_Initialize()
  TextBox3 = Date
  TextBox4 = Sheets("DONNE").Range("E3")
End Sub

[...] Après avoir renseigné les autres champs, en validant par le bouton valider, voici ce que je souhaite:
- que la valeur des champs Nom et prenom s'affiche en B5 et B6 respectivement.
- que la valeur cochée dans le frame1, s'affiche en B7
- que dans le frame2, je puisse faire plus d'un choix et que les éléments cochés apparaissent en B10 (comme par exemple : CNI, Extrait). [...]

Utiliser la procédure évènementielle "Click" du bouton "CommandButton1". En général, on procède à la vérification de bon remplissage des champs avant de les transférer vers une feuille de calcul.
Si un champ est manquant ou incorrectement saisi, on redonne la main à l'utilisateur pour compléter ou corriger. Suite aux vérifications et si tout est correct, on transfère vers la feuille de calcul par des séries d'instructions de type Range("XX")= valeur d'un contrôle de la feuille.
VB:
Private Sub CommandButton1_Click()

'Vérif des saisies
If Trim(TextBox1) = "" Then
  MsgBox "Veuillez saisir le nom."
  TextBox1.SetFocus
  Exit Sub
ElseIf Trim(TextBox2) = "" Then
  MsgBox "Veuillez saisir le prénom."
  TextBox2.SetFocus
  Exit Sub
ElseIf Not (OptionButton1 Or OptionButton2 Or OptionButton3) Then
  MsgBox "Veuillez saisir la situation."
  Frame1.SetFocus
  Exit Sub
ElseIf Not (CheckBox1 Or CheckBox2 Or CheckBox3) Then
  MsgBox "Veuillez saisir les justificatifs."
  Frame2.SetFocus
  Exit Sub
Else
  'Tous les champs sont saisis -> transfert sur Feuille "DONNE"
  With Sheets("DONNE")
    .Range("B5") = TextBox1
    .Range("B6") = TextBox2
    .Range("B7") = _
        IIf(OptionButton1, OptionButton1.Caption, _
        IIf(OptionButton2, OptionButton2.Caption, OptionButton3.Caption))
    .Range("B10") = _
        IIf(CheckBox1, CheckBox1.Caption, "") & _
        IIf(CheckBox2, ", " & CheckBox2.Caption, "") & _
        IIf(CheckBox3, ", " & CheckBox3.Caption, "")
    If Left(.Range("B10"), 2) = ", " Then .Range("B10") = Mid(.Range("B10"), 3)
  End With
  Unload Me
End If
End Sub



  • le bouton "Annuler" a sa propriété "Cancel" à TRUE -> c'est le bouton d'annulation par défaut. Si on appuie sur la touche Escape, alors c'est l'action liée à ce bouton qui sera exécutée (ici on referme la fenêtre)


  • Pour les justificatifs (frame2), les OptionButton (qui ne permettent qu'un choix parmi 3) ont été remplacés par des CheckBox qui permettent de choisir une ou plusieurs options.


  • Pour contrôler l'action de la touche tabulation et l'ordre des contrôles parcourus, utiliser la propriété TabIndex des contrôles. La touche TAB parcourra les contrôles dans l'ordre croissant des valeurs de TabIndex (Tabindex débute à 0 puis 1 puis 2 puis...). Pour ne pas que la touche TAB sélectionne un contrôle, attribuer la valeur FALSE à la propriété "TabStop" de ce contrôle.
 

Pièces jointes

  • Comment interferer un formulaire et les cellules d'une feuille v1.xlsm
    29.8 KB · Affichages: 42

zombe

XLDnaute Occasionnel
Re : Comment interferer un formulaire et les cellules d'une feuille

Salut Mapomme et le forum

Merci pour votre solution que j'ai beaucoup appréciée.
Vous avez parlé de TABINDEX que j'ai pas bien compris.
Pouvez-vous illuster cela à travers le formulaire que j'ai essayé de remanier?
Je souhaite que les saisies commencent suivant l'ordre ci-dessous:
- RELATION BANK,
- NOM
- PRENOM
- NBRE D'ENFANT
- FRAME1
- FRAME2.
Aussi, est-il possible d'intégrer des infobulls?
Merci
 

Pièces jointes

  • INTERFACER DOWNLOAD.xlsm
    24 KB · Affichages: 42

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Comment interferer un formulaire et les cellules d'une feuille

Bonjour zombe,

[...] Vous avez parlé de TABINDEX que j'ai pas bien compris.
Pouvez-vous illuster cela à travers le formulaire que j'ai essayé de remanier?
Je souhaite que les saisies commencent suivant l'ordre ci-dessous:
- RELATION BANK,
- NOM
- PRENOM
- NBRE D'ENFANT
- FRAME1
- FRAME2.
Aussi, est-il possible d'intégrer des infobulles? [...]

Pour le point TabIndex: pour avoir accès à la propriété TabIndex et TapStop, en mode Edition VBA, sélectionner un contrôle de votre formulaire, cliquer sur la touche de fonction F4. Dans la fenêtre des propriétés qui s'affiche, vous pouvez accéder (ou modifier) la valeur de TabIndex et TabStop. Pour les contrôles qui vous intéressent, un tableau sur "Feuil3" indique les valeurs actuelles. TabIndex débute à 0. L'ordre de parcours des contrôles se fait suivant les TabIndex croissants. Si TabStop d'un contrôle est égal à False, alors on "saute" ce contrôle.

Pour le point infobulles: Indiquer le texte de l'infobulle dans la propriété "ControlTipText".
 

Pièces jointes

  • Comment interferer un formulaire et les cellules d'une feuille v2.xlsm
    28.6 KB · Affichages: 44

zombe

XLDnaute Occasionnel
Re : Comment interferer un formulaire et les cellules d'une feuille

Salut mapomme et le forum

Merci pour ton aide consiferable.
C'est super.
Avec toi je commence à comprendre les usf et je souhaite que ca continue.
Est-il possible qu'à l'ouverture de mon fichier, une boite de dialogue apparaisse pour que l'utilisateur s'identifie par un mot de pass?
le mot de passe devant être dans une des plages de ma feuille DONNE.
Ex : F1:F50. si le mot de passe saisie n'y figure pas, le fichier ne doit pas s'ouvrir.
N.B:je ne souhaite pas passer par la protection qu'offre excel. je souhaite personnaliser.
Cdlt
 

Discussions similaires

Statistiques des forums

Discussions
314 588
Messages
2 110 988
Membres
111 002
dernier inscrit
Lolo73i