XL 2016 Suppression de lignes d'un onglet à un autre sous conditions

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 !

dridriboulot

XLDnaute Nouveau
Bonjour à tous,

J'ai parcouru le forum en vain et je n'ai pas trouvé de réponse à ma question.

J'explique le problème et je joindrai un fichier exemple pour visualiser le tout.

Dans le premier onglet "résidus", j'ai 2 colonnes :
- une qui est le numéro d'identification
- l'autre qui représente les résidus issus d'une régression.

Dans le 2ème onglet "base_de_donnees", j'ai:
- le numéro d'identification
- l'année
- le coefficient de variation

Mon objectif est de supprimer toutes les lignes de l'onglet "base_de_donnees" qui ont leurs numéros d'identification qui apparait dans le premier onglet.

Par exemple, le numéro d'identification 282488 (ligne 2) apparait dans l'onglet résidus. Il faut donc le supprimer de l'onglet base_de_donnees (ce numéro apparaît pour ce cas la à la ligne 177) et ainsi de suite.

Pourriez vous me donner un coup de main ?

Je vous remercie par avance 🙂

Dridri
 

Pièces jointes

Bonsoir Dridri

Faut pas racconter ich n'mporte quoi 😵. Moi en à peine 2 minutes j'ai trouvé ceci et que j'ai modifié pour test. À mettre dans le module de la feuille résidus.

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim i As Long
With Sheets("base_de_donnees")
            For i = .Range("a" & .Rows.Count).End(xlUp).Row To 2 Step -1
                        If .Range("a" & i).Value = ActiveCell.Value Then
                                   .Rows(i).Delete
                        End If
            Next i
End With
Cancel = True
End Sub
 
Bonjour, dridriboulot, Lone-wolf 🙂, le Forum,

Une autre suggestion avec le code suivant :
VB:
Option Explicit
Sub Ligne_supprimer()
    Dim c As Range
    With Application: .ScreenUpdating = False: .Calculation = xlManual: .EnableEvents = False: End With
    On Error Resume Next
    With Sheets("residus")
        For Each c In .Range(.Range("a2"), .Range("a2").End(xlDown)).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants)
            Sheets("base_de_donnees").[a:a].Replace c, c(1, 56), xlWhole
        Next
    End With
    Sheets("base_de_donnees").Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    On Error GoTo 0
    With Application: .EnableEvents = True: .Calculation = xlAutomatic: .ScreenUpdating = True: End With
End Sub
A bientôt 🙂
 
Lone-Wolf, DoubleZero je vous remercie infiniment pour vos réponses si rapide, ca m'enlève un belle épine du pied et surtout évite d'aggraver ma calvitie 😀
L'option de Lone-Wolf est plus rapide dans le traitement de ma base de données. Je vais essayer de la comprendre mnt 😎

Bonne soirée à vous 🙂
 
- 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

Retour