Copier/Coller sans doublons et sans écraser les données précédentes

8classeur1.xlsx (25.46 Ko)

Bonjour,

J'ai encore besoin de votre aide.

Jai un classeur Excel qui contient une feuille (Feuil1) et dans cette feuille j'ai un grand tableau source, ce tableau je peut le modifier à n'importe qu'elle moment mais j'aimerai sauvegarder les précédentes modifications avant dont faire des nouvelles. Ce qui m'arrangerais serait de pouvoir :

- Copier et coller dans la même feuille mais un peut plus loin les lignes du tableau pour lesquels " l'Etat de traitement" est "Archivé ou Soldé".

Après la modification du tableau source,

- Copier et coller les nouvelles données modifier en à la suite de celle qui avaient déjà été copier et coller avant la modification du tableau. (Ne pas écraser les données précédentes mais ajouter les nouvelles données à la suite)

Mais,

- Si un des "N° Perso" apparait déjà dans la première extraction, ne pas le coller dans le nouvelle emplacement. (Empêcher les doublons)

Merci d'avance!

Cordialement,

Bonjour

- Copier et coller dans la même feuille mais un peut plus loin les lignes du tableau pour lesquels " l'Etat de traitement" est "Archivé ou Soldé".

Là l'explication se comprend. On porte Archive et Soldé à la fin du tableau. Sauf que copier-coller vous allez avoir des doublons

Mais la suite ???

Pourquoi ne pas mettre un fichier avec le résultat attendu ?

Crdlt

Bonjour,

Voici une exemple de ce que je voudrais obtenir mais je ne sait pas comment faire une exemple pour les doublons.

Cordialement

31classeur1.xlsx (28.21 Ko)

Heu c'est quoi la différence à part votre filtre ?

Bonjour,

Je crois que je ne comprends pas votre demande.

Quel genre d'exemple voulez-vous?

Cordialement,

Ouvrez votre fichier posté. Vous verrez que le filtre ajouté ne donne rien

Quel genre d'exemple voulez-vous?

Ben l'exemple de ce que attendez au final. Mettre un filtre ne montre pas ce que vous voulez

Exemple : Vous avez 200 lignes, vous voulez mettre les lignes contenant Archivé après la ligne 200 ?

Bonjour,

Est-ce que ça c'est mieux ?

Cordialement

33classeur1.xlsm (35.12 Ko)

Exemple: Vous avez 200 lignes, vous voulez mettre les lignes contenant Archivé après la ligne 200 ?

Selon les modification que j'effectue sur mon tableau source je peut avoir au maximum 900 lignes,

Je veux que toute les ligne archivées soient copier à partie de la cellule N2 (C'est comme ci on créé un autre tableau mais qui ne contient que les lignes archivées et soldé).

Cordialement

Je veux que toute les ligne archivées soient copier à partie de la cellule N2 (C'est comme ci on créé un autre tableau mais qui ne contient que les lignes archivées et soldé)

Ah fallait savoir que l'on devait mettre le résultat en N2. Dans ce cas, essayez ce code,

Sub test()
'Mise en place du filtre auto si non présent
If Range("G1").AutoFilter = False Then Range("G1").AutoFilter = True
'Effacement des données en colonnes N à S
dlgN = Range("N" & Rows.Count).End(xlUp).Row
If dlgN > 1 Then
    With Range("N2:S" & dlgN)
        .ClearContents
        .FormatConditions.Delete
        .Interior.Pattern = xlNone
    End With
End If
'Ajout des données filtrées
    dlgA = Range("A" & Rows.Count).End(xlUp).Row
    Range("$A$1:$G$" & dlgA).AutoFilter Field:=7, Criteria1:="Archivé"
    dlgA = Range("A" & Rows.Count).End(xlUp).Row
    dlgN = Range("N" & Rows.Count).End(xlUp).Row + 1
    Range("B2:G" & dlgA).Copy Range("N" & dlgN)
    dlgN = Range("N" & Rows.Count).End(xlUp).Row + 1
    Range("$A$1:$G$" & dlgA).AutoFilter Field:=7, Criteria1:="Soldé"
    dlgA = Range("A" & Rows.Count).End(xlUp).Row
    If dlgA > 1 Then
        Range("B2:G" & dlgA).Copy Range("N" & dlgN)
    End If
Range("G1").AutoFilter
End Sub

Le code efface toujours les données des colonnes N et suivantes avant de faire l'importation

Cordialement

Bonjour,

Le code efface toujours les données des colonnes N et suivantes avant de faire l'importation

Est-il possible de ne pas écraser les données précédentes mais de faire la copie directement à la suite (La première cellule vide après l'extraction) ?

Cordialement,

Est-il possible de ne pas écraser les données précédentes mais de faire la copie directement à la suite (La première cellule vide après l'extraction) ?

Oui il vous suffit de supprimer au début du code les lignes DlgN = .... jusqu'au END IF plus bas (juste avant dlgA)

Mais n'oubliez pas que vous aurez des doublons dans la sauvegarde...

edit : J'ai ajouté un commentaire dans mon post précédent

Bonjour,

Merci!

Pour les doublons que pouvez vous me conseiller de faire ?

- Supprimer les doublon avec l'outil qui est dans l'onglet "Données"

OU

- Utiliser un code qui le fera une fois l'extraction fini

Il me serait facile de faire la suppression des doublon mais pour les autres utilisateurs c'est pas très évident.

Cordialement,

Avec le code que je vous ai proposé, vous n'aurez pas de doublons puisque l'on efface chaque fois l'archive en colonne N.

Edit : Je suppose que ce qui est mis Archive et Soldé dans votre tableau en colonne A ne va plus changer.

Avec le code que je vous ai proposé, vous n'aurez pas de doublons puisque l'on efface chaque fois l'archive en colonne N.

C'est exacte !

Edit : Je suppose que ce qui est mis Archive et Soldé dans votre tableau en colonne A ne va plus changer.

Le problème est là ce qui aura été mis Archive et Soldé ne changera pas mais d'autre qui sont "En cours ou Attente de réalisation ou etc." eux pourront passé en Archivé ou Soldé et quand je ferais à nouveau l'extraction les anciens et les nouveaux Archivé ou soldé seront ajouter à la précédente extraction.

Cordialement,

Le problème est là ce qui aura été mis Archive et Soldé ne changera pas mais d'autre qui sont "En cours ou Attente de réalisation ou etc." eux pourront passé en Archivé ou Soldé et quand je ferais à nouveau l'extraction les anciens et les nouveaux Archivé ou soldé seront ajouter à la précédente extraction.

Ben justement j'ai mis une procédure d'effacement au début du code pour ne pas avoir ces doublons. Les anciens qui ne changent pas seront réimportés avec les nouveaux dans les colonnes N à S.

Désolé mais je ne vois pas le souci. Au besoin faites un test avec le code complet en ajoutant Soldé en G200 par exemple

Bonjour,

Je comprends et c'est logique ce que vous expliquer mais le problème est que "l'État de traitement" est saisi manuellement Or les colonnes B, C, D, E, F peuvent être modifié et ne plus correspondre à l'état Archivé ou Soldé ce qui veut dire que les données que j'ai extraites avant la modification de mon tableau sont les seules archives qui me restent c'est pour cette raison que je veux les conserver pour pouvoir les exploiter plus tard.

Je m'excuse de ne pas avoir expliquer cette possibilité plutôt.

Cordialement,

colonnes B, C, D, E, F peuvent être modifié et ne plus correspondre à l'état Archivé ou Soldé

Bizarre.. si c'est archivé ou soldé on ne devrait plus y toucher.

Sur quelles colonnes le doublon ou les doublons doivent-ils être supprimés ?

Sur le Num Perso ou num série ?

Bonjour,

Sur le colonne "R" qui correspond au "N° Perso".

Cordialement,

Sur le colonne "R" qui correspond au "N° Perso"

Juste avant le END SUB, rajoutez les lignes ci-dessous

dlgN = Range("N" & Rows.Count).End(xlUp).Row
Application.DisplayAlerts = False
Range("$N$1:$S" & dlgN).RemoveDuplicates Columns:=5, Header:=xlYes
Application.DisplayAlerts = True

Cordialement

Bonjour,

Super ! ça marche super bien !

Merci Dan !

Cordialement,

Rechercher des sujets similaires à "copier coller doublons ecraser donnees precedentes"