Bonjour
J'ai une plage de cellule
sheets("Travail").range("A3:A1000")
Je souhaite que si dans cette liste il y a un doublon, le supprimer par VBA
Merci
Flo riant
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Bonjour Florian,
Tu pourrais utliser une procédure comme celle-ci :
L'utilisation du filtre élaboré pour ce type de travail est très rapide.
Cette méthode requiert une zone de critère comme suit: C1 = "" C2 = "=NB.SI(A2:A5;A2)>1" Utilise 2 cellules dont tu es sûr qu'elles sont sans donnée.
Cette procédure élimine les lignes entières des doublons débutant par les premières entrées dans ton tableau. Exemple, si tu as un doublons en ligne A5 et A10, la ligne A5 sera supprimée pour ne conserver que la dernière occurrence en A10
La ligne entière du doublon est supprimée à cause de ceci : EntireRow dans cette ligne de code : .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Si tu désires seulement supprimer la cellule ou les cellules de la colonne A:A, supprime "EntireRow"
'----------------------------------- Sub Doublons()
Dim Rg As Range Dim Critere As Range
Application.ScreenUpdating = False
With Worksheets("Travail") Set Rg = .Range("A3:A" & .Range("A65536").End(xlUp).Row) .Range("C1") = "" .Range("C2").FormulaLocal = "=NB.SI(A2:A5;A2)>1" Set Critere = .Range("C1:C2") End With
With Rg .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=Critere, Unique:úlse .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp) Worksheets(.Parent.Name).ShowAllData End With Critere.Clear Set Rg = Nothing : Set Critere = Nothing End Sub '-----------------------------------
Salutations!
"Florian" a écrit dans le message de news: Bonjour J'ai une plage de cellule sheets("Travail").range("A3:A1000") Je souhaite que si dans cette liste il y a un doublon, le supprimer par VBA Merci Flo riant
Bonjour Florian,
Tu pourrais utliser une procédure comme celle-ci :
L'utilisation du filtre élaboré pour ce type de travail est très rapide.
Cette méthode requiert une zone de critère comme suit:
C1 = ""
C2 = "=NB.SI(A2:A5;A2)>1"
Utilise 2 cellules dont tu es sûr qu'elles sont sans donnée.
Cette procédure élimine les lignes entières des doublons débutant par les premières entrées dans ton tableau. Exemple, si tu as un
doublons en ligne A5 et A10, la ligne A5 sera supprimée pour ne conserver que la dernière occurrence en A10
La ligne entière du doublon est supprimée à cause de ceci : EntireRow dans cette ligne de code :
.Offset(1).Resize(Rg.Rows.Count - 1, 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Si tu désires seulement supprimer la cellule ou les cellules de la colonne A:A, supprime "EntireRow"
'-----------------------------------
Sub Doublons()
Dim Rg As Range
Dim Critere As Range
Application.ScreenUpdating = False
With Worksheets("Travail")
Set Rg = .Range("A3:A" & .Range("A65536").End(xlUp).Row)
.Range("C1") = ""
.Range("C2").FormulaLocal = "=NB.SI(A2:A5;A2)>1"
Set Critere = .Range("C1:C2")
End With
With Rg
.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Critere, Unique:úlse
.Offset(1).Resize(Rg.Rows.Count - 1, 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Worksheets(.Parent.Name).ShowAllData
End With
Critere.Clear
Set Rg = Nothing : Set Critere = Nothing
End Sub
'-----------------------------------
Salutations!
"Florian" <florian@toto.fr> a écrit dans le message de news: uWscEQolFHA.2484@TK2MSFTNGP15.phx.gbl...
Bonjour
J'ai une plage de cellule
sheets("Travail").range("A3:A1000")
Je souhaite que si dans cette liste il y a un doublon, le supprimer par VBA
Merci
Flo riant
Tu pourrais utliser une procédure comme celle-ci :
L'utilisation du filtre élaboré pour ce type de travail est très rapide.
Cette méthode requiert une zone de critère comme suit: C1 = "" C2 = "=NB.SI(A2:A5;A2)>1" Utilise 2 cellules dont tu es sûr qu'elles sont sans donnée.
Cette procédure élimine les lignes entières des doublons débutant par les premières entrées dans ton tableau. Exemple, si tu as un doublons en ligne A5 et A10, la ligne A5 sera supprimée pour ne conserver que la dernière occurrence en A10
La ligne entière du doublon est supprimée à cause de ceci : EntireRow dans cette ligne de code : .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Si tu désires seulement supprimer la cellule ou les cellules de la colonne A:A, supprime "EntireRow"
'----------------------------------- Sub Doublons()
Dim Rg As Range Dim Critere As Range
Application.ScreenUpdating = False
With Worksheets("Travail") Set Rg = .Range("A3:A" & .Range("A65536").End(xlUp).Row) .Range("C1") = "" .Range("C2").FormulaLocal = "=NB.SI(A2:A5;A2)>1" Set Critere = .Range("C1:C2") End With
With Rg .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=Critere, Unique:úlse .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp) Worksheets(.Parent.Name).ShowAllData End With Critere.Clear Set Rg = Nothing : Set Critere = Nothing End Sub '-----------------------------------
Salutations!
"Florian" a écrit dans le message de news: Bonjour J'ai une plage de cellule sheets("Travail").range("A3:A1000") Je souhaite que si dans cette liste il y a un doublon, le supprimer par VBA Merci Flo riant
Florian
Merci beaucoup Denis Flo riant
"MichDenis" a écrit dans le message de news:
Bonjour Florian,
Tu pourrais utliser une procédure comme celle-ci :
L'utilisation du filtre élaboré pour ce type de travail est très rapide.
Cette méthode requiert une zone de critère comme suit: C1 = "" C2 = "=NB.SI(A2:A5;A2)>1" Utilise 2 cellules dont tu es sûr qu'elles sont sans donnée.
Cette procédure élimine les lignes entières des doublons débutant par les premières entrées dans ton tableau. Exemple, si tu as un doublons en ligne A5 et A10, la ligne A5 sera supprimée pour ne conserver que la dernière occurrence en A10
La ligne entière du doublon est supprimée à cause de ceci : EntireRow dans cette ligne de code : .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Si tu désires seulement supprimer la cellule ou les cellules de la colonne A:A, supprime "EntireRow"
'----------------------------------- Sub Doublons()
Dim Rg As Range Dim Critere As Range
Application.ScreenUpdating = False
With Worksheets("Travail") Set Rg = .Range("A3:A" & .Range("A65536").End(xlUp).Row) .Range("C1") = "" .Range("C2").FormulaLocal = "=NB.SI(A2:A5;A2)>1" Set Critere = .Range("C1:C2") End With
With Rg .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=Critere, Unique:úlse .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp) Worksheets(.Parent.Name).ShowAllData End With Critere.Clear Set Rg = Nothing : Set Critere = Nothing End Sub '-----------------------------------
Salutations!
"Florian" a écrit dans le message de news:
Bonjour J'ai une plage de cellule sheets("Travail").range("A3:A1000") Je souhaite que si dans cette liste il y a un doublon, le supprimer par VBA Merci Flo riant
Merci beaucoup Denis
Flo riant
"MichDenis" <michdenis@hotmail.com> a écrit dans le message de news:
OBBLBpolFHA.3828@TK2MSFTNGP12.phx.gbl...
Bonjour Florian,
Tu pourrais utliser une procédure comme celle-ci :
L'utilisation du filtre élaboré pour ce type de travail est très rapide.
Cette méthode requiert une zone de critère comme suit:
C1 = ""
C2 = "=NB.SI(A2:A5;A2)>1"
Utilise 2 cellules dont tu es sûr qu'elles sont sans donnée.
Cette procédure élimine les lignes entières des doublons débutant par les
premières entrées dans ton tableau. Exemple, si tu as un
doublons en ligne A5 et A10, la ligne A5 sera supprimée pour ne conserver
que la dernière occurrence en A10
La ligne entière du doublon est supprimée à cause de ceci : EntireRow dans
cette ligne de code :
.Offset(1).Resize(Rg.Rows.Count - 1, 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Si tu désires seulement supprimer la cellule ou les cellules de la colonne
A:A, supprime "EntireRow"
'-----------------------------------
Sub Doublons()
Dim Rg As Range
Dim Critere As Range
Application.ScreenUpdating = False
With Worksheets("Travail")
Set Rg = .Range("A3:A" & .Range("A65536").End(xlUp).Row)
.Range("C1") = ""
.Range("C2").FormulaLocal = "=NB.SI(A2:A5;A2)>1"
Set Critere = .Range("C1:C2")
End With
With Rg
.AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=Critere, Unique:úlse
.Offset(1).Resize(Rg.Rows.Count - 1, 1). _
SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Worksheets(.Parent.Name).ShowAllData
End With
Critere.Clear
Set Rg = Nothing : Set Critere = Nothing
End Sub
'-----------------------------------
Salutations!
"Florian" <florian@toto.fr> a écrit dans le message de news:
uWscEQolFHA.2484@TK2MSFTNGP15.phx.gbl...
Bonjour
J'ai une plage de cellule
sheets("Travail").range("A3:A1000")
Je souhaite que si dans cette liste il y a un doublon, le supprimer par
VBA
Merci
Flo riant
Tu pourrais utliser une procédure comme celle-ci :
L'utilisation du filtre élaboré pour ce type de travail est très rapide.
Cette méthode requiert une zone de critère comme suit: C1 = "" C2 = "=NB.SI(A2:A5;A2)>1" Utilise 2 cellules dont tu es sûr qu'elles sont sans donnée.
Cette procédure élimine les lignes entières des doublons débutant par les premières entrées dans ton tableau. Exemple, si tu as un doublons en ligne A5 et A10, la ligne A5 sera supprimée pour ne conserver que la dernière occurrence en A10
La ligne entière du doublon est supprimée à cause de ceci : EntireRow dans cette ligne de code : .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp)
Si tu désires seulement supprimer la cellule ou les cellules de la colonne A:A, supprime "EntireRow"
'----------------------------------- Sub Doublons()
Dim Rg As Range Dim Critere As Range
Application.ScreenUpdating = False
With Worksheets("Travail") Set Rg = .Range("A3:A" & .Range("A65536").End(xlUp).Row) .Range("C1") = "" .Range("C2").FormulaLocal = "=NB.SI(A2:A5;A2)>1" Set Critere = .Range("C1:C2") End With
With Rg .AdvancedFilter Action:=xlFilterInPlace, _ CriteriaRange:=Critere, Unique:úlse .Offset(1).Resize(Rg.Rows.Count - 1, 1). _ SpecialCells(xlCellTypeVisible).EntireRow.Delete (xlUp) Worksheets(.Parent.Name).ShowAllData End With Critere.Clear Set Rg = Nothing : Set Critere = Nothing End Sub '-----------------------------------
Salutations!
"Florian" a écrit dans le message de news:
Bonjour J'ai une plage de cellule sheets("Travail").range("A3:A1000") Je souhaite que si dans cette liste il y a un doublon, le supprimer par VBA Merci Flo riant