Copie selon critères et entre balises de dates

  • Initiateur de la discussion Initiateur de la discussion degap05
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

degap05

XLDnaute Impliqué
Bonjour,

Je me tourne vers vous pour de l'assistance.

Dans le classeur joint, j'ai mis en place un USF, qui me permet d'envoyer une copie de feuille vers un autre classeur. Mais là ou je butte, c'est pour la sélection des données à copier🙁
En effet se souhaiterais copier, selon critères, des lignes d'une feuille, alimentée au jour le jour et sans limitation de nombre.

Les cellules sont remplies de la colonne A à colonne Q.
Cette copie se ferait entre deux dates (la date en colonne Q servant de référence), vers un autre classeur, selon la commande contenue dans l'USF.

Les critères de sélection des lignes sont contenus dans la feuille "Identifiants" , en colonne I (plage nommée "Critères").

Les lignes copiées seraient classées par ordre alphabétique sur le nom en colonne A, puis sur le numéro de lot en colonne B.

Le plus, serait que l'USF garde en référence la dernière date de copie (qui pourrait être stockée sur la feuille "Identifiants") et la date du jour. Les deux étant modifiables. Il serait souhaitable de prévoir un format de date avec les minutes, pour mieux "baliser" l'action de copie.

Merci pour votre aide.
 

Pièces jointes

Re : Copie selon critères et entre balises de dates

Salut Degap05,

Tu trouveras ci-joint ton fichier modifié 😉

J'ai juste pas bien compris
Le plus, serait que l'USF garde en référence la dernière date de copie (qui pourrait être stockée sur la feuille "Identifiants") et la date du jour. Les deux étant modifiables. Il serait souhaitable de prévoir un format de date avec les minutes, pour mieux "baliser" l'action de copie.
Pour le reste c'est OK

A+
 
Dernière modification par un modérateur:
Re : Copie selon critères et entre balises de dates

Bonsoir BrunoM45,

Ta proposition est presque parfaite!!!
Je ne souhaite pas que les données se cumulent sur la feuille de destination.
Je préfèrerais qu'à chaque requête, les données existantes soient écrasées par les nouvelles.

J'ai essayé de mettre en place le tri par ordre alphabétique sur la colonne A, puis le tri sur le n° de lot en colonne B et enfin le tri par date sur la colonne Q et tout ce que j'ai réussi à faire c'est de trier la feuille source............... et non pas la feuille de destination........🙁🙁
Déjà un grand merci.
 
Dernière édition:
Re : Copie selon critères et entre balises de dates

Bonsoir, BrunoM45, bonsoir au forum,

Je suis en échec sur les deux points cités:

- l'écrasement des données au lieu de l'ajout,
- le tri du résultat par ordre alphabétique, je n'arrive pas à adapter le code suivant:Range("A4", Cells(derlig, Target.Column)).Sort Key1:=Range("B4"), Order1:=xlAscending, Key2:=Range( _
"C4"), Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom

Merci pour votre aide.
 
Re : Copie selon critères et entre balises de dates

Bonsoir BrunoM45,
Merci d'avoir poursuivi avec ma demande🙂

Cela fonctionne parfaitement.

Les données d'une nouvelle requête n'écrasent pas toutes les données de la précédente (si la liste était plus longue, les anciennes restent au-dessous des nouvelles).

Quel code ajouter pour réaliser le remplacement total de la liste précdente?

Ce matin j'essaie à mon travail et cela ne fonctionne pas. Certainement un complément à cocher? Saurais-tu lequel ? (Excel 2000).

Merci.
 
Dernière édition:
Re : Copie selon critères et entre balises de dates

Salut Degap05,

Les données d'une nouvelle requête n'écrasent pas toutes les données de la précédente (si la liste était plus longue, les anciennes restent au-dessous des nouvelles).

Il faut ajouter une ligne pour effacer le contenu de la feuille de destination, avant transfert
Code:
...
  ' Récupère le numéro de la dernière ligne remplie
  DerLig = Sheets("Données").Range("A" & Rows.Count).End(xlUp).Row
  ' Initialisation de la valeur de l'incrément
  VInc = 0
  [COLOR=darkgreen]' Effacer la feuille de destination avant[/COLOR]
  [COLOR=blue]Wb_dest.Sheets("Données").Rows("2:" & Rows.Count).ClearContents[/COLOR]
  ' Pour chaque ligne
  For Lig = 2 To DerLig
...

Ce matin j'essaie à mon travail et cela ne fonctionne pas. Certainement un complément à cocher? Saurais-tu lequel ? (Excel 2000).
Il faut éventuellement vérifier dans l'éditeur VBA -> Références, si il n'y en a pas une qui manque !

Sinon je ne vois pas trop.

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour