Suite et fin pb de formulaire VBA

Bonjour,

après avoir eu de l'aide sur le vba d'un formulaire. Je vient de l'affiné et j'ai supprimé des Textbox que j'ai remplacé par des combobox avec menu déroulant.

Lorsque je fait ma recherche dans le menu "RECHERCHE IDE" les information ne s'affiche pas dans les nouveau combobox.

Est ce que vous pourriez m'aider a comprendre pourquoi.

Merci a tous

Mathias

https://www.cjoint.com/c/EHFjbZwmtud

Bonjour Mathias, bonjour le forum,

Dans le code du changement de la ComboBox1, tu ne boucles que sur les TextBoxes, il est donc normal que les ComboBoxes soient vides !...

Dans ce genre de cas j'utilise la propriété [Tag] des contrôles qui doivent être renseignés. Je l'ai rajouté dans ton fichier exemple. Elle correspond au numéro de la colonne où doit être renvoyée la valeur du contrôle. Mais comme elle est de type String je suis obligé de de la convertir en Byte dans le code.

Du coup la boucle est toute simple :

Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
Dim CTRL As Control

If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
For Each CTRL In Me.Controls 'boucle sur tous les contrôles de l'UserForm
    If CTRL.Tag <> "" Then 'condition : si la propriété [Tag] du contrôle n'est pas vide
        'renvoie la valeur du contrôle dans la cellule ligne : Ligne, colonne : propriété [Tag] du contrôle convertie en Byte, del'onglet WS
        CTRL.Value = Ws.Cells(Ligne, CByte(CTRL.Tag))
    End If 'fin de la condition
Next CTRL 'prochain contrôle de la boucle
End Sub
7mathias-v01.zip (59.27 Ko)

Bonjour Thauthème et tous le forum,

Un trés grand merci pour ton aide, cela fonctionne impeccablement.

Mais j'aurais besoin encore de ton aide pour des petits points qui me bloque:

1/ lorsque j' inscrit un nouveau adhérent tous se met en place sauf pour la colonne (O) mois de sortie cela s'affiche en chiffre au lieu de mois+année comme dans la base.

2/ Le moteur de recherche pour consultation fonctionne très très bien.

3/Pour les modifications j'ai un souci, c'est que je faire une recherche. Tous s'affiche correctement et dés que je modifie une information tous ce décale.

https://www.cjoint.com/c/EIbhRmQqP8e

Sinon avez vous un conseil a me donner pour comprendre l’esprit VBA

Amité

Mathias

Bonjour Mathias, bonjour le forum,

En pièce jointe ton fichier modifié...

12mathias-v02.zip (63.94 Ko)

Bonjour le forum,

merci a Thauthéme pour son aide, tous fonctionne impeccable.

J'aurais une question:

j'ai rajouter 2 userforms pour la mise en route et fait le lien entre les 3.

Sur un des unserforms je voudrais savoir si c'est possible de copie un combobox a l'identique du formulaire pour facilité la recherche.

Je vous joint le fichier pour être plus claire (voir les 3 combobox)

https://www.cjoint.com/c/EIdjIL5s1DG

Merci


Bonjour le forum,

merci a Thauthéme pour son aide, tous fonctionne impeccable.

J'aurais une question:

j'ai rajouter 2 userforms pour la mise en route et fait le lien entre les 3.

Sur un des unserforms je voudrais savoir si c'est possible de copie un combobox a l'identique du formulaire pour facilité la recherche.

Je vous joint le fichier pour être plus claire (voir les 3 combobox)

https://www.cjoint.com/c/EIdjIL5s1DG

Merci

Bonjour Mathias, bonjour le forum,

Je ne comprends pas que tu poses cette question puisqu'il ne suffit que de copier un code déjà existant dans ton fichier... Si tu ne fais aucun effort tu ne vas pas progresser rapidement, mais ce n'est pas mon problème...

Le code de l'UserForm2 :

Private Sub UserForm_Initialize()
Dim WS As Worksheet

Set Ws = Sheets("Bdd Club") 'Attention ce nom doit correspondre au nom de votre ONGLET
'On stock le nom de la feuille "FICHIER ADRESSES" dans une variable nommée WS
With Me.ComboBox1
    For J = 2 To Ws.Range("F" & Rows.Count).End(xlUp).Row
        .AddItem Ws.Range("F" & J)
    Next J
End With
End Sub

Private Sub CommandButton1_Click()
If Me.ComboBox1.Value <> "" Then
    UserForm1.ComboBox1.Value = Me.ComboBox1.Value
    Unload Me
    UserForm1.Show
End If
End Sub

Re bonjour a tous,

merci pour ton aide Thauthème et en plus tu as raison

Amitié

Mathias

Bonjour le forum et bien-sur Thauthéme,

encore un grand merci pour ton aide tous fonctionne: inscription de nouveau et les modifications

j'ai juste un souci lorsque j' inscrit un nouveau adhérent, le report se fait correctement sur la Bdd sauf pour la colonne C et T.

Elle sont inversés

https://www.cjoint.com/c/EIhnDlcg5oF

MERCI

Bonjour Mathias, bonjour le forum,

Comme je t'avais expliqué, c'est la propriété [Tag] des contrôles qui permet de renvoyer la valeur du contrôle dans la bonne colonne. Ces propriétés ont été inversées :

Dans VBE (Visual basic Editor),

• clique sur l'UserForm1

• dans le contrôle mutipage sélectionne l'onglet Durée suivi

• sélectionne la TetxBox14 (Nº de Liste)

• modifie sa propriété [Tag] (dans la fenêtre des propriétés en bas à gauche de VBE) = 3

• dans le contrôle mutipage sélectionne maintenant l'onglet Métier / Formation

• sélectionne la TextBox1 (Durée)

• modifie sa propriété [Tag] (dans la fenêtre des propriétés) = 20

bonjour a tous,

Merci Thauthéme pour ton aide j'ai compris au quoi sert le tag.

Tous fonctionne, excuse du dérangement

Amitié

Mathias

Rechercher des sujets similaires à "suite fin formulaire vba"