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

Formulaire de saisie avec rappel de données

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 !

tom_the_cat

XLDnaute Nouveau
Bonjour à tous,

Je travaille actuellement sur un projet très intéressant de gestion RH et je dois mettre en place différents dashboard et outils de saisies afin de pouvoir développer le modèle avec des personnes n'ayant pas programmé la BDD excel.

Apprenant la programmation VBA par mes propres moyens je bute en ce moment sur différents problèmes.

Voici mon principal problème actuellement:

Je cherche à faire un formulaire de saisie qui reprenne des informations contenue dans une base de données. Voici un exemple dans le fichier joint. Je bloque sur la reprise des informations dans le formulaire. J'aimerais écrire le nom et le prénom dans le formulaire 1 et qu'il aille chercher le poste, horaire et salaire correspondant dans le formulaire 2.

Si vous avez des idées, merci pour votre coup de main.
 

Pièces jointes

Re : Formulaire de saisie avec rappel de données

Re-,

dans le code du Change du Cbx2, on recherche le nom du Cbx1.
comme les noms sont dans la colonne 2, il faut donc chercher dans cette colonne..

Code:
Private Sub ComboBox2_Change()
If Me.ComboBox2 = "" Then Exit Sub
With Sheets("BDDTempos").Columns([B][COLOR="Red"]2[/COLOR][/B])

en rouge, dans le code
 
Re : Formulaire de saisie avec rappel de données

A moins que je n'ai pas compris ce que tu viens d'écrire, je ne pense pas que ce soit ca. Voici la structure de ma bdd officielle quqi est un peu différente de celle que j'avais fait en exemple:



Donc le prénom (cbx2) est bien en colonne 3. C'est juste ou je me trompe?


EDIT: A non, j'ai rien dis, tu as raison ton raisonnement est logique donc j'ai bien mis "2" mais par contre ca ne marche toujours pas mon code. Maintenant j'ai un bug sur cette partie:

Me.Controls(TextBox1).Value = Cel.Offset(0, 6).Value

Et les données ne se chargent toujours pas.

J'ai cerveau qui fond, je fais une petite pause parce que la je bloque. Merci beaucoup pour ton coup de main bhbh, si tu vois un truc qui ne colle pas et qui peut m'aider ce serait avec plaisir.
 
Dernière édition:
Re : Formulaire de saisie avec rappel de données

re-;

je ne pense pas que ce soit ca

tu as essayé?

on cherche d'abord le nom (donc en colonne 2), puis on vérifie le prénom :

Code:
If Me.ComboBox2 = Cel.Offset(0, 1).Value Then

si c'est le même, on reporte les données, sinon, on continue la recherche..(dans la colonne 2, je confirme....)
 
Re : Formulaire de saisie avec rappel de données

Oui en effet tu as raison, j'ai édité un peu tard mon précédent message, ca me semble logique ton raisonnement mais comme ca ne changeait rien dans le formulaire quand j'avais remis 2 j'en avais déduit que ce n'était pas ca. Donc ca ne marche toujours pas mais par contre ca me semble plus logique donc j'ai remis 2 comme tu me la conseillé.

Merci beaucoup

Tu vois une autre coquille quelque part?
 
Re : Formulaire de saisie avec rappel de données

re,

pas besoin de controls....

Code:
Me.TextBox1.Value = Cel.Offset(0, 6).Value
Me.TextBox2.Value = Cel.Offset(0, 7).Value
Me.TextBox3.Value = Cel.Offset(0, 8).Value
Me.TextBox4.Value = Cel.Offset(0, 9).Value
Me.TextBox5.Value = Cel.Offset(0, 10).Value
Me.TextBox6.Value = Cel.Offset(0, 11).Value
Me.TextBox7.Value = Cel.Offset(0, 12).Value
Me.TextBox13.Value = Cel.Offset(0, 20).Value
Me.TextBox14.Value = Cel.Offset(0, 21).Value
Me.TextBox15.Value = Cel.Offset(0, 22).Value
 
Re : Formulaire de saisie avec rappel de données

Yes!!!

Merci beaucoup bhbh, c'était bien le controls qui bloquait, j'ai modifié ma numérotation qui était fausse et maintenant ca fonctionne parfaitement.

Je vais pouvoir avancer de mon côté maintenant pour exporter les données saisies vers la base de données.

Merci beaucoup pour le coup de main et pour la qualité de ton code qui va m'être utile également pour un autre formulaire que je dois faire.
 
Re : Formulaire de saisie avec rappel de données

Plutôt que de refaire un sujet, je continue sur celui ci puisque mon problème est assez similaire.

bhbh m'avait donné un gros coups de mains sur un formulaire de saisie que j'ai pu adapter a mes besoins et désormais mes saisies fonctionnent très bien (encore un grand merci!). Dans l'exemple qu'il m'avait envoyé, il y avait la possibilité de modifier les données qui était inscrite dans la base de données et c'est une fonctionnalité qui m'intéresse beaucoup mais je n'arrive pas à la mettre en place.

