Macro suppression de lignes sous condition

Résolu/Fermé
CALI - 14 sept. 2011 à 15:19
 CALI - 20 sept. 2011 à 13:10
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.


A voir également:

7 réponses

ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
14 sept. 2011 à 17:24
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
0
bonjour,

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

Puis-je vous envoyer mon fichier?

Par avance, merci
0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
16 sept. 2011 à 10:56
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
0
bonjour

Voici le lien pour le fichier.

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

Par avance, merci
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 19/09/2011 à 13:53
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)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
19 sept. 2011 à 22:12
re

avec la macro de michel_m

https://www.cjoint.com/?0ItwlbICr9Z

RQ1. Ctrl+s pour lancer la macro
RQ2. j'ai rajouté une confirmation

bonne suite
0
bonjour et merci beaucoup.

Cà fonctionne

A+
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 sept. 2011 à 07:42
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
0
ccm81 Messages postés 10854 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 26 avril 2024 2 404
20 sept. 2011 à 07:53
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
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
20 sept. 2011 à 08:41
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
0