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

Supprimer doublons

3 réponses
Avatar
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

3 réponses

Avatar
Daniel
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" a écrit dans le message de 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


Avatar
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" a écrit dans le message de 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







Avatar
Daniel
Excuse-moi. Tu peux supprimer les lignes comportant les variables Var1 et
Var2 qui n'ont servi quà la mise au point.
Daniel
"serge" a écrit dans le message de news:

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" a écrit dans le message de
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