bhbh m'avait préparé un exemple avec un formulaire qui reperenait les informations dans ma base de données grâce à un choix selon 2 combobox.

Aujourd'hui je dois faire la même chose mais j'aimerais simplifier le code.

Tout ce que je veux c'est que je puisse choisir les données avec les 2 combobox, que les autres données se chargent dans le formulaire et que quand je clique sur un bouton modifier, il modifie les données dans la base de données. Ce qui me bloque pour le moment c'est que je n'arrive pas à faire la "recherche" des données pour les modifier.

Bref, un exemple est beaucoup plus parlant. Pouvez-vous m'aider dans mon exemple a charger les données, puis a pouvoir les modifier? Je sais que c'est exactement ce que faisait l'exemple de bhbh mais je n'arrive pas à l'adapter donc je tente une simplification.

Merci beaucoup
 

Pièces jointes

Dernière édition:
Re : Formulaire de saisie avec rappel de données

Un tout petit up. Je ne veux pas trop insisté, vous m'avez déjà énormément aidé mais si quelqu'un a quelques minutes pour jeter un coup d'oeil je lui serais très reconnaissant.

Merci beaucoup
 
Re : Formulaire de saisie avec rappel de données

Bonjour,

excusez moi de remettre à jour ce sujet, mais je l'ai trouvé très intéréssant, et j'aimerais avoir quelques informations supplémentaires, afin de me perfectionner dans le maniement de ce formulaire, que je trouve très utile.

J'aimerais savoir comment ajouter une nouvelle combobox, qui comme les précédentes dépendrait des selections réalisées auparavant (cbx1: Ville séléctionné/cbx2:nom séléctionné/cbx3: prénom)
Et également si il est possible de définir cette combobox sur une autre colonne que les 3 première par exemple cbx1 sur colonne A, cbx2 sur B et cbx3 sur E.


Je vous remercie d'avance pour vos futurs réponses,

(Je suis partie du fichier proposé par Bhbh)
 
Dernière édition:
Re : Formulaire de saisie avec rappel de données

Voila la partie qui m’embête et que j'aimerais modifier..


Code:
Private Sub ComboBox2_Change() 'Je n'arrive pas a changer l'adresse d'assignation de cette comboxbox (idéalement colonne N'
For I = 1 To 30
    Me.Controls("TextBox" & I).Value = ""
Next I
If Me.ComboBox2 = "" Then Exit Sub
With Sheets("Feuil1").Columns(1)
    Set Cel = .Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cel Is Nothing Then
            FirstAddress = Cel.Address
            Do
                If Me.ComboBox2 = Cel.Offset(0, 1).Value Then
                    For I = 1 To 30
                        Me.Controls("TextBox" & I).Value = Cel.Offset(0, I + 1).Value
                        Me.Controls("TextBox" & I).Enabled = True
                    Next I
                    LaLigne = Cel.Row
                    Exit Do
                Else
                    Set Cel = .FindNext(Cel)
                End If
            Loop While Not Cel Is Nothing And Cel.Address <> FirstAddress
        End If
End With
End Sub

Private Sub ComboBox3_Change() ' et de celle si également (idéalement colonne O du tableau '
For I = 1 To 30
    Me.Controls("TextBox" & I).Value = ""
Next I 'resort les même résultats que la combobox2 sans savoir pk'
If Me.ComboBox3 = "" Then Exit Sub
With Sheets("Feuil1").Columns(1)
    Set Cel = .Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)
        If Not Cel Is Nothing Then
            FirstAddress = Cel.Address
            Do
                If Me.ComboBox3 = Cel.Offset(0, 1).Value Then
                    For I = 1 To 30
                        Me.Controls("TextBox" & I).Value = Cel.Offset(0, I + 1).Value
                        Me.Controls("TextBox" & I).Enabled = True
                    Next I
                    LaLigne = Cel.Row
                    Exit Do
                Else
                    Set Cel = .FindNext(Cel)
                End If
            Loop While Not Cel Is Nothing And Cel.Address <> FirstAddress
        End If
End With
 
Re : Formulaire de saisie avec rappel de données


Je n'ai pas bien compris ce que tu voulais faire, aussi je te donne quelques pistes de recherche :

Es-tu habitué à la fonction find et aux with ? dans notre cas, la 2ème ligne citée (avec le set) peut être réécrite de la manière suivante :
Code:
Set Cel = Sheets("Feuil1").Columns(1).Find(Me.ComboBox1, LookIn:=xlValues, LookAt:=xlWhole)

Un peu de traduction : la fonction find va aller chercher la valeur Me.Combobox1 (c'est à dire ce que l'utilisateur va rentrer dans le formulaire) dans la colonne 1 (donc "A:A") de la feuille nommée "Feuil1".

Je penses que tu peux jouer avec le numéro de colonne (.columns(XXX)) pour faire ton bonheur.


PS : je te remercie d'avoir remonter ce topic. Je le découvre par ton message et y apprend beaucoup, moi qui voulais m'initier aux userforms.
 
- 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

Discussions similaires

Réponses
12
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…