Problème effacement ligne LISTBOX

Bonjour à tous,

Après plusieurs heures d'essais et de recherche de solution à mon problème, je me tourne maintenant vers vous...

Dans mon fichier joint, je crée une todo list pour des projets en équipe. Sur ma feuille "Affaire" (qui est ma todo list), j'ai un bouton avec un symbole correspondant à des "Réglages/paramètres" qui ouvre un pop up. Celui-ci comprend une listbox qui me permet d'intéger, de modifier et d'effacer des personnes au projet en remplissant les textbox juste en dessous et en appuyant sur les boutons qui suivent (seules la listbox noire est programmée pour l'instant). Les actions "Ajouter" et "Modifier" fonctionnent très bien jusqu'à ce que je fasse un effacer qui me fait fonctionner aléatoirement et planter le fichier par des erreurs de type "objet s'est déconnecté de ses clients" ou encore "la méthode .Range de l'objet worksheet a échoué". Il doit y avoir une coquille dans mon programme que je n'arrive pas à déceler.

Si quelqu'un peut y jeter un oeil et m'aider ce serait top...

Merci à vous.

Cordialement,

Sam

12todolist.xlsm (635.86 Ko)

Bonjour,

Enlève le RowSource des propriétés de la listbox.

Puis, ajoute ...

Private Sub UserForm_Initialize()
   Me.ListBox_Utilisateurs.List = Range("Tab_Utilisateurs").Value
End Sub

et modifie la macro "Bp_effacer_user_click" ainsi ... (voir les 2 lignes ' <<< Ajout )

Private Sub Bp_effacer_user_Click()
   Application.ScreenUpdating = False
   Dim num_ligne As Integer
   num_ligne = ListBox_Utilisateurs.ListIndex

   If Me.ListBox_Utilisateurs.Value <> "" Then
      Sheets("BD").Range("I" & num_ligne + 2 & ":K" & num_ligne + 2).Delete Shift:=xlUp
   Else: MsgBox ("Merci de sélectionner une ligne.")
   End If
   Me.ListBox_Utilisateurs.Clear      ' <<<  Ajout
   Me.ListBox_Utilisateurs.List = Range("Tab_Utilisateurs").Value      ' <<<  Ajout
End Sub

ric

Bonsoir Ric,

Je te remercie pour ta réponse ! Tu m'enlèves une grosse épine du pied c'est vraiment top !

Je ne recense pour l'instant plus de bugs. je fais encore des tests pour être sûr et je valide ta réponse

Bonne soirée

Sam

Bonjour,

En fait, les bogues provenaient de la Listbox qui n'était pas actualisée à chaque suppression.

ric

D'accord, merci pour ton explication

Bonsoir ric et le forum,

Je reviens vers vous en raison d'un nouveau problème trop complexe pour moi concernant la listbox et la suppression de ses lignes sauf que cette fois-ci c'est sur deux autres listbox programmées exactement de la même manière que la première (Cf message Ric). La seule différence réside dans le fait qu'il n'y ait qu'une seule colonne au lieu de trois pour la première. Je les ai rajoutées au pop up "Réglages" où se trouve déjà la première. L'ajout et la modification des lignes se passe très bien. La suppression aussi sauf au moment où il ne reste plus que deux lignes et me sort un défaut "Impossible de définir la propriété List. Index de tble de propriété non valide" à la ligne "Me.ListBox_Utilisateurs.List = Range("Tab_Utilisateurs").Value " dans le sub du bp_effacer. Ensuite quand je réinitialise le programme et tente de rouvrir le pop up, ce même défaut revient m’empêchant l'ouverture. Seul le fait de reremplir manuellement les Tableaux qui alimentent mes listes me permet de rouvrir le pop up...

Si quelqu'un a la solution je suis preneur...

Sam

Bonjour,

Observation :

Les listbox une seule colonne semblent poser problème. Je leur ai donc ajouté une colonne dans les tableaux et dans les propriétés des deux listbox (types et états).

J'ai centralisé les références des listbox en feuille "BD", colonne Q2(Tab_Utilisateurs), R2(Tableau4) et S2(Tab_Etat) et corrigé le code pour les plages de suppressions (voir les ' << Modif ).

A+

ric

Super Ric ! Je te remercie ! C'est top

Juste une petite question, cela posait problème d'avoir mis à la même cellule les passages de 0 à 1 lors de la modification d'une ligne ?

Merci encore en tout cas

... Juste une petite question, cela posait problème d'avoir mis à la même cellule les passages de 0 à 1 lors de la modification d'une ligne ? ...

Sincèrement, je n'ai pas tenté de comprendre son utilisation.

Je te laisse vérifier l'utilisation d'un seule celle pour les 3 tableaux.

ric

AH

En fait, je faisais pas ça, lorsque je lançais le code dans le sub bp_modifier et arrivé à la ligne "Sheets("Listing").Range("F" & num_ligne + 2).FormulaR1C1 = Me.TextBox_Etats", le sub List_Click se lançait et me foutait la merde ^^

Du coup je le bloque comme ça. Il y a surement plus propre mais j'ai pas trouvé

Rechercher des sujets similaires à "probleme effacement ligne listbox"