Supprimer doublons

Le
serge
bonjour,

j'ai une feuille avec des dates sur la ligne 1 et des données (jusqu'à la
ligne 30 en dessous qui correspondent à cette date. Chaque jour, ce fichier
est update par une incrementation de la derniere colonne avec une nvelle date
et les données qui correspondent.
Ce que je voudrais, c'est un macro qui supprime la colonne d'une date si
elle est en double, cad si 2 colonnes ont la même date, le macro supprime la
colonne la plus à droite.
quelquun pourrait me proposer un code? car je n'est vraiement aucune idée

merci encore,

Serge
Vos réponses
Trier par : date / pertinence
Daniel
Le #1952327
Bonjour.
Tu peux essayer le code suivant (les dates sont en A1:G1):

Sub Test()
Dim c As Range, Var As Integer, Ctr As Integer, i As Integer
For Each c In Range("A1:G1")
Var = WorksheetFunction.CountIf(Range("a1:g1"), c.Value)
If Var <> 1 Then
Ctr = 1
i = 1
Do Until Ctr = 2
Var1 = c.Value
Var2 = c.Offset(0, i).Value
If c.Value = c.Offset(0, i).Value Then
Ctr = 2
c.Offset(0, i).EntireColumn.Delete
End If
i = i + 1
Loop
End If
Next c
End Sub

Cordialement.
Daniel
"serge"
bonjour,

j'ai une feuille avec des dates sur la ligne 1 et des données (jusqu'à la
ligne 30 en dessous qui correspondent à cette date. Chaque jour, ce
fichier
est update par une incrementation de la derniere colonne avec une nvelle
date
et les données qui correspondent.
Ce que je voudrais, c'est un macro qui supprime la colonne d'une date si
elle est en double, cad si 2 colonnes ont la même date, le macro supprime
la
colonne la plus à droite.
quelquun pourrait me proposer un code? car je n'est vraiement aucune idée
...

merci encore,

Serge


serge
Le #1952281
Je suis dessus mais ca ne marche pas.
j'ai l'erreur suivante :
"application-defined or object-defined error" à la ligne commençant par var2.
voici mon code :
Sub Macro4()
Sheets("rev").Select
Dim c As Range, Var As Integer, Ctr As Integer, i As Integer
For Each c In Range("B1:G1")
Var = WorksheetFunction.CountIf(Range("B1:g1"), c.Value)
If Var <> 1 Then
Ctr = 1
i = 1
Do Until Ctr = 2
Var1 = c.Value
Var2 = c.Offset(0, i).Value
If c.Value = c.Offset(0, i).Value Then
Ctr = 2
c.Offset(0, i).EntireColumn.Delete
End If
i = i + 1
Loop
End If
Next c

End Sub

Merci d'avance,
Harold

"Daniel" wrote:

Bonjour.
Tu peux essayer le code suivant (les dates sont en A1:G1):

Sub Test()
Dim c As Range, Var As Integer, Ctr As Integer, i As Integer
For Each c In Range("A1:G1")
Var = WorksheetFunction.CountIf(Range("a1:g1"), c.Value)
If Var <> 1 Then
Ctr = 1
i = 1
Do Until Ctr = 2
Var1 = c.Value
Var2 = c.Offset(0, i).Value
If c.Value = c.Offset(0, i).Value Then
Ctr = 2
c.Offset(0, i).EntireColumn.Delete
End If
i = i + 1
Loop
End If
Next c
End Sub

Cordialement.
Daniel
"serge"
bonjour,

j'ai une feuille avec des dates sur la ligne 1 et des données (jusqu'à la
ligne 30 en dessous qui correspondent à cette date. Chaque jour, ce
fichier
est update par une incrementation de la derniere colonne avec une nvelle
date
et les données qui correspondent.
Ce que je voudrais, c'est un macro qui supprime la colonne d'une date si
elle est en double, cad si 2 colonnes ont la même date, le macro supprime
la
colonne la plus à droite.
quelquun pourrait me proposer un code? car je n'est vraiement aucune idée
...

merci encore,

Serge







Daniel
Le #1952278
Excuse-moi. Tu peux supprimer les lignes comportant les variables Var1 et
Var2 qui n'ont servi quà la mise au point.
Daniel
"serge"
Je suis dessus mais ca ne marche pas.
j'ai l'erreur suivante :
"application-defined or object-defined error" à la ligne commençant par
var2.
voici mon code :
Sub Macro4()
Sheets("rev").Select
Dim c As Range, Var As Integer, Ctr As Integer, i As Integer
For Each c In Range("B1:G1")
Var = WorksheetFunction.CountIf(Range("B1:g1"), c.Value)
If Var <> 1 Then
Ctr = 1
i = 1
Do Until Ctr = 2
Var1 = c.Value
Var2 = c.Offset(0, i).Value
If c.Value = c.Offset(0, i).Value Then
Ctr = 2
c.Offset(0, i).EntireColumn.Delete
End If
i = i + 1
Loop
End If
Next c

End Sub

Merci d'avance,
Harold

"Daniel" wrote:

Bonjour.
Tu peux essayer le code suivant (les dates sont en A1:G1):

Sub Test()
Dim c As Range, Var As Integer, Ctr As Integer, i As Integer
For Each c In Range("A1:G1")
Var = WorksheetFunction.CountIf(Range("a1:g1"), c.Value)
If Var <> 1 Then
Ctr = 1
i = 1
Do Until Ctr = 2
Var1 = c.Value
Var2 = c.Offset(0, i).Value
If c.Value = c.Offset(0, i).Value Then
Ctr = 2
c.Offset(0, i).EntireColumn.Delete
End If
i = i + 1
Loop
End If
Next c
End Sub

Cordialement.
Daniel
"serge" news:

bonjour,

j'ai une feuille avec des dates sur la ligne 1 et des données (jusqu'à
la
ligne 30 en dessous qui correspondent à cette date. Chaque jour, ce
fichier
est update par une incrementation de la derniere colonne avec une
nvelle
date
et les données qui correspondent.
Ce que je voudrais, c'est un macro qui supprime la colonne d'une date
si
elle est en double, cad si 2 colonnes ont la même date, le macro
supprime
la
colonne la plus à droite.
quelquun pourrait me proposer un code? car je n'est vraiement aucune
idée
...

merci encore,

Serge









Publicité
Poster une réponse
Anonyme