Archiver des données suivant plusieures conditions

Bonjour à tous ,
un nouveau sujet a vous soumettre ,je souhaite pouvoir archiver des données d’une feuille a une autre suivant deux critères ,si il y a « OUI » dans la colonne L de la feuille source et si la date est superieure ou égale a aujourd’hui .
Deuxième souhaits ,pour éviter les doublons dans la feuilles d’archivage ,de ne pas copier si les données identiques aux colonnes J et K ont déjà été copiées ,l’importance et l’association des deux colonnes pour une même ligne .
J’espère ,une fois du plus avoir été clair (même si parfois entre l’idée de ce que l’on souhaite avoir et la traduction par une requête claire n’est pas aisée).
Ci joint le fichier avec toute les explication dans la première feuille .
Merci d’avance ,
Franck .
Test archivage.xlsx (12,9 Ko)

1 « J'aime »

Bonjour,

Une premier approche pour votre demande

Salutations

Test archivage.xlsm (23,8 Ko)

1 « J'aime »

Bonjour Franck,

Je vais aussi participer, le sujet m’intéresse.

Cordialement

1 « J'aime »

Bonjour à vous deux !
Merci Johnny pour cette première proposition qui donne entière satisfaction !!
Tout y est ,les contraintes sont respectées et les elements a copier sont bien présent en archive .
Super boulot !!
Merci ,
je vais maintenant l’adapter a un gros fichier existant ,j’aurai peut-être de nouveau besoin d’aide …ou pas :smile:
Au plaisir ,
Franck .

1 « J'aime »

Hello ,

Cool du premier coup :slight_smile:

Parfait ravie d’avoir pu t’aider a une prochaine

Salutation

Bonjour Johnny ,
j’ai transposer ton tableau dans mon gros fichier de boulot ,ou les colonnes sources a recopier ne sont plus les même ,j’ai adapté ta macro en ce sens :
"Sub ArchiverDonnees2()

Dim wsPlanifie As Worksheet, wsRepris As Worksheet
Dim lastRowPlanifie As Long, lastRowRepris As Long, r As Long
Dim found As Range
Dim currentDate As Date

Set wsPlanifie = ThisWorkbook.Sheets("CODE ARTICLE CR")
Set wsRepris = ThisWorkbook.Sheets("ARCHIVE REPRISE")

currentDate = Date

lastRowPlanifie = wsPlanifie.Cells(wsPlanifie.Rows.Count, "A").End(xlUp).Row

For r = 1 To lastRowPlanifie
    If wsPlanifie.Cells(r, 15).Value = "OUI" And _
       wsPlanifie.Cells(r, 13).Value >= currentDate Then
       
       
        Set found = wsRepris.Range("Q:Q").Find(wsPlanifie.Cells(r, 17).Value)
        If Not found Is Nothing Then
            If wsRepris.Cells(found.Row, 10).Value = wsPlanifie.Cells(r, 10).Value Then
            
                GoTo NextIteration
            End If
        End If
        
      
        lastRowRepris = wsRepris.Cells(wsRepris.Rows.Count, "A").End(xlUp).Row + 1
        wsPlanifie.Range("A" & r & ":R" & r).Copy wsRepris.Range("A" & lastRowRepris)
       
    End If

NextIteration:
Next r

End Sub
mais je dois avoir loupé quelque chose car la seconde partie de la macro ;" Set found = wsRepris.Range(« J:J »).Find(wsPlanifie.Cells(r, 10).Value)
If Not found Is Nothing Then
If wsRepris.Cells(found.Row, 11).Value = wsPlanifie.Cells(r, 11).Value Then

                GoTo NextIteration"

ne fait plus le job ,elle ne va plus me bloquer la recopie lorsque les deux facteurs sont réunis et du coup ,
Je peux copier a l’infini les mêmes données .
Je te transmet le fichier dans lequel j’ai ajouté mes deux feuilles modifiées (PLANIFIE =CODE ARTICLE CR et REPRIS=ARCHIVE REPRISE)
J’ai peut-etre omis une modification …
Si tu as le temps de jeter un coup d’oeil :wink:
Franck .
Test archivage.xlsm (2,2 Mo)

Bonjour à Tous ,
après avoir passé un peu de temps a essyer de comprendre pourquoi la macro proposée par Johnny ne fonctionnait plus lorsque je l’ai transposé sur un autre fichier avec les memes données a recopier ,la différence ,du moins c’est ce que je croyais !!,etait le changement d’affectation des colonnes .
En fait mon nouveau tableau contient des formules et c’est là que la macro ne peut plus s’effectuer correctement ,j’ai fait un test en copier uniquement les valeurs et tout fonctionne .
Y a t-il une modification possible pour que la macro prenne en compte les formules ?
Sinon je rajoute une étape au début de macro avec un copier coller uniquement les valeurs dans une feuille tampon avec remise en forme.
Merci à tous et bon week-end (pluvieux ici !!)
Franck .

Bonjour

J’ai étudié ton fichier
Pour exclure de la recopie les enregistrements aux données colonne « J » et « K » déjà présentes dans l’onglet cible « REPRIS » pas d’autre choix que de rajouter dans celui-ci une colonne avec l’agrégat de ces 2 valeurs que le traitement doit interroger

En colonne « O » onglet « REPRIS » les données CLE+OF de chaque enregistrement
Le traitement scrute celle-ci pour intégrer ou non les lignes de l’onglet « PLANIFIE »
A l’intégration d’une nouvelle ligne en colonne « O » est constitué l’agrégat CLE+OF

J’ai testé plus de doublon

A toi de vérifier si ceci correspond bien à ton attente

Test archivage.xlsm (2,2 Mo)

1 « J'aime »

Bonjour FFO ,
heureux de te lire à nouveau !!
C’est effectivement ce qu’il manquait a l’adaptation que j’avais faite de la macro initiale de Johnny .
Merci ,ce fonctionne a merveille .
Bon week-end à toi !
Franck .

Merci pour ce retour
Ce fut un plaisir de me joindre à ce fil que johnny à merveilleusement piloté
Une petite imperfection dans son traitement proposé rien de grave le noyau dur est opérationnel juste une petite adaptation mise en place pour corriger les quelques cas à la marge pour exclure tout doublon
Au plaisir une prochaine fois

Hello,

sincèrement désolé.
Avec la course à la fin de l’année ayant commencé, j’ai eu du mal à trouver du temps pour moi.

Mais c’est vraiment avec un grand plaisir que je vois l’intervention de FFO.

Une immense joie de voir que tu es toujours là et à continuer de me suivre :-).

J’espère que tout va pour le mieux pour toi.
Un pur bonheur de commencer la semaine en voyant cela.

Très belle journée, au plaisir.

johnny

1 « J'aime »

Bonjour
Rassures toi tout va pour le mieux me concernant
Effectivement je me fais plus discret mais veille avec beaucoup d’assiduité prêt à intervenir en cas de besoin
Ce fut le cas pour cet échange car j’avais anticipé cette imperfection
Faute de réponse de ta part j’ai choisi d’apporter ma petite contribution
Dès qu’une clé est constituée de plusieurs données en source pas d’autre choix que de la fabriquée en cible pour s’appuyer dessus si l’on ne veux pas être contraint à une analyse integrale pour en déterminer sa présence et ce pour chacune d’elle
A tout les deux notre interlocuteur est satisfait notre consortium est productif
Au plaisir de coopérer une prochaine fois

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.