Excel VBA : Garder une ligne selon certains critère

  • Initiateur de la discussion Initiateur de la discussion nahtalie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

N

nahtalie

Guest
Bonjour,

Je souhaiterais connaître le code pour garder des lignes dans un fichier Excel selon certains critères :

Par exemple :

Dans ma cellule "G3" j'ai le nom d'un produit et dans la cellule "H3" un montant de 6000000, et la ligne d'après cellule "G4" j'ai le même nom de produit mais j'ai un montant en "H4" de "4000000".

Je souhaite que la macro supprime la ligne 4 en entier pour ne garder que la ligne qui contient le montant (colonne H) maximum.

La macro devra comparer toutes les lignes du fichier
(si c'est pas long elle pourrait aller jusqu'à la ligne 650000, sinon on arrête à la ligne 20000 par exemple après je peux toujours ajuster).

Voila j'espère que je suis claire
Merci à tous d'avance,
nat
🙂
 
Re : Excel VBA : Garder une ligne selon certains critère

bonjour nathalie,

voici un essai :
Code:
Sub test()
Dim zoneRef As Range, i As Integer
With ThisWorkbook.Sheets("Feuil1")
    Set zoneRef = .Range("G3", .Range("H" & .Rows.Count).End(xlUp))
    zoneRef.Sort key1:=.Range("G3"), order1:=xlAscending, key2:=.Range("H3"), order2:=xlDescending
    For i = zoneRef.Rows.Count + 2 To 4 Step -1
        If .Range("G" & i).Text = .Range("G" & i - 1).Text Then .Rows(i).Delete
    Next i
End With
End Sub

a+
 
Re : Excel VBA : Garder une ligne selon certains critère

Bonjour à tous,

J'ai un petit souci avec le code de Mromain.

En effet quand je l'exécute tout seul ça marche, mais quand je le mets à l'intérieur d'une autre macro là rien ne va plus.

Il bloque (une flèche "jaune" apparaît) sur la ligne :

->With ThisWorkbook.Sheets("Feuil1")


D'avance merci de votre aide,
nat
 
Re : Excel VBA : Garder une ligne selon certains critère

bonjour nahtalie,

With ThisWorkbook.Sheets("Feuil1") signifie qu'on travaille avec la feuille nommée "Feuil1".
est-ce que tu as une feuille "Feuil1" dans ton classeur ?

si tu veux prendre en compte la feuille active à l'exécution de la macro, remplace cette ligne par With ActiveSheet.


a+
 
Re : Excel VBA : Garder une ligne selon certains critère

Merci merci Mromain.
Effectivement, tu as raison j'ai mis "activesheet" et ça marche du tonnerre.
Tu me sauves la vie, encore merci et excellente journée à toi.

++
nat
 
Re : Excel VBA : Garder une ligne selon certains critère

Me revoila,
j'ai parlé un peu vite.


Je viens de me rendre compte qu'il faut en fait que la macro fasse aussi un test sur la cellule L3.

En fait en L3 j'ai l'année, si j'ai le même nom de produit et la même année il faut supprimer la ligne.

Comment je modifie le code ?

d'avance un grand merci pour l'aide
++
nat
 
Re : Excel VBA : Garder une ligne selon certains critère

bonsoir nahtalie,

voici un essai (si j'ai bien compris)
Code:
Sub test()
Dim zoneRef As Range, i As Integer
With ThisWorkbook.Sheets("Base")
    Set zoneRef = .Range("G3", .Range("O" & .Rows.Count).End(xlUp))
    zoneRef.Sort key1:=.Range("G3"), order1:=xlAscending, key2:=.Range("L3"), order2:=xlDescending, key3:=.Range("H3"), order3:=xlDescending
    For i = zoneRef.Rows.Count + 2 To 4 Step -1
        If .Range("G" & i).Text = .Range("G" & i - 1).Text And .Range("L" & i).Text = .Range("L" & i - 1).Text Then .Rows(i).Delete
    Next i
End With
End Sub

si ce n'est pas le bon résultat, donnes moi plus d'info
(sinon, tant mieux 😉)

a+
 
Re : Excel VBA : Garder une ligne selon certains critère

Oui Mromain, c'est tout à fait ça et ça marche.

Je vais malgré tout checker les résultats pour être bien sure que c'est bon, je te confirme tout ça cette après midi.

Merci beaucoup,
Bonne journée

++
nat
🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
Réponses
0
Affichages
500
bd.afaf
B
T
Réponses
5
Affichages
2 K
T
D
Réponses
5
Affichages
10 K
D
Retour