Macro suppression de lignes sous condition

Résolu
Bonjour,

Je souhaiterais faire une macro qui supprime des lignes dans un tableau excel sous condition.
Après la ligne nommée TOTAL GENERAL, supprimer toutes les lignes.

Sachant que celle-ci peut se trouver n'importe ou?

Par avance merci de votre coopération.

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. bonjour

    un exemple à copier dans un module (Alt-F11 pour y accéder)
    les constantes sont à adapter

    Option Explicit
    
    Const F = "FEuil1"
    Const lideb = 1
    Const codeb = 1
    Const motcle = "TOTAL GENERAL"
    
    Public Sub SupprimeLignesApresMotCle()
    Dim li As Long, lifin As Long
    Dim mot As String, s As String
    lifin = Sheets(F).Cells(65536, codeb).End(xlUp).Row
    For li = lifin To lideb Step -1
      s = Sheets(F).Cells(li, codeb)
      If s = motcle Then: Exit Sub
      If s <> motcle Then
        Sheets(F).Rows(li).Delete
      End If
    Next li
    End Sub


    bonne suite
    1. bonjour,

      J'ai testé cette macro mais çà ne marche pas.

      Puis-je vous envoyer mon fichier?

      Par avance, merci
      1. re

        J'ai testé cette macro mais çà ne marche pas.

        1. as tu copié la macro dans un module
        2. as tu modifié les valeurs des constantes en les adaptant à ton fichier,
        3. pour envoyer ton fichier, tu utilises cijoint.fr ou cjoint.com et tu joins le lien a ton prochain post

        bonne suite
        1. bonjour

          Voici le lien pour le fichier.

          http://www.cijoint.fr/cjlink.php?file=cj201109/cijn1kqfy6.xls

          Par avance, merci
          1. Contributeur
            Bonjour

            a eesayer

            Option Explicit 
            Const Cible As String = "total général" 
            
            Sub supprimer_après() 
            Dim Deb As Long, Ffin As Long 
            
            With Sheets("MEUR Commissionnaire") 
                 Deb = .Cells.Find(Cible, , xlFormulas, , xlByRows, xlPrevious).Row + 1 
                 fin = .Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row 
                 .Rows( Deb & ":" & fin).Clear 
            End With 
            
            End Sub


            formules deb et fin d'après Alain Vallon (excelabo)
        2. Contributeur
          Salut CCM31

          petits détails :o)

          une constante se déclare avant la procédure (comme public, private...) pour pouvoir l'utiliser dans plusieurs procédures dans le p^rojet
          m^me si ici, il n'y a qu'une proc, nous mettons en constante question de lisibilité et pour éviter de rentrer à l'intérieur de la proc

          il faut déclarer le type de la constante
          Const Cible as string="machin"
          sinon Cible est considéré comme un variant ==> conso de Ram

          voilà, surtout, ne prends pas ça mal
          1. salut michel_m

            RQ1. Je sais, c'est à cause d'une sombre histoire de copier/coller
            RQ2. Je ne connaissais pas la déclaration du type d'une constante chaine (chaine seulement ?)
            RQ3. Rassures toi, apprendre quelque chose ne fait jamais mal !

            bonne journée
            1. Contributeur
              chaine seulement ?

              Non, comme une variable
              const xxx as byte=34
              const yyy as date=#12/09/2010#
              const zzz as string*1="A"
              etc