bobjazz
XLDnaute Impliqué
Bonjour le Forum,
J'ai déjà demander votre aide sur ce sujet la semaine dernière, mais comme d'habitude quand cela fonctionne, on va plus loin dans nos fichiers, donc j'ai une autre demande pour faire évoluer le code que Robert m'avait fait que j'adapte sur un autre sujet.
Le code de Robert contrôle les doublons avec comme référence la colonne D, on supprime les doublons et en plus comme condition si la cellule dans la colonne L est non vide, on garde les lignes.
Je voudrait faire la même chose, mais en prenant en compte que si une cellule entre L et S contient une donnée, je garde la ligne, et là depuis hier soir, je reconnais que je seiche.
Voilà le code de Robert :
Sub supprimeDoublons1()
Dim MaCellule As Range 'déclare la variable MaCellule
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim x As Integer 'déclare la variable x (incrément)
Dim donnee1 As String 'déclare la variable donnee1 (type à adapter à ton cas)
Set MaCellule = Range("D2") 'définit la variable MaCellule
MaCellule.CurrentRegion.Sort Key1:=MaCellule, Order1:=xlAscending, Header:=xlYes 'tri croissant par rapport à la colonne D de la plage des cellules adjacentes à MaCellule
dl = Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne de la colonne D (4)
For x = dl To 2 Step -1 'boucle inversée de la dernière ligne à la ligne 2
donnee1 = Cells(x, 4).Value 'définit la variable donnee1
If Application.WorksheetFunction.CountIf(Range("D2😀" & dl), Cells(x, 4)) > 1 Then 'condition : si il y a plusieurs occurrences de la cellule dans la plage D2😀&dl
If Cells(x, 13).Value = "" Then Rows(x).Delete 'si la cellule de la colonne L est vide, supprime la ligne
End If
'si la cellule de la colonne L est vide, supprime la ligne
End If 'fin de la condition
Next x 'prochaine ligne de la boucle
End Sub
Joins un fichier pour expliquer
Merci d'avance
Bobjazz
J'ai déjà demander votre aide sur ce sujet la semaine dernière, mais comme d'habitude quand cela fonctionne, on va plus loin dans nos fichiers, donc j'ai une autre demande pour faire évoluer le code que Robert m'avait fait que j'adapte sur un autre sujet.
Le code de Robert contrôle les doublons avec comme référence la colonne D, on supprime les doublons et en plus comme condition si la cellule dans la colonne L est non vide, on garde les lignes.
Je voudrait faire la même chose, mais en prenant en compte que si une cellule entre L et S contient une donnée, je garde la ligne, et là depuis hier soir, je reconnais que je seiche.
Voilà le code de Robert :
Sub supprimeDoublons1()
Dim MaCellule As Range 'déclare la variable MaCellule
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim x As Integer 'déclare la variable x (incrément)
Dim donnee1 As String 'déclare la variable donnee1 (type à adapter à ton cas)
Set MaCellule = Range("D2") 'définit la variable MaCellule
MaCellule.CurrentRegion.Sort Key1:=MaCellule, Order1:=xlAscending, Header:=xlYes 'tri croissant par rapport à la colonne D de la plage des cellules adjacentes à MaCellule
dl = Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne de la colonne D (4)
For x = dl To 2 Step -1 'boucle inversée de la dernière ligne à la ligne 2
donnee1 = Cells(x, 4).Value 'définit la variable donnee1
If Application.WorksheetFunction.CountIf(Range("D2😀" & dl), Cells(x, 4)) > 1 Then 'condition : si il y a plusieurs occurrences de la cellule dans la plage D2😀&dl
If Cells(x, 13).Value = "" Then Rows(x).Delete 'si la cellule de la colonne L est vide, supprime la ligne
End If
'si la cellule de la colonne L est vide, supprime la ligne
End If 'fin de la condition
Next x 'prochaine ligne de la boucle
End Sub
Joins un fichier pour expliquer
Merci d'avance
Bobjazz
Pièces jointes
Dernière édition: