suppression ligne avec critere

pakalom

XLDnaute Junior
bonsoir,

malgré mes recherches dans le forum, je n'ai pas trouvé ou plutot je n'arrive pas à adapter les formules dejà postées.

plus que des mots, voici un fichier plus explicite.

Merci d'avance de votre aide...
 

Pièces jointes

  • doublons.xls
    17.5 KB · Affichages: 59
  • doublons.xls
    17.5 KB · Affichages: 64
  • doublons.xls
    17.5 KB · Affichages: 62

mromain

XLDnaute Barbatruc
Re : suppression ligne avec critere

Bonsoir pakalom,


Voici un essai avec cette macro :
Code:
Sub Test()
Dim avecDate() As Variant, i As Long, j As Long, zoneTitre As Range, nbDates As Long, tmp As String, mem As Boolean

    With ThisWorkbook.Sheets("Feuil1")
    
        'récupérer la liste des titres (colonne B, Feuil1)
        Set zoneTitre = .Range("B15:B" & .Range("B15").End(xlDown).Row)
            
        'compter le nombre de dates en colonne G
        nbDates = WorksheetFunction.Count(zoneTitre.Offset(0, 5))
        
        'redimentionner les tableaux
        ReDim avecDate(1 To nbDates)
        
        'boucler sur chaque ligne de titre
        For i = zoneTitre(1, 1).Row To zoneTitre(1, 1).Row + zoneTitre.Count - 1
            'si il y a une date en colonne G
            If .Range("G" & i).Text <> "" Then
                'mémoriser la combinaison des colonnes B, C, D, E et F dans le tableau
                j = j + 1
                avecDate(j) = .Range("B" & i).Text & .Range("C" & i).Text & .Range("D" & i).Text & .Range("E" & i).Text & .Range("F" & i).Text
            End If
        Next i
        
        'boucler sur chaque ligne de titre une deuxième fois
        For i = zoneTitre(1, 1).Row + zoneTitre.Count - 1 To zoneTitre(1, 1).Row Step -1
            'si il n'y a pas de date en colonne G
            If .Range("G" & i).Text = "" Then
                'mémoriser la combinaison des colonnes B, C, D, E et F
                tmp = .Range("B" & i).Text & .Range("C" & i).Text & .Range("D" & i).Text & .Range("E" & i).Text & .Range("F" & i).Text
                
                'vérifier si la combinaison est présente dans le tableau
                mem = False
                For j = LBound(avecDate) To UBound(avecDate)
                    If avecDate(j) = tmp Then mem = True
                Next j
                'si la combinaison était présente dans le tableau, supprimer la ligne
                If mem Then .Rows(i).Delete
            End If
        Next i
    End With
End Sub

a+
 

pakalom

XLDnaute Junior
Re : suppression ligne avec critere

mromain,

si je peux me permettre, j'ai une dernière question qui a rien avoir mais qui me permettera d'avancer dans mon programme.

je souhaite trouver une macro me permettant de copier des données dans le tableau de mon fichier "doublons"à la fin de la derniere ligne sachant que ma derniere ligne va varier

merci
 

mromain

XLDnaute Barbatruc
Re : suppression ligne avec critere

Re bonsoir ,
pakalom à dit:
je souhaite trouver une macro me permettant de copier des données dans le tableau de mon fichier "doublons"à la fin de la derniere ligne sachant que ma derniere ligne va varier
D'où viennent tes données ???

Sinon, pour trouver la dernière ligne contenant des données de ta feuille, un paquet d'exemples sont disponibles sur le forum.
N'hésite pas à abuser du moteur de recherche ;).
N'hésite pas non plus à revenir si tu ne t'en sors pas.

a+
 

pakalom

XLDnaute Junior
Re : suppression ligne avec critere

re bonsoir,

si je peux abuser. Je cherche la formule me permmettant de supprimer les doublons même si je n'ai pas de date en colonne g, independament de la premiere macro de doublons :
ex dans le fichier ci joint garder une fois le client 4 sans date en colonne 4 et apres j'applique la premiere macro de doublons



J'ai beau chercher dans le forum mais je ne trouve que pour suppprimer des doublons dans une colonne mais pas une ligne dans un tableau

merci
 

Pièces jointes

  • doublonsclean.xls
    42 KB · Affichages: 44

Discussions similaires

Réponses
4
Affichages
355

Statistiques des forums

Discussions
312 501
Messages
2 089 014
Membres
104 005
dernier inscrit
Maxence