Suppression de lignes en fonction d'une cellule

Bonsoir le forum,

Je souhaiterai pouvoir via vba (au moment de l'enregistrement du fichier) supprimer les lignes (de la feuille 2) d'un tableau

Un fichier exemple sera surement et très certainement plus parlant !

Dans l'attente de vous lire

33fichier-test.xlsm (15.66 Ko)

Bonjour,

Pas fort clair..., tu veux supprimer la ligne qui à le N° 4, Paul benjamin.

Tu veux Supprimer ou vider la ligne.

(Supprimer fait remonter toutes les autres lignes.)

Tu dis.

Bonjour Iermite,

En fait dans le tableau B2:H22 je veux supprimer toutes les lignes qui ne correspondent pas à la cellule "N° de ligne" de la feuille "Log"

Pour info : La feuille "Bdd" est protégée et seules les cellules B2:H22 ne seront pas verrouillées.

J'espère avoir été un petit peu plus clair.

Dans le contexte que tu explique il n'est pas possible de supprimer la/les lignes, ont peu juste les vider.

Éventuellement remonter les données suivantes.

Tu dois faire la différence entre supprimer et vider, c'est différent.

Le plus simple, reposte ton classeur avec une feuille qui montre le tableau actualiser selon ce que tu veux.

EDIT : Tout compte fait, regarde le fichier en retour

Salut Lermite,

Un grand merci, c'est déjà très bien !

Une autre supposition, est il possible de masquer les lignes tel que le ferrai un filtre automatique sans supprimer les données ?

Mais oui..

Ouah c'est juste ce que je voulais, merci ! A un détail près il faudrait qu'il masque toutes les lignes même mais c'est parfait ! Je vais essayer de le corriger moi même

Et encore une autre petite suggestion, désolé mais les idées viennent au fur et à mesure. Est-il possible d'intégrer le choix de la cellule dans un userform ou autre avec plusieurs critères ?

Bonjour Lermite,

Me revoilà avec mon filtre automatique, je l'ai adapté à mon code par contre je n'arrive pas à masquer les lignes qui sont situées en dessous ?!? J'ai dû rater qqch dans ton code.

Il me laisse en 1ère ligne celle sélectionnée par la cellule renseignée mais il me laisse toutes les vides en dessous. Je voudrai qu'elle n'apparaisse pas non plus.

Comment puis je faire ?

D'avance merci

Tu supprime la ligne...

        If Cells(lig, 3) = "" Then Exit Sub

A+

Merci de ta rapidité, moi j'avais bidouillé un truc du genre :

Sub Masque_itt()
Dim Lig As Integer
Dim Num1 As String, Num2 As String
Num1 = [C2]
Num2 = [C3]
    'Me.Unprotect "x"
    Application.ScreenUpdating = False
    For Lig = 6 To 505
        If Cells(Lig, 3) = "" Then Exit Sub
        If Cells(Lig, 2) <> Sheets("Prépa").[L1] Then
            'Rows(lig).Hidden = True
            ActiveSheet.Range("$B$6:$CW$505").AutoFilter Field:=1, Criteria1:=Num1
        End If
    Next Lig
    'Me.Protect "x"

End Sub

Elle sert à quoi exactement la ligne que tu m'as dit d'enlever car moi j'ai enlever celle là :

 
       'Rows(lig).Hidden = True

Maintenant le soucis c'est que j'ai 2 critères, d'où le Dim Num12 et Num2. Comment le rajouter dans les critères ?

C'est bon j'ai résolu mon problème ! Et tout seul en + ! Enfin avec l'enregistreur de macros qd même

Pour info :

Sub Masque_lignes()

Dim Num1 As String, Num2 As String
Num1 = [C2]
Num2 = [C3]
    'ActiveSheet.Unprotect "xx"

    ActiveSheet.Range("$B$6:$CW$505").AutoFilter Field:=1, Criteria1:=Num1, _
    Operator:=xlOr, Criteria2:=Num2

    'ActiveSheet.Protect "xx"

End Sub

si ça peut aider certains.

En tout cas merci pour tout Lermite

@ bientôt

Si tu avais donné directement les bons renseignements c'est la solution que je t'aurais proposé mais pour une 20aine de lignes et un seul critère c'était pas la peine.

Bonjour Lermite.

C'est facile de dire ça une fois que j'ai donné la solution

Non mais plus sérieusement c'est sûr que j'avais synthétisé mon tableau mais çà c'était pour l'envoi d'un fichier test.

Mais oui j'aurai dû préciser qu'il pourrait y avoir plusieurs critère ça vous aurait surmt aiguiller.

Bonne journée et à bientôt pour un prochain problème

Rechercher des sujets similaires à "suppression lignes fonction"