Bonsoir,
J'utilise la variable DL pour Dernière Ligne même si dans le cas de Suppression le nom n'est pas idéal...
Pour Ajouter, il y a deux cas :
Le tableau structuré peut-être vide si par exemple avec la fonction Supprimer on a supprimé toutes les lignes. Ajouter dans la dernière ligne d'un tableau structuré vide génère une erreur. On va donc Ajouter dans la ligne 2 si le tableau structuré est vide, sinon on va Ajouter dans la première ligne vide du tableau structuré. D'où l'utilisation de IIf(Condition, résultat si condition vraie, résultat si condition fausse) qui va permettre de contourner le problème de l'erreur et toujours écrire le nom ajouté dans la dernière ligne du tableau structuré avec :
DL = IIf(Cells(2, CTRL.Tag).Value = "", 2, O.Cells(Application.Rows.Count, CTRL.Tag).End(xlUp).Row + 1)
Pour Supprimer :
Le premier élément d'une ComboBox a pour propriété ListIndex : 0, le second élément a pour propriété ListIndex : 1, etc.
Comme les tableaux commencent tous à la ligne 1 et que les ComboBoxes ne contiennent pas de doublons, on peut facilement récupérer la ligne de l'élément choisi dans une ComboBox avec ListIndex + 2. Cela permet pour Supprimer,de supprimer l'élément choisi avec :
DL = CTRL.ListIndex + 2
Il y aurait d'autres manière de procéder mais comme je ne gère pas encore bien les tableaux structurés j'ai opté pour cette méthode qui marche. D'ailleurs je n'ai toujours pas trouvé pourquoi ça marchait chez moi et pas au boulot. Ça prouve que ma méthode n'est pas idéale...