Copier Coller une extraction sans doublons dans une autre feuille

Spinzi

XLDnaute Impliqué
Bonjour à tous,

Arpès m'être essayé à la macro "manuelle" (enregistrement) je me suis vite rendu compte qu'elle ne fonctionnait pas pour tous les types de fichiers (matrice limitée suivant la selection d'origine).
C'est pourquoi j'aurai besoin de vos service pour créer une macro sous VBA pour :
_Extraire une liste sans doublon de l'onglet "Toutes Prestations"
_eans une feuille excel différente "Recap" dans la colonne "Affaire"

Il faut savoir que le fichier aura toujours la même structure mais p-e pas le même nombre de lignes !

Merci d'avance,
 

Pièces jointes

  • arc_mb_affaire_exdl.xls
    144 KB · Affichages: 321
  • arc_mb_affaire_exdl.xls
    144 KB · Affichages: 313
  • arc_mb_affaire_exdl.xls
    144 KB · Affichages: 310

amauryde

XLDnaute Occasionnel
Re : Copier Coller une extraction sans doublons dans une autre feuille

salut,

voila tu peux exécuter cette commande, ac un copier coller de ta colonne A ds ton onglet recap avant

cordialement
 

Pièces jointes

  • exemplearc_mb_affaire_exdl (1).xls
    155 KB · Affichages: 788

ayaflo

XLDnaute Junior
Re : Copier Coller une extraction sans doublons dans une autre feuille

Bonjour,

Il n'y a plus qu'à appuyer sur le bouton Extraction de la feuille Recap et ça fonctionne.

Bonne journée
Flo
 

Pièces jointes

  • Extraction_Flo.xls
    223.5 KB · Affichages: 1 512

Spinzi

XLDnaute Impliqué
Re : Copier Coller une extraction sans doublons dans une autre feuille

Merci amauryde, merci ayaflo.

Je vais retenir la solution de Flo puisque c'est celle qui correspond le mieux (exactement même !) à ce que j'attendais.
De fait, je vais essayer de l'adapter a mon fichier, et je vous tiens au courant des améliorations à apporter si il y a.

Bonne journée, et encore merci ! ;)
 

Dranreb

XLDnaute Barbatruc
Re : Copier Coller une extraction sans doublons dans une autre feuille

Bonjour.
J'ai justement une fonction qui calcule des récapitulatifs.
Un projet de classeur de macro complémentaire est toujours en routes.
Il regroupera toutes les fonctionnalités se greffant autour d'une indexation.
Cordialement
 

Pièces jointes

  • AppliRécap4.xls
    391.5 KB · Affichages: 456

Bebere

XLDnaute Barbatruc
Re : Copier Coller une extraction sans doublons dans une autre feuille

bonjour Spinzi,Amauryde
avec le filtre élaboré
Code:
Sub SansDoublons()
    Worksheets("Recap").Range("A2:A" & Range("A65536").End(xlUp).Row).ClearContents    'efface
    Worksheets("Toutes Prestations").Select
    Range("A1").Select
    Range("A1:A" & Range("A65536").End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets("Recap").Range("A1"), Unique:=True
End Sub
 

xltools

XLDnaute Junior
Re : Copier Coller une extraction sans doublons dans une autre feuille

Bonjour Spinzi,

Voici la Procédure à utiliser dans un nouveau module de ton projet VBA.
Elle fait pas mal ramer l'application Excel car elle parcours l'ensemble des 65536 lignes de ta feuille de Prestation. En effet, comme tu as des lignes vides parmi ta liste de données, il est difficile de ne considérer que la plage de données.

Si tu as besoin d'ajouter une barre d'avancement pour faire patienter l'utilisateur, fais-m'en part !

Sub ExtractionSansDoublon()
Dim R, F As Range
Dim fin, ligne As Long
ligne = 1
With ThisWorkbook
' Nettoyage de la feuille de Recap
.Sheets("Recap").Range("A:A").ClearContents
' Remplissage de la feuille de Revap sans doublon
For Each R In .Sheets("Toutes Prestations").Range("A:A")
' Recherche d'au mons un doublon
Set F = .Sheets("Recap").Range("A:A").Find(R.Value)
If Not F Is Nothing Then
' Doublon trouvé, on passe à la ligne suivante de la feuille de PRestations
GoTo FinBoucle
Else
' Doublon non trouvé, on copie l'élément en cours
.Sheets("Recap").Range("A" & ligne).Value = R.Value
If ligne < 65536 Then ligne = ligne + 1
End If
FinBoucle:
Next
End With
End Sub
 

Spinzi

XLDnaute Impliqué
Re : Copier Coller une extraction sans doublons dans une autre feuille

Merci pour toutes vos nouvelles réponses.

Pour ce qui est de la latence, il m'en faudrait le moins possible evidemment, sachant que certaines cellules vides (pour le n° d'affaire) peuvent tout de même contenir des informations sur les autres colonnes, c'est pourquoi il me faut ces cellules vides.
Je regarde vos solutions une par une et vous fais part de mes observations !

De plus, pour le filtre élaboré, je connais effectivement cette méthode, cependant c'est dans le but d'optimiser le fichier que j'ai recours à une VBA pour effectuer le moins d'opérations possible manuellement, permettant ainsi à tout le monde de pouvoir utiliser le fichier de manière optimale. :)

Edit : @Dranreb : ta fonction permet bien de récapituler sans doublon, c'est parfait. J'ai supposé que le chiffre à coté correspond au nombre de doublons trouvés ? Tu as aussi parlé de macro supplémentaires ... Je n'ai pas très bien saisi !

Je vais surement utiliser le module de Flo qui fonctionne pour mon fichier, Merci à tous !

