OVH Cloud OVH Cloud

extraction & suppression

13 réponses
Avatar
Nadyajah
Bonjour,

J'ai une feuille "fichier client" avec les colonnes suivantes :
A:N° Salon - B:N° Client - C:Civilité - D:Nom Client - E:Prénom Client -
F:Adresse 1...

Je souhaiterai extraire les doublons dans la feuille "fichier client à
rectifier" et les supprimer de la feuille "fichier client" automatiquement.
Voici la macro :

Sub SuppressionClients()
Dim Plage As Range, c As Range, Ligne As Long
Range("J:K").Insert
Ligne = 1
Set Plage = Range("D2", Range("D65536").End(xlUp))
For Each c In Plage
c.Offset(0, 6).Value = c.Value & c.Offset(0, 1).Value
Next c
For Each c In Plage
c.Offset(0, 7).Value = _
WorksheetFunction.CountIf(Plage.Offset(0, 6), c.Offset(0, 6))
Next c
Range("k:k").Copy
Range("k:k").PasteSpecial xlPasteValues
For Each c In Plage
If c.Offset(0, 7).Value > 1 Then
Range("A" & c.Row & ":I" & c.Row).Copy _
Sheets("Fichier client à rectifier").Range("A" & Ligne)
Ligne = Ligne + 1
c.EntireRow.Delete
End If
Next c
Range("J:K").Delete
End Sub

Cependant, il ne m'extrait q'un seul des doublons pour certaines lignes et
les 2 pour d'autres.... Je n'y comprend plus rien.
J'ai joins mon fichier pour exemple.
http://cjoint.com/?cex6Vw7kHI


Nadyajah

3 réponses

1 2
Avatar
LSteph
Bonsoir,
Une méthode inspirée de celle proposée par AV me semblerait préférable,
je suggèrerais même qu'en utilisant une formule et un filtre simple on
obtient la liste des clients à vérifier.
Toutefois pour respecter ton souhait voici (selon le code que tu proposes)
même là aussi il y aurait probablement autre méthode

Private Sub CommandButton1_Click()

Dim Plage As Range, c As Range, Ligne As Long, d As Long
Application.ScreenUpdating = False
Range("J:K").Insert
Ligne = 1
Set Plage = Range("D2", Range("D65536").End(xlUp))

'insère dans la colonne J la valeur Nom&Prénom
For Each c In Plage
c.Offset(0, 6).Value = c.Value & c.Offset(0, 1).Value
Next c

'insère dans la colonne K le nombre de doublons trouvés dans la colonne
J
For Each c In Plage
c.Offset(0, 7).Value = _
WorksheetFunction.CountIf(Plage.Offset(0, 6), c.Offset(0, 6))
Next c

Range("k:k").Copy
Range("k:k").PasteSpecial xlPasteValues

For d = Range("D65536").End(xlUp).Row To 2 Step -1
If Cells(d, 4).Offset(0, 7).Value > 1 Then
Range("A" & d & ":I" & d).Copy _
Sheets("Fichier client à rectifier").Range("A" & Ligne)
Ligne = Ligne + 1
Rows(d).Delete
End If
Next d

Range("J:K").Delete
Application.ScreenUpdating = True
MsgBox "Extraction des doublons de noms terminée !"

End Sub

"Nadyajah" a écrit dans le message de
news:
Re,

J'ai supprimée la ligne "Row(x).Delete" pour voir si cela fonctionne mais
il
ne m'extrait rien....

Voici le fichier joint
http://cjoint.com/data/cgwLTAtCoz.htm


Avatar
JLuc
*Bonjour Nadyajah*,
Il y avait une petite erreur qui c'etait glissee, Row --> Rows
Voila la boucle qui fait cette copy comme tu le veux :

For d = Range("D65536").End(xlUp).Row To 2 Step -1
If Cells(d, 4).Offset(0, 7).Value > 1 Then
Range("A" & d & ":I" & d).Copy _
Destination:=Sheets("Fichier client à rectifier").Range("A" &
Ligne)
Ligne = Ligne + 1
Rows(d).Delete
End If
Next d


Bonsoir,
Alors j'ai remplacé le c par "x" mais il s'arrête sur la ligne :
Row(x).Delete
et me dit "sub ou fonction non définie"

?????

Revoila ma macro en globalité

Sub SuppressionClients()

Dim Plage As Range, c As Range, Ligne As Long, d As Long
Range("J:K").Insert
Ligne = 1
Set Plage = Range("D2", Range("D65536").End(xlUp))

'insère dans la colonne J la valeur Nom&Prénom
For Each c In Plage
c.Offset(0, 6).Value = c.Value & c.Offset(0, 1).Value
Next c

'insère dans la colonne K le nombre de doublons trouvés dans la colonne J
For Each c In Plage
c.Offset(0, 7).Value = _
WorksheetFunction.CountIf(Plage.Offset(0, 6), c.Offset(0, 6))
Next c

Range("k:k").Copy
Range("k:k").PasteSpecial xlPasteValues

For d = Range("D65536").End(xlUp).Row To 2
If Cells(d, 4).Offset(0, 7).Value > 1 Then
Range("A" & d & ":I" & d).Copy _
Sheets("Fichier client à rectifier").Range("A" & Ligne)
Ligne = Ligne + 1
Row(d).Delete
End If
Next d

Range("J:K").Delete

MsgBox "Extraction des doublons de noms terminée !"
End Sub



--
____
( O | O )
--
_oooO_ JLuc _Oooo_

O-O

Avatar
AV
Cependant, ta macro n'extrait qu'un seul des doublons
| alors que je souhaiterais extraire les 2.


Tu es victime d'un micro-climat ....

AV

1 2