Rafraichir une listbox d'une autre userform
Bonjour tout le monde,
Alors je suis sur un projet pour faciliter la compta de mon entreprise, j'utilise actuellement un freeware de feu Denis Dalmont (pour les connaisseurs). Je voudrais cependant le remanier à ma sauce en fonction de mes besoins. Sauf que je débute dans le VBA...donc c'est dur...je suis dépanneur informatique donc je maitrise un peu le clavier
Mon problème : j'ai 2 feuilles excel (pour le moment), une qui sert de listing client et l'autre pour stocker des formules. J'ai 2 userforms, une qui est un tableau de commande, l'autre qui est un formulaire pour remplir ma feuille listing clients.
Tout marche bien lorsque je rempli mon formulaire pour ajouter un client, cela me rempli bien ma feuille dédiée. Mais cela ne rafraichi pas ma listbox qui est sur l'autre userform. Bon si je ferme celle-ci et que je la rouvre , elle est bien actualisée, mais pas en temps réel !
Code de l'userform (saisie d'un nouveau client) :
Private Sub UserForm_Initialize() 'Chargement de la liste au lancement de l'UserForm
For I = 1 To 2 'liste des choix textbox categorie
ComboBox_Categorie.AddItem Sheets("Formules").Cells(I, 1)
Next
End Sub
Private Sub CommandButton1_Click()
'Coloration des Labels en noir
Label_Nom.ForeColor = RGB(255, 255, 255)
Label_NumClient.ForeColor = RGB(255, 255, 255)
Label_Categorie.ForeColor = RGB(255, 255, 255)
'Contrôles de contenu
If TextBox_nom.Value = "" Then 'SI pas de "nom" ...
Label_Nom.ForeColor = RGB(255, 0, 0) 'Label "nom" en rouge
ElseIf TextBox_NumClient.Value = "" Then
Label_NumClient.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox_Categorie.Value = "" Then
Label_Categorie.ForeColor = RGB(255, 0, 0)
Else
'Si le formulaire est complet, on insère les valeurs sur la feuille
Dim no_ligne As Integer
'Instructions pour insérer le contact ici !!!
'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1
no_ligne = Range("A65536").End(xlUp).Row + 1
'Insertion des valeurs sur la feuille
Cells(no_ligne, 1) = TextBox_nom.Value
Cells(no_ligne, 2) = TextBox_adresse.Value
Cells(no_ligne, 3) = TextBox_CP.Value
Cells(no_ligne, 4) = TextBox_Ville.Value
Cells(no_ligne, 5) = TextBox_telfixe.Value
Cells(no_ligne, 6) = TextBox_telmobile.Value
Cells(no_ligne, 7) = TextBox_email.Value
Cells(no_ligne, 8) = TextBox_NumClient.Value
Cells(no_ligne, 9) = ComboBox_Categorie.Value
'Après insertion, on remet les valeurs initiales
TextBox_nom.Value = ""
TextBox_adresse.Value = ""
TextBox_CP.Value = ""
TextBox_Ville.Value = ""
TextBox_telfixe.Value = ""
TextBox_telmobile.Value = ""
TextBox_email.Value = ""
TextBox_NumClient.Value = ""
ComboBox_Categorie.Value = ""
End If
Clients.Hide
End SubCode de l'userform Tableau de commande avec la listbox à rafraichir en temps réel:
'Affiche la fiche client lorsqu'on clique sur Nouveau
Private Sub CommandButton13_Click()
Clients.Show
End Sub
'Rempli la listbox clients
Private Sub UserForm_Initialize()
liste_client.List() = Range("Clients!Noms").Value
End SubJ'espère que mon message est compréhensible et que vous pourrez m'aider parce que je ne suis pas au bout de mes peines...
Merci d'avance.
Bonjour et bienvenue sur le forum
Un essai à tester. Te convient-il ?
Bye !
Bonjour gmb,
Merci pour ta réponse et ta solution qui me convient parfaitement. Si je te dis que j'avais tenté cette solution mais je n'avais pas mis ces 2 lignes de code au bon endroit, pfffff, c'est le métier qui rentre...
Je ne sais pas si quand mon tableau de commande va s'étoffer, il n'y aura pas de souci avec cette technique, c'est pourquoi j'aurais préféré une commande du type "Repaint" ou "Refresh" mais l'essentiel est que CA MARCHE !!!
Merci encore et bonne journée.