Suppression de lignes après une cellule

nice

XLDnaute Nouveau
Bonjour à tous

Je souhaite utiliser une macro pour supprimer des lignes ( dans l'exemple ci joint, 13 lignes) après une cellule de résultat ( somme de 2 colonnes )
Ce tableau est mis à jour et le nombre de lignes avant résultat augmente à chaque mise à jour
Mon niveau de VBA étant ce qu'il est ( très mince ),
j' en appelle à vos compétences

Par avance Merci à tous pour votre aide
 

Pièces jointes

  • Exemple.xls
    24 KB · Affichages: 54
  • Exemple.xls
    24 KB · Affichages: 55
  • Exemple.xls
    24 KB · Affichages: 53

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Suppression de lignes après une cellule

Bonjour Nice,

avec ce code ( si on doit tout supprimer à partir de la ligne 26)
Code:
    Rows("26:26").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.ClearContents
    Range("A26").Select
le problème consiste à déterminer la ligne où se trouvera le total
il suffirait de mettre le mot "TOTAL" en colonne M (à la ligne 25 dans ton exemple)
après chaque mise à jour, il restera à déterminer la position du mot "TOTAL" et l'utiliser dans la première ligne du code comme ceci: Rows(position+1).Select


à+
Philippe
 
Dernière édition:

nice

XLDnaute Nouveau
Re : Suppression de lignes après une cellule

Merci Phillipe
Mais que fait on de la variation des lignes qui augmentent avant le résultat
la ligne 26 est un exemple mais on peut avoir après mise à jour, n lignes ( dans l'absolu le nombre max de lignes d' excel ) moins les 13 lignes qu'il faut toujours enlever après le résultat.
Je me suis mal exprimé, il y a toujours 13 lignes à enlever

a+
Gilbert
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Suppression de lignes après une cellule

Re,
Mais que fait on de la variation des lignes qui augmentent avant le résultat
??????

ce que j'ai voulu dire , c'est qu'il faut retrouver la ligne qui contient le résultat et s'en servir pour effacer tout ce qui se trouve en dessous

le code donné au post précédent est à utiliser après la mise à jour


à+
Philippe
 

nice

XLDnaute Nouveau
Re : Suppression de lignes après une cellule

Re

J'ai bien compris Phillipe mais il faut taper manuellement un "repère" par ex "TOTAL" dans la cellule précédente après chaque mise à jour!?
N'y a t' il pas une solution plus "automatique" avec macro?

a+
Gilbert
 

JNP

XLDnaute Barbatruc
Re : Suppression de lignes après une cellule

Bonsoir Nice, re Philippe :),
A tester
Code:
Sub Test()
Dim Cellule As Range
For Each Cellule In Range("N1:N" & Range("N65536").End(xlUp).Row)
If Cellule.Formula Like "=SUM*" Then
Rows(Cellule.Row + 2).Resize(13).Delete
End If
Next Cellule
End Sub
Bonne suite :cool:
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : Suppression de lignes après une cellule

Re,

une autre manière de s'y prendre
Code:
Sub Macro1()
Dim myRange As Range
Set myRange = Worksheets(1).Range("N1:N65535")
trouvemax = Application.WorksheetFunction.Max(myRange)
For i = 1 To Range("N65536").End(xlUp).Row
If Cells(i, 14).Value = trouvemax Then
ligne = i + 2
Exit For
End If
Next i
Rows(ligne).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.ClearContents
End Sub

à+
Philippe
 

nice

XLDnaute Nouveau
Re : Suppression de lignes après une cellule

Bonsoir JNP, Re Philippe

Vos 2 macros fonctionnent à merveille!!
Une question "embarrassante" ( je ne veux pas vous fâcher ! )
Quelle est la mieux ? étant novice, je ne peux pas les commenter

a+
Gilbert
 

JNP

XLDnaute Barbatruc
Re : Suppression de lignes après une cellule

Re :),
Une question "embarrassante" ( je ne veux pas vous fâcher ! )
Quelle est la mieux ? étant novice, je ne peux pas les commenter
Comme l'a dit Philippe, ce sont 2 manières différentes d'aborder le problème, donc pas forcément comparables :rolleyes:...
On pourrait facilement en trouver d'autres déclinaisons, un Find à la place de la boucle de Philippe par exemple, mais ça ne prendra de l'importance que si tu traites 20000 ou 30000 lignes :p...
J'avais d'ailleurs d'abord pensé au Max, mais comme je n'étais pas sûr que la valeur dans la colonne à droite était toujours négative, j'ai préféré chercher le SUM ;).
Donc si la valeur au dessus est toujours plus grande que la somme, pas de problème, les 2 sont bonnes :).
Bonne soirée :cool:
Ajout : Finalement, j'avais bien fait de me "déméfier" :p
 

Staple1600

XLDnaute Barbatruc
Re : Suppression de lignes après une cellule

Bonsoir à tous


Une autre façon
Code:
Sub a()
Rows([MASOMME].Offset(1).Row & ":65536").Delete
End Sub

Préalable: Tu nommes ta cellule ou est ta formule avec Insertion/Noms/Définir
(Ici je l'ai nommée MASOMME)
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin