Supprimer (par VBA) une ligne d’un tableau après son extraction.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

rounil09

XLDnaute Occasionnel
Bonjour à la liste

Je vous sollicite pour une macro que je n’arrive pas à écrire.

Soit un tableau dans une feuille (feuille1) d’un classeur comprenant 49 colonnes et 100 lignes environ:

J’effectue des extractions de ce tableau vers une autre feuille (feuille2) en y appelant un 'code_article' par liste déroulante, puis avec d’autres infos par RECHERCHEV. Enfin, je complète la feuille 2 avec d’autres éléments issus d’autres tableaux.
Par exemple, dans le tableau trés simplifié joint, je sélectionne le 'code_article‘102/56, en liaison avec RECHERCHEV.

Ce que je souhaite ensuite, quand j'ai fini de renseigner la feuille 2 – mais que je n’arrive pas faire car je débute en VBA – c’est supprimer la ligne correspondant au code_article ‘102/56’, c’est à dire dans mon exemple, la ligne 1 de la feuille 1.

Quelqu’un peut-il m’aider en me proposant une macro traitant cet exemple que je transposerai.
 

Pièces jointes

Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Bonjour rounil09, Jean-Marcel et le forum,

Avec un lancement de procédure par double click dans la cellule de la colonne B.

Un message de vérification avant la supression de la ligne.
 

Pièces jointes

Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Bonjour CBernardT, Jean-Marcel,
Une proposition.
Attention à tester sur une copie. La selection d'un nom dans la cellule C5 de la feuille 2 entraine la suppression de la ligne correspondante sur la feuille1...

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 Dim Var As String
 If Not Intersect([C5:C5], Target) Is Nothing And Target.Count = 1 Then
    Var = Sheets("Feuil2").Range("C5").Value
    For i = 2 To 200
        If Sheets("Feuil1").Cells(i, 2).Value = Var Then
            Sheets("Feuil1").Cells(i, 2).EntireRow.Delete
        End If
    Next i
End If
End Sub
Cordialement

Edit:
A mettre dans le code la feuille 2
Jean-Marcel: Après tests, je n'ai pas eu de "ratés"...mais je n"ai peut être pas vu le piège.
 

Pièces jointes

Dernière édition:
Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Merci de vos réponses. Je vais tester et vous tient au courant.
Réponse à jean-Marcel : La feuille 1 sert à tenir l'état des stocks de produits.
La feuille 2, alimentée aussi par d'autres tableaux, sert à faire une répartiton des produits en stock à des distributeurs à partir de calculs multicritères.
Donc une fois que j'ai affecté des produits en stock, le stock d'encours utilisable a diminé, et je veux donc supprimer les lignes correspondantes en feuilles 1.
Par contre je veux garder en feuille 2 l'info que j'ai extraite en feuille 1.
J'espère avoir été clair...
Quoi qu'il en soit, merci pour votre aide.
 
Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

RE à tous,
Jean-Marcel, je suis bien d'accord avec toi
la logique de fonctionnement est surprenante
😀 😀
Mais il se trouve que , sans le faire intentionnellement 😱, les recherchev fonctionnent avant la suppression de la ligne.
Pour le
Par contre je veux garder en feuille 2 l'info que j'ai extraite en feuille 1.
j'avoue ne pas voir la solution si ce n'est créer un "base de données" ou juste masquer ligne sans la supprimer...
Nous verrons bien la suite donnée au fil...
Cordialement
 
Dernière édition:
Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Bonsoir rounil09, Jean-Marcel, Bernard, FG,

Pas bien compris non plus l'utilité de faire une RECHERCHEV ou une autre fontion du même genre pour afficher (jusque là, ça va), et pour supprimer ensuite l'entrée dans la base de données....

Ce qui manque, c'est l'objectif de la chose.

Bonne soirée tous.

Jean-Pierre
 
Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Je comprends vos questions. En fait, c'est par manque de connaissance du VBA que j'ai monté une petite usine à gaz. En fait, je n'arrive pas à fusionner plusieurs tableaux dans une base de données que je suis amené ensuite à compléter et à modifier.
J'ai donc trouvé des solutions de substitution (je fais des petits tas que je mets dans un gros tas, puis je supprime mes petits tas) qui me permettent de m'en sortir.

Ceci dit, vos macros m'ont apporté la solution que je recherchais. En particulier celle de Jean-Pierre qui a réglé le problème de la décrémentation de la liste déroulante.

Je reprendrai ce fichier à zéro (fichier que j'ai déjà sensiblement amélioré depuis que je remplace des formules par du VBA) lorsque j'aurai suffisamment progréssé en VBA, code que j'apprends sur le tas, quand j'en le temps ou la néccéssité.
 
Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Re à tous, bonsoir jeanpierre,

Je pense que la solution de masquer la ligne est un "moyen terme" valable.
On continu à bénéficier des RECHERCHEV en feuille 2, et on ne voit plus les lignes validées en feuille 1.
Cordialement
EDIT : Après la bataille ce post...
 

Pièces jointes

Re : Supprimer (par VBA) une ligne d’un tableau après son extraction.

Re,

sauf erreur, "En particulier celle de Jean-Pierre qui a réglé le problème de la décrémentation de la liste déroulante.", je ne me rappelle pas avoir donné une solution dans ce sens, cela doit concerner un autre membre...

Mais ce n'est pas grave, le principal c'est que tu t'en sortes.

Bonne soirée.

Jean-Pierre
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Tableau
Réponses
24
Affichages
2 K
Réponses
4
Affichages
550
  • Question Question
Microsoft 365 Tableau de bord
Réponses
2
Affichages
1 K
Retour