ps : je vais quand même procéder à quelques tests complémentaires :eek:
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : Copier Coller une extraction sans doublons dans une autre feuille

Je n'avais pas vu les lignes vides au milieu.
Vous pouvez coller cette fonction dans un module standard:
VB:
Function Depuis(ByVal Col As Range, ByVal LDéb As Long) As Range
Set Depuis = Application.Range(Col.Rows(LDéb), Col.Rows(Col.Rows.Count).End(xlUp))
End Function
et l'utiliser pour le 1er paramètre de la fonction Récap:
Code:
=Récap(Depuis('Toutes Prestations'!$A:$A;2);"Nombre")
Validé par Ctrl+Maj+Entrée

À +
 

Spinzi

XLDnaute Impliqué
Re : Copier Coller une extraction sans doublons dans une autre feuille

Alors j'ai quelques petits problèmes pour l'adaptation de ta macro Flo.

En effet, la colonne que je cherche à copier sans doublon se trouve en G dans la feuille nommée exactement "WD0_TOUTES_PREST." . J'ai remarqué que tu l'as copiée dans une colonne initiallement vide (la colonne B dans mon fichier) mais qui dans mon document réel et occupée. je l'ai donc déplacé en BZ (colonne qui sera probablement toujours vide).
Ensuite, il faudrait que cette extraction soit collée non pas en colonne A de l'onglet "WD0_RECAP", mais en colonne H.

J'obtiens donc :
Code:
Sub Extraction_doublon()

    Sheets("WD0_TOUTES_PREST.").Select
'Filtre élaboré sans doublon sur la colonne G (Affaire) vers l'emplacement colonne vide BZ
    Columns("G:G").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Columns( _
        "G:G"), CopyToRange:=Columns("BZ:BZ"), Unique:=True
        
    'Coupage de la colonne BZ
    Columns("BZ:BZ").Cut
    
    'Selection de la feuille WD0_RECAP et copie des données dans la colonne H
    Sheets("WD0_RECAP").Select
    Columns("H:H").Select
    ActiveSheet.Paste

End Sub

Mais le module continue à me copier la colonne A de Toutes Prestations dans la colonne A du Recap ... :confused:
 
Dernière édition:

Spinzi

XLDnaute Impliqué
Re : Copier Coller une extraction sans doublons dans une autre feuille

Re Bonjour à tous,

je n'ai toujours pas résolu mon pb, que ce soit en utilisant la formule de Dranreb (cela me rajoute une colonne supplémentaire me récapitulant le nombre de doublons, ce que je ne désire pas. De plus je ne sais pas où copier le module) ou la macro de Flo que je n'arrive pas à adapter à mon fichier (cf message plus haut).

Merci à tous ! :rolleyes:
 

Dranreb

XLDnaute Barbatruc
Re : Copier Coller une extraction sans doublons dans une autre feuille

la formule de Dranreb (cela me rajoute une colonne supplémentaire me récapitulant le nombre de doublons, ce que je ne désire pas
Eh bien enlevez la parametre "Nombre", qu'est ce que vous voulez que je vous dises...

Mais ne vous amusez pas à le recalculer derrière ou à faire des somme.si sur d'autre colonnes à droite, ou des moyennes. Parce que tout ça la fonction Récap est capable de le sortir directement.
Mais je vois pas bien ce que peut bien récapituler une liste qui ne contiendrait que la clé de récapitulation sans doublon...
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Copier Coller une extraction sans doublons dans une autre feuille

bonjour le fil
ce code fonctionne
Code:
Sub Extraction_doublon()

'    Sheets("WD0_TOUTES_PREST.").Select
'Filtre élaboré sans doublon sur la colonne G (Affaire) vers l'emplacement colonne vide BZ
    Sheets("WD0_TOUTES_PREST.").Columns("G:G").AdvancedFilter Action:=xlFilterCopy, _
    CopyToRange:=Sheets("WD0_TOUTES_PREST.").Range("BZ1"), Unique:=True
        
    'Copy/paste
    Sheets("WD0_TOUTES_PREST.").Columns("BZ:BZ").Copy Destination:=Worksheets("WD0_RECAP").Range("H1")
    Sheets("WD0_TOUTES_PREST.").Columns("BZ:BZ").ClearContents 'efface
End Sub
 

Spinzi

XLDnaute Impliqué
Re : Copier Coller une extraction sans doublons dans une autre feuille

@Dranreb : je sens comme de l'agressivité dans vos propos : je cherche juste une manière d'extraire sans doublon une liste située dans une colonne X d'une feuille A dans une feuille B colonne Y de manière automatique. A bon entendeur, salut. Je pose des questions et essaie de comprendre, si ce n'est pas réciproque, autant ne pas me répondre :)

@Bebere : Merci pour ce code, je l'essaie tout de suite et essaie de vous redire dans l'après midi !
 

Dranreb

XLDnaute Barbatruc
Re : Copier Coller une extraction sans doublons dans une autre feuille

Ben oui qu'est que vous voulez. Je vous fourni gratuitement une fonction à la fois très puissante et très performante, et vous tout ce que vous trouvez à dire c'est critiquer qu'elle sort un truc en plus que vous n'avez certes pas demandé, mais sans chercher à comprendre dans son appel que c'est simplement parce que je le lui ai demandé moi, en plus. Et sans qu'on puisse comprendre pourquoi vous avez juste besoin d'une bizarre liste des clés sans doublon, ni ce que vous voulez en faire ensuite. Ça m'énerve !
 

Discussions similaires

Statistiques des forums

Discussions
312 094
Messages
2 085 240
Membres
102 832
dernier inscrit
kirale