Supprimer des lignes sous conditions

Fermé
marieg58 - 7 avril 2011 à 15:54
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 8 avril 2011 à 08:47
Bonjour,
Je voudrais, dans un tableau, supprimer les lignes qui ont la même valeur en colonne a et colonne B.
La colonne a contient des codes article, la colonne B des prix, la colonne C une date.
Je veux supprimer toutes les lignes qui ont les mêmes code article etmêmes dates.
J'ai fait ce code mais ca ne fonctionne absolument pas.

Sheets("feuil5").Select
Range("a1").Select

Dim feuille As Worksheet
Set feuille = ActiveSheet
With feuille
For i = .UsedRange.Rows.Count To 1 Step -1
j = i + 1
If (.Cells(i, 1) & .Cells(i, 2)) = (.Cells(j, 1) & .Cells(j, 2)) Then
.Range(.Cells(j, 1), .Cells(j, 4)).ClearContents
End If
Next i
End With

Je suis débutante
merci de votre aide




A voir également:

3 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
7 avril 2011 à 16:21
Salut,
Sans avoir tester, remplace :
If (.Cells(i, 1) & .Cells(i, 2)) = (.Cells(j, 1) & .Cells(j, 2)) Then
par :
If .Cells(i, 1) = .Cells(j, 1) And .Cells(i, 2) = .Cells(j, 2) Then
--
Franck P
0
Merci mais ca ne fonctionne pas tout a fait correctement.
Au bout d'un moment il s'arrete et j'ai la fenete débogage
Et enfin je voudrais supprimer les 2 lignes identiques, mais il ne supprime que la deuxième
merci de votre aide
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
Modifié par pijaku le 7/04/2011 à 16:43
Pour supprimer entièrement 2 lignes :
.Rows(i & ":" & j).EntireRow.Delete
!!! ATTENTION travaillez sur une copie de votre classeur car cette macro contient un Delete... Si ça foire, ça supprime!!!!!

Pourquoi ça s'arrête? Que dis le débogage? Désolé, je ne suis pas devin....
0
Désolée je ne suis pas très douée, je débute, en fait j'ai un gros fichier à traiter et je ne m'en sors pas.
En fait, au bout d'un moment, J'ai une boite de dialogue "Erreur 13 Incomptabilité de type" et il surligne la ligne
If .Cells(i, 1) = .Cells(j, 1) And .Cells(i, 2) = .Cells(j, 2) Then

J'ai modifié le code comme suit :
Sub Macro()
Sheets("feuil5").Select
Range("a1").Select
Dim feuille As Worksheet
Set feuille = ActiveSheet
With feuille
For i = .UsedRange.Rows.Count To 1 Step -1
j = i + 1
If .Cells(i, 1) = .Cells(j, 1) And .Cells(i, 2) = .Cells(j, 2) Then
.Rows(i & ":" & j).EntireRow.Delete
End If
Next i
End With
End Sub

Mais cette fois, il tourne dans le vide. J'ai encore dû faire une erreur
merci
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
8 avril 2011 à 08:47
salut,
Sans voir le fichier, il va être difficile de continuer. Ta macro n'a pas l'air mauvaise...
A tout hasard, la feuille est bien triée ?
0