Macro pour supprimer la redondance dans un ensemble de fichiers excel

  • Initiateur de la discussion Initiateur de la discussion bejust
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

bejust

XLDnaute Nouveau
Bonjour;

Je suis débutant en excel 🙂
Je veux supprimer la redondance dans un fichier excel par rapport à une colonne. Je m'explique :
si j'ai par exemple

id propriété 1 …. propriété n
A a
B ab
B bb
B cb
C ac
A ad
A bd

je dois comparer seulement la valeur de la première colonne (id) dans deux lignes consécutives: si elle est identique je supprime la deuxième ligne.
le tableau doit se transformer alors comme suit :

id propriété1 …. propriétén
A a
B ab
C ac
A ad

et cette opération doit être effectuée sur un répertoire qui contient des centaines de fichiers excel.

Merci pour votre aide. je vous serais vraiment reconnaissant.
 

Pièces jointes

Re : Macro pour supprimer la redondance dans un ensemble de fichiers excel

Salut,à adapter pour la plage concernée
Code:
Option Explicit

Sub Tst()
Dim LastRow As Long, i As Long
    LastRow = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
    For i = LastRow To 2 Step -1
        If Feuil1.Range("A" & i) = Feuil1.Range("A" & i - 1) Then
            Feuil1.Range("A" & i & ":B" & i).Delete Shift:=xlUp
        End If
    Next i
End Sub

D'autre part ton fichier sera à enregistrer en xlsb ou xlsm
 
Dernière édition:
Re : Macro pour supprimer la redondance dans un ensemble de fichiers excel

Bonjour,
une autre possibilité en passant par des tableaux VBA (vitesse d'exécution normalement améliorée si ta plage de valeurs est importante) :
Code:
Sub test()
Dim Tablo1, DerLigne&, i&, j&, k&
DerLigne = Range("A" & Rows.Count).End(xlUp).Row
Tablo1 = Range("A2:B" & DerLigne)
j = 1
On Error Resume Next
    For i = DerLigne To 1 Step -1
        If Tablo1(i, 1) <> Tablo1(i - 1, 1) Then
            Dim Tablo2()
            ReDim Preserve Tablo2(1 To DerLigne, 1 To 2)
            Tablo2(j, 1) = Tablo1(i, 1)
            Tablo2(j, 2) = Tablo1(i, 2)
            j = j + 1
        End If
    Next i
k = 1
    For i = DerLigne To 1 Step -1
    Dim Tablo3()
    ReDim Preserve Tablo3(1 To DerLigne, 1 To 2)
        If Tablo2(i, 1) <> "" Then
            Tablo3(k, 1) = Tablo2(i, 1)
            Tablo3(k, 2) = Tablo2(i, 2)
            k = k + 1
        End If
    Next i
Range("A2:B" & DerLigne) = Tablo3
End Sub
A+
 
Re : Macro pour supprimer la redondance dans un ensemble de fichiers excel

bonjour bejust,kiki29,david

une version "tablo" également
Code:
Sub es()
Dim t As Variant, t2(), x As Long, i As Long, k As Long
On Error Resume Next
Application.ScreenUpdating = False
t = Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row)
x = 1
For i = 1 To UBound(t)
If t(i, 1) <> t(i - 1, 1) Then
ReDim Preserve t2(1 To 2, 1 To x)
For k = 1 To 2
t2(k, x) = t(i, k)
Next k: x = x + 1: End If: Next i
Range("a2:b" & Cells(Rows.Count, 1).End(xlUp).Row).Clear
[a2].Resize(UBound(t2, 2), UBound(t2, 1)) = Application.Transpose(t2)
Erase t, t2
End Sub
 
Re : Macro pour supprimer la redondance dans un ensemble de fichiers excel

Merci tous pour votre aide;

au fait j'ai utilisé au début le code de kiki29 ça marche parfaitement sauf que le temps est vraiment énorme. j'ai des gros fichiers et pour un seul parmi eux ça m'a pris une vingtaine de minutes 🙁 .
pour les codes de david84 et laetitia90 je n'ai pas su comment les adapter à la plage concernée (Ai à Ii) 😕
.. Et oui quand je dis je suis débutant c'est que c'est vrai !

pouvez vous m'aider s'il vous plait 🙂
grand merci.
 
Re : Macro pour supprimer la redondance dans un ensemble de fichiers excel

Re
Place un exemple explicite sur un fichier pour que l'on se comprenne bien.
@Laetitia : super ton code ! La classe😎.
A+

Voilà l'exemple est en pièce jointe.
si A(i) = A(i-1) effacer la ligne i-1

Je vous remercie infiniment pour votre aide.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour