Bonjour au forum
J'ai déjà été aidé sur mon projet par skooby, pierrejean, epaf, luki et excel lent mais l'intitulé précédent ne correspond plus à la nouvelle étapre (la collaboration des personnes citées ci-dessus a permis de regler le probleme)
L'etape suivante me semble tres compliquée mais j'espere faisable:
Il s'agit d'aller chercher dans 5 fichiers la date correspondant à celle saisie dans une inputbox (fichier choixdate.xls) et de recopier les cellules situées en-dessous
Je joins mon fichier test avec 2 bureaux (en réalité il y en a 5)
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
Sans ouvrir ton fichier joint, quelles sont tes difficultés ? Ouverture de tes classeurs ? recherche de la date ? Le format des données ?
Pour faire une recherche sur les dates, la méthode la plus sûre, parce que libérée des formats de dates saisies, est de formater tes colonnes date en nombre et la date cherchée en N° de série.
J'explique : Si tu saisies "9/10/07" dans une cellule, formaté dans ta colonne "09/10/2007", et que la date recherchée est "9/10/2007", la macro ne la trouveras pas.
Tandis que si tu cherches le N° de série de "9/10/2007", soit 39364, dans une colonne formaté en nombre, les trois dates proposés ci-dessus seront trouvées avec find.
Pour passer ta colonne en format Nombre, tu as
Code:
Columns("D:D").NumberFormat = "0"
Et pour rétablir ta colonne au format "08/10/2007"
tu as
Code:
Columns("D:D").NumberFormat = "mm/dd/yyyy"
Oui, les mois et les jours sont inversés avec NumberFormat (contrairement à Format(LaDate, "dd/mm/yyyy") utilisable pour une cellule ou un affichage)
Pour convertir la date saisie en N° de série, si elle sort d'un inputbox par exemple, tu as
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
re
bonjour epaf
merci pour tous ces éléments:
la difficulté est dans l'execution du code, il faut que dans la macro soit incorporée le fait qu'on va chercher la date dans les 5 fichiers et on doit recopier les cellules figurant sous celle ci
je pense que je vais pouvoir remedier aux soucis de format date avec les elements que tu m'as donnés (je crois qu'il faut que j'impose le format à la variable "question" et que je definisse le format dans les dates des 5 fichiers
Par ailleurs j'ai aussi des difficultés (alors que je croyais que ce serait simple) pour ajouter la recopie des autres fichiers, c'est la raison pour laquelle j'en ai mis 2 dans mon test)
J'essaie de voir ces problemes de format
Bonne journée
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
re
Epaf, le forum
oulala, j'ai du mal avec ces formats de date et je ne sais pas non plus comment utiliser la fonction find (et une fois que la date est trouvée il faut copier les cellules en dessou!)
est ce que je dois forcer un format dans mes fichiers initiaux (bureau1, 2 ..) ou puis je laisser le format date personnalisé comme actuellement?
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
En faisant ce que je t'ai dit, tu te libères complètement du format de date.
Pour copier une date d'un fichier dans l'autre, si ta colonne qui reçoit la date sous forme de N° de série, est dans un format de date, la valeur placée prendra le format de la colonne.
Exemple :
Code:
LaDate = cdbl(cdate(InputBox("Saisir la date"))) ' => 39364 pour le "9/10/2007"
Si la colonne NoCol est au format date et que tu mets
tu auras la date au format de la colonne.
Par contre si tu copies la cellule contenant la date en N° de série, (avec copy... Paste) tu obtiendras un N° de série dans ta colonne puisque Paste inclut le format lors du collage.
Pour ne pas copier le format, et en supposant que tu veuilles copier la date située dans classeur1.xls, feuil1, cellule C1 dans classeur2.xls... , tu fais
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
re
epaf, le forum
j'ai un peu modifié mon fichier choixdate pour faire apparaitre la date en A2 sur le fichier créé
Je crois que mon souci n'est pas vraiment le format de la date finalement mais plutôt la recherche de la date correspondante qui est en ligne 2 dans les 5 fichiers sources et surtout de recopier en fonction de cette date les elements saisiis en dessous sur 16 lignes dans mon exemple
Je pense qu'il faut d'abord que j'aie cette partie du code pour verifier ce que j'ai besoin de toucher au niveau des formats date
En plus je n'arrive pas à copier les elements de bureau2, bureau3... Je pensais que je n'avais qu'à recopier le code en changeant bureau1 par bureau2 puis 3... mais je ne sais pas à quelle ligne commencer et finir vu que je dois ouvrir et fermer les fameux fichiers
Pour acceder au code de chopixdate il faut faire ctrl pause sinon on quitte excel
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
re
j'ai trouvé pour la recopie des autres bureaux par contre je ne sais pas comment coder la recherche de la date et la recopie des cellules en dessous
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
Fais cette recherche avec find. Et c'est là que je conseille de faire cette recherche sur le N° de série.
Pour find, tu as un exemple en ligne (F1). Il suffit de supprimer la boucle comportant le FinNext puisque cette boucle sert à trouver la même occurence quand il y en a plusieurs dans une colonne, une ligne ou une feuille.
Allez, comme je suis brave...
Code:
'Ta boucle de saisie
LaDate = cdbl(cdate(Inputbox("Saisir la date etc.")
'....
Worksheets("TaFeuille").Columns("A:A").NumberFormat = "0"
With Worksheets("TaFeuille").Range("a1:a500")
Set c = .Find(LaDate, lookin:=xlValues)
If Not c Is Nothing Then
'Là, tu choisis ce qui te convient
adres = c.Address
'ou
NoLigne = c.Row
'la colonne tu la connais donc inutile
NoCol = c.column
'et pour le contenu de la cellule (la valeur cherchée)
ValeurLue = c
End If
'et tu remets le format pour ta colonne
Columns("A:A").NumberFormat = "mm/dd/yyyy"
End With
Avec Offset(0, n) tu peux avoir les données des cellules de la ligne trouvée (c.row, colonne n)
Bon courage
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
re
epaf, le forum
le code n'est pas facile à transposer car les dates sont en ligne et pas en colonne (ligne 2 de la colonne b à la colonne IV) et je ne vois pas comment faire recopier le contenu de la colonne sous la cellule de la ligne concernée
par ex la date est trouvée dans la cellule b2 et je veux alors que la plage b3 à b16 soit recopiée
de plus on avait mis plusieurs tests et du coup je sais plus placer le code dans l'ordre..
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
bonjour epaf, le forum
decidement j'ai du mal, j'ai essayé de sortir du contexte de mon fichier pour faire tourner le code que tu m'as fourni mais j'arrive sur une erreur et je n'arrive pas à comprendre ce qui ne va pas
j'ai mis un bouton pour lancer la macro sur la meme feuille et recopier à partir de A20
Re : recherche d'une date dans plusieurs fichiers pour recopie de plages de cellules
Bonsoir au forum
j'ai essayé de nombreuses possibilités toute la journée (toutes les infos données par epaf) mais en vain. Je suis vraiment trop debutant pour mettre tout ça en place..
Si quelqu'un pouvait m'aider directement sur mes fichiers tests ce serait ideal
J'ai fait un fichier qui trouve la date recherchée sur le meme fichier mais quand j'essaie de mettre le code sur mon vrai fichier ça ne marche pas