XL2013 Supprimer ligne sur classeur si item listbox supprimer

Bonjour à tous,

J'ai actuellement une macro qui me permet de transposer les données de ma listbox1 vers la feuille 2 du classeur en démarrant cette transposition en A11 de la feuille 2 du classeur.

Malheureusement, je ne sais pas comment supprimer les données de la ligne supprimée de la listbox1 sur ma feuille 2 du classeur.

Exemple :

Listbox1, je rentre les données à l'aide de mon bouton de commande Valider, à chaque fois que je clique Valider, les données s'intègrent au fur et à mesure sur ma listbox1 et en parallèle ces données de la listbox1 se transposent sur ma feuille 2 à partir de la celulle A11.

Quand je double clique sur ma ligne à supprimer dans ma listbox1, elle se supprime correctement mais sur ma feuille 2, la ligne qui a été supprimée dans ma listbox1 reste.

Comment faire pour que cette dernière se supprime aussi bien sur ma listbox1 que sur ma feuille 2 ?

En sachant que si je supprime la ligne 4 de ma listbox1, sur ma feuille 2 il faudra que cette ligne 4 soit supprimée et qu'il ne me laisse pas une ligne vide entre la ligne 3 et 5. En gros la ligne 5 devient la ligne 4.

Est-ce que quelqu'un aurait une idée du code et comment faire ?

J'espère que mes explications ont été claires.

Je vous ai mis en PJ mon fichier avec le code.

En vous remerciant par avance de votre aide ^^

Namco

35test.xlsm (57.76 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

57test-v1xlsm.xlsm (66.15 Ko)

Salut gmb,

Non cela ne fonctionne pas comme je le souhaite.

Tu as ajouté

Sheets(2).Range("A11:H11").ClearContents

Mais cela ne répond pas du tout à mon problème.

Cela supprime que la ligne A11:H11, ce que je veux c'est lorsque je supprime tel ou tel ligne sur ma listbox, la ligne que j'ai supprimée soit supprimé aussi sur le classeur excel.

Merci pour ton retour,

Namco

Bonjour,

Je te propose d'ajouter la référence ligne et colonne dans la colonne "I"

.List(memoire, 8) = "=""R""&ROW()&""C""&COLUMN()"

ensuite, pour supprimer, tu fais " entireRow.delete" de la référence Colonne I de la ligne sélectionné.

.List(memoire, 8) doit s'incrémenter au fur et à mesure que l'on descend.

Je parviens à le faire entré en "I11" mais pas en dessous

J'aurai pu t'aider avec un code, mais je bloque sur ta variable "Mémoire" que je ne parviens à repérer ce qui la créée.

cordialement.

Saut Bitaljoe,

J'avais déjà essayé mais cela ne fonctionne pas comme je le souhaite.

Il faut surement ajouter la fonction application.match mais je cale dessus.

J'essaye d'explorer cette piste ^^

Merci pour ton astuce

Namco

Saut Bitaljoe,

J'avais déjà essayé mais cela ne fonctionne pas comme je le souhaite.

Il faut surement ajouter la fonction application.match mais je cale dessus.

J'essaye d'explorer cette piste ^^

Merci pour ton astuce

Namco

Tu parle certainement de "Target" et "Select Case".

Un autre moyen serait que la référence que je met en I11 soit plus tôt en A11 comme identifiant unique générer avant de renseigner les autres cellules (comme l'enregistrement dans les base de données).

Ainsi application.match ou Select case à partir de la sélection dans le formulaire devra prendre cette ID unique et supprimer la ligne.

Salut Bitajolie,

Finalement, la réponse était très simple à mon sujet.

Il fallait juste ajouter cette ligne de code :

Worksheets("Feuil2").Cells(11 + .listIndex, 1).EntireRow.Delete Shift:=xlUp

Problème résolu ^^

Namco

Rechercher des sujets similaires à "xl2013 supprimer ligne classeur item listbox"