[Excel - 2016] Rafraichir un comboBox après insertion de données
DESTIN8TE
Messages postés
40
Statut
Membre
-
cs_Le Pivert Messages postés 8437 Statut Contributeur -
cs_Le Pivert Messages postés 8437 Statut Contributeur -
Bonjour,
Tout simplement, j'ai un formulaire avec 4 onglets (Insertion, Modification, ...).
Mon problème vient de Modification qui où j'ai un comboBox qui récupère déjà les lignes inscrites dans mon tableau, s'il n'y en a pas, forcément le comboBox n'a aucune donnée (juste pour info.).
Si j'inscrit une nouvelle donnée avec l'onglet Insertion et que je laisse toujours le formulaire ouvert, dans Modification, le comboBox ne récupère pas la dernière ligne inscrite.
Donc je voudrais au contraire sans avoir à réouvrir le formulaire ou même ajouter un bouton de rafraichissement que le comboBox se refresh automatiquement après insertion de la ligne. Le bouton serait vraiment en dernier recours.
Voici le code pour récupérer les lignes :
PS: Je sais que là le comboBox "Pg2cmbBoxSelectRow" ne se refresh pas automatiquement puisqu'il est dans l'Initialize.
Info : J'ai essayé de mettre ce code dans le code du bouton d'insertion dans l'onglet Insertion, ça marche mais j'ai des doublons alors si je peux retirer ces doublons, normalement ça serait bon aussi.
Merci et n'hésite pas à demander plus de détails.
Tout simplement, j'ai un formulaire avec 4 onglets (Insertion, Modification, ...).
Mon problème vient de Modification qui où j'ai un comboBox qui récupère déjà les lignes inscrites dans mon tableau, s'il n'y en a pas, forcément le comboBox n'a aucune donnée (juste pour info.).
Si j'inscrit une nouvelle donnée avec l'onglet Insertion et que je laisse toujours le formulaire ouvert, dans Modification, le comboBox ne récupère pas la dernière ligne inscrite.
Donc je voudrais au contraire sans avoir à réouvrir le formulaire ou même ajouter un bouton de rafraichissement que le comboBox se refresh automatiquement après insertion de la ligne. Le bouton serait vraiment en dernier recours.
Voici le code pour récupérer les lignes :
Private Sub UserForm_Initialize()
..........
MultiPgPOSTIT.Value = 0
'Code pour Pg2Mod
Dim Ligne As Integer
Ligne = 9
Do While Sheets("DATA").Cells(Ligne, 3).Value <> ""
Me.Pg2cmbBoxSelectRow.AddItem Sheets("DATA").Cells(Ligne, 3).Value
Ligne = Ligne + 1
Loop
..........
PS: Je sais que là le comboBox "Pg2cmbBoxSelectRow" ne se refresh pas automatiquement puisqu'il est dans l'Initialize.
Info : J'ai essayé de mettre ce code dans le code du bouton d'insertion dans l'onglet Insertion, ça marche mais j'ai des doublons alors si je peux retirer ces doublons, normalement ça serait bon aussi.
Merci et n'hésite pas à demander plus de détails.
A voir également:
- [Excel - 2016] Rafraichir un comboBox après insertion de données
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
1 réponse
Bonjour,
voir ici: remplir un Combobox sans doublon
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F
voir ici: remplir un Combobox sans doublon
https://silkyroad.developpez.com/VBA/ControlesUserForm/#LII-F
Private Sub UserForm_Initialize() Dim I As Integer For I = 9 To Range("C65536").End(xlUp).Row Me.Pg2cmbBoxSelectRow = Range("C" & I) If Me.Pg2cmbBoxSelectRow.ListIndex = -1 Then Me.Pg2cmbBoxSelectRow.AddItem Sheets("DATA").Range("C" & I).Value Next ICe qui revient à ce que j'ai fait.
Mais je n'ai toujours pas la nouvelle ligne inscrite.
Mets le dans un Button comme ceci:
Option Explicit Private Sub CommandButton1_Click() Dim I As Integer For I = 9 To Range("C65536").End(xlUp).Row Me.Pg2cmbBoxSelectRow = Range("C" & I) If Me.Pg2cmbBoxSelectRow.ListIndex = -1 Then Me.Pg2cmbBoxSelectRow.AddItem Sheets("DATA").Range("C" & I).Value Next I End SubIl faut mettre la propriété de l'UserForm ShowModal à False pour pouvoir travailler sur la feuille
@+ Le Pivert