Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

supprimer ligne n si c'est la même que celle n-1?

3 réponses
Avatar
Fred
Bonjour,
J'aimerais faire un contrôle sur des lignes.
Si les lignes ont la même valeur sur les 4 premières colonnes (j'ai une
dizaine de colonnes...) je voudrais supprimer la ligne en dessous!
J'ai testé ceci mais ça ne fonctionne pas ..comment mettre plusieurs
conditions dans une boucle???
For n = 3 to Range("A65536").End(xlUp).Row
If Cells(n, 1).Value > 0 = Cells(n - 1, 1).Value > 0 Then
If Cells(n, 2).Value > 0 = Cells(n - 1, 2).Value Then
If Cells(n, 3).Value = Cells(n - 1, 3).Value Then
If Cells(n, 4).Value = Cells(n - 1, 4).Value Then
Rows(n).Delete
End If
Next n
Merci!!!

3 réponses

Avatar
SL
Bonjour

sans VBA :
tu sélectionnes tes 4 premières colonnes
Données/Filtre/Filtre élaboré cocher sans doublon

automatiquement Excel te filtre les lignes qui font doublon

copie tout et colle le dans une autre feuille.

ATTENTION. cela n'est pas valable si tu veux garder des lignes identiques
situées à différents endroits (par exemple si on retrouve la ligne 3 en
ligne 10 séparée par d'autre éléments)

Stéphane

"Fred" a écrit dans le message de news:
4378964d$0$18079$
Bonjour,
J'aimerais faire un contrôle sur des lignes.
Si les lignes ont la même valeur sur les 4 premières colonnes (j'ai une
dizaine de colonnes...) je voudrais supprimer la ligne en dessous!
J'ai testé ceci mais ça ne fonctionne pas ..comment mettre plusieurs
conditions dans une boucle???
For n = 3 to Range("A65536").End(xlUp).Row
If Cells(n, 1).Value > 0 = Cells(n - 1, 1).Value > 0 Then
If Cells(n, 2).Value > 0 = Cells(n - 1, 2).Value Then
If Cells(n, 3).Value = Cells(n - 1, 3).Value Then
If Cells(n, 4).Value = Cells(n - 1, 4).Value Then
Rows(n).Delete
End If
Next n
Merci!!!



Avatar
Fred
Merci sl69 pour ta réponse.
Masi en VBA comment peut-on l'écrire et pourquoi ma macro ne fonctionne
pas???
Merci

"SL" a écrit dans le message de news:

Bonjour

sans VBA :
tu sélectionnes tes 4 premières colonnes
Données/Filtre/Filtre élaboré cocher sans doublon

automatiquement Excel te filtre les lignes qui font doublon

copie tout et colle le dans une autre feuille.

ATTENTION. cela n'est pas valable si tu veux garder des lignes identiques
situées à différents endroits (par exemple si on retrouve la ligne 3 en
ligne 10 séparée par d'autre éléments)

Stéphane

"Fred" a écrit dans le message de news:
4378964d$0$18079$
Bonjour,
J'aimerais faire un contrôle sur des lignes.
Si les lignes ont la même valeur sur les 4 premières colonnes (j'ai une
dizaine de colonnes...) je voudrais supprimer la ligne en dessous!
J'ai testé ceci mais ça ne fonctionne pas ..comment mettre plusieurs
conditions dans une boucle???
For n = 3 to Range("A65536").End(xlUp).Row
If Cells(n, 1).Value > 0 = Cells(n - 1, 1).Value > 0 Then
If Cells(n, 2).Value > 0 = Cells(n - 1, 2).Value Then
If Cells(n, 3).Value = Cells(n - 1, 3).Value Then
If Cells(n, 4).Value = Cells(n - 1, 4).Value Then
Rows(n).Delete
End If
Next n
Merci!!!







Avatar
PMO
Bonjour,

Une piste avec le code suivant à tester sur une COPIE
de votre classeur.

'***************
Sub PMO_DelRow()
Dim R As Range
Dim var
Dim v1
Dim v2
Dim n&
Dim j&
Set R = Range(Cells(1, 1), _
Cells(Range("A65536").End(xlUp).Row, 4))
var = R
'---- Faire la boucle à l'envers ----
For n& = UBound(var, 1) To 3 Step -1
v1 = ""
v2 = ""
For j& = 1 To 4
v1 = v1 & Trim(var(n&, j&))
v2 = v2 & Trim(var(n& - 1, j&))
Next j&
If v1 = v2 Then Rows(n&).Delete
Next n&
End Sub
'***************

Cordialement.

--
PMO
Patrick Morange



Bonjour,
J'aimerais faire un contrôle sur des lignes.
Si les lignes ont la même valeur sur les 4 premières colonnes (j'ai une
dizaine de colonnes...) je voudrais supprimer la ligne en dessous!
J'ai testé ceci mais ça ne fonctionne pas ..comment mettre plusieurs
conditions dans une boucle???
For n = 3 to Range("A65536").End(xlUp).Row
If Cells(n, 1).Value > 0 = Cells(n - 1, 1).Value > 0 Then
If Cells(n, 2).Value > 0 = Cells(n - 1, 2).Value Then
If Cells(n, 3).Value = Cells(n - 1, 3).Value Then
If Cells(n, 4).Value = Cells(n - 1, 4).Value Then
Rows(n).Delete
End If
Next n
Merci!!!