Pb réinitialisation avec combobox
Bonjour le forum,
Ci-dessous le code pour activer ma combo box ( merci le forum de ce code).
J'ai un petit souci avec car si je supprime dans la feuil ("Données") une ligne complète de mon tableau (dans le cas présent il s'agit d'une référence produi), et que je relance ma combobox la valeur supprimée reste en choix possible dans la liste.
Comment puis je faire pour la supprimer?
Merci de votre aide
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 11 To Sheets("Données").Range("A65536").End(xlUp).Row
With ComboBox1
.AddItem Sheets("Données").Range("A" & i)
End With
Next
End Sub
Bonjour,
place ton code dans une procédure:
Public Sub MAJComboBox1()
Dim i As Integer
ComboBox1.clear 'Important pour vider le combobox
For i = 11 To Sheets("Données").Range("A65536").End(xlUp).Row
With ComboBox1
.AddItem Sheets("Données").Range("A" & i)
End With
Next
End sub
ensuite appele ton code à l'événement UserForm_Initialize et quand tu veux mettre ton combobox à jour. Oublie pas de rajouter la ligne ComboBox1.clear
Bonsoir Math,
J'ai déjà tenté le combobox1.clear mais lorsque je lance le userform contenant la combo, il n'y a rien dans la sélection, c'est vide.
J'ai repris ton code et j'ai tapé ça.
Private Sub ComboBox1_Change()
MAJComboBox1
End Sub
Est ce correct?
est-ce que tu peux envoyer un bout de ton code svp???
Voilà l'enchainement du code.
Dans l'auto_open je sélectionne ma base de données et je la trie par ordre croissant car comme j'utilise la fonction RechercheV, cette dernière ne fonctionne que si la base a été préalablement triée par ordre croissant.
Ensuite je supprime tous les liens Hypertextes.
Puis se lance le USerform avec 2 drapeaux qui permettent de sélectionner la langue.
Et enfin se lance le Userform qui contient la combobox qui "Scanne" la colonne A en commençant à la ligne 11. Dans cette colonne se trouve donc les références de l'ERP de l'entreprise.
Dés qu'une référence est sélectionnée elle est injectée dans une feuille masque et ensuite à partir de ce code une quantité d'autres cellules sont remplies via la rechercheV.
Cependant, les références de l'erp peuvent être ajoutées mais également retirées (plus de vente sur le produit) et dans ce dernier cas lorsque je les retire elles apparaissent toujours en mémoire dans la combo box.
Voilà en espérant avoir été concis.
Merci de votre aide une nouvelle fois.
PS : J'ai retiré une bonne partie du code à certains endroits, car ce serait illisible sans avoir l'application sous les yeux...
Sub auto_open()
Application.ScreenUpdating = False
Sheets("Données").Select
Range("A11:DA10000").Select
Selection.Sort Key1:=Range("A11"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Range("A1").Select
Sheets("Masque").Select
Range("D7:H7,A109:AJ113").Select
Selection.ClearContents
Range("A2").Select
Dim H1 As Object
For Each H1 In Cells.Hyperlinks
Cells(H1.Range.Row, H1.Range.Column).Value = ""
Next
UserForm2.Show
End Sub
Private Sub Image1_Click()
'Version française
UserForm2.Hide
ActiveSheet.Shapes("Recherche").Select
Selection.Characters.Text = "Recherche"
ActiveSheet.Shapes("BoutonImprimer").Select
Selection.Characters.Text = "Imprimer"
ActiveSheet.Shapes("Info_Sortir").Select
Selection.Characters.Text = "Cliquer sur le logo pour quitter l'application!!!"
ActiveSheet.Shapes("Bouton_Calcul").Select
Selection.Characters.Text = "Calculs poids/volume"
Range("D3:V3").Select
ActiveCell.FormulaR1C1 = "=IF(R[-2]C[34]=0,"""",R[-2]C[34])"
UserForm1.Caption = "Selectionnez un code produit fini Movex!"
UserForm1.UserForm1_Annuler.Caption = "Annuler"
Application.OnTime Now + TimeValue("00:00:01"), "Depart"
End Sub
Sub Depart()
'
'
'
UserForm1.Show
Code ci-dessous affecté aux bouton Ok, Annuler, et de la fameuse combobox
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 11 To Sheets("Données").Range("A65536").End(xlUp).Row
With ComboBox1
.AddItem Sheets("Données").Range("A" & i)
End With
Next
End Sub
Private Sub UserForm1_OK_Click()
Dim i As String
i = ComboBox1.Text
Sheets("Masque").Range("D7").Value = i
UserForm1.Hide
End Sub
Private Sub UserForm1_Annuler_Click()
UserForm1.Hide
End Sub
Bonjour,
le truc c'est de vider et de réemplir ton combobox à chaque fois que tu supprimes un enregistrement de la liste. Si j'ai bien compris tu veux pouvoir supprimer une ligne dans la feuille Données et que les changements se répercute sur le combobox...
ajoute la procédure que je t'ai écrite plus haut dans ton code et trouve l'évènement qui te convient le mieux pour l'appeler ex: WorkSheet_Change
le mieux serait de placer la procedure dans un module et de faire référence à la userform:
Public Sub MAJComboBox1()
Dim i As Integer
NomDeLaUserForm.ComboBox1.clear 'Important pour vider le combobox
For i = 11 To Sheets("Données").Range("A65536").End(xlUp).Row
With NomDeLaUserForm.ComboBox1
.AddItem Sheets("Données").Range("A" & i)
End With
Next
End sub
Bonjour Math,
Ca fonctionne.
J'ai créé une procédure avec un bouton de suppression de ligne dans la base avec une msgbox "Etes vous sur de vouloir supprimer une ligne" si fausse manipulation, les lignes se suppriment et j'ai placé ton code.
Dés que je relance l'application pas de souci les lignes (codes) supprimées ont disparu.
Merci de ton aide