Supression auto de lignes par macro VBA

bonjour a tous,

je suis un petit nouveau qui viens vers vous car j'ais un gros soucis sur une macro:

je gere un club et des competiteurs. j'ai automatiser via excel la saisie des resultats mais sur certaines de nos compet, on nous demande des resultats par équipe, et pour que ce soit plus juste, on nous demande de ne prendre que les 4 premiers.

et c'est la qu'est toute l'etendue de mon problème:

  • le nombre de participant par equipes/club est variable et ce d'une competition a l'autre.
  • je n'ai donc pas toujours le mme nombre de ligne a suprimer sur l'onglet classement equipe ni au mme endroit.

donc mon souhait, serais que sur le fichier joint, il y ait une macro ou un complement a celle existante, me permetant de suprimer les lignes au dela du 4eme competiteur quelque en soit le nombre (lignes grisées sur le fichier) .

merci pour votre aide

ps: en fin de tableau vous se trouve des lignes restées vides: le top serais de pouvoir les suprimer elles aussi en auto via une autre macro, mais ceci n'est pas un gros probleme si trop complexe! merci encore.

30test.xlsm (45.12 Ko)

Bonjour et bienvenue,

Sub SupprLignes()
Dim Lg&
    Application.ScreenUpdating = False
    Lg = Range("a" & Rows.Count).End(xlUp).Row
    Range("o2") = "=and(b7<>""Clas."",b7>4)" 'critères filtre
    Range("a6:n" & Lg).AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
    Range("o1:o2"), Unique:=False
    '--- supprime CLAS. >4 ---
    Range("o2").ClearContents
    On Error Resume Next
    Range("a7:a" & Lg).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    ActiveSheet.ShowAllData
    On Error GoTo 0
    '--- supprime excédents ---
    Lg = Range("a" & Rows.Count).End(xlUp).Row
    Range("a" & Lg + 1 & ":a" & Rows.Count).EntireRow.Delete
End Sub

Amicalement

Claude

merci Claude,

ca fonctionne du tonnere! le seul soucis c'est que je comprend rien a la macro !

j'ai bien compris que tu avais fait un bout pour suprimer >4 et un autre pour suprimer les lignes vides

mais je ne comprend pas le debut !

j'avais avertis, je suis novice, mais j'essai de comprendre !

re,

Il s'agit d'un filtre élaboré,

on filtre la colonne "B" >4 et <> de "CLAS."

et on supprime les lignes filtrées

c'est tout !

Claude

a resolu3

merci pour tout !

Rechercher des sujets similaires à "supression auto lignes macro vba"