Transfert de plages entre fichiers

  • Initiateur de la discussion Initiateur de la discussion KIM
  • 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 !

KIM

XLDnaute Accro
Bonjour le forum, bonjour les ami(e)s,
Je reviens vers vous pour demander votre aide et vous en remercie d'avance. J'ai élaboré, avec votre aide à chaque fois, un fichier de suivi d'activités avec plusieurs onglets (50), et des centaines de données calculées par vba ou formules, etc... Certaines données (plus de 300 cellules et plages) sont saisies par plusieurs utilisateurs.
Ce fichier de suivi évolue. Pour récupérer les données saisies du fichier source vers la nouvelle version cible je déclare dans mon code, en dur les plages et les cellules à copier et à coller. Les plages à copier peuvent changer d'onglet et de cellules dans le fichier cible.
Les données saisies étant énormes, je les ai listées dans le fichier TransfertSourceCible_v1 onglet Transf de la manière suivante : Pour chaque plage à copier 4 colonnes :
onglet source, Plage source, Onglet destination, Plage destination.
Question : Est-il possible et comment modifier la macro TransfDonnees_SourceCible pour lire les données de la feuil Transf et copier coller et les appliquer aux fichiers sélectionnés Sourec et Cible ? Cela me permet d'avoir une macro générique et une mise à jour des plages saisies plus facile à contrôler et à évoluer.
Merci de votre aide
KIM
 

Pièces jointes

Bonjour Pierrejean, bonjour le forum
Je sollicite ton aide et t'en remercie par avance.
En effet j'ai listé les plages de saisies source et cible. J'ai au min plus de 1000 lignes dans mon onglet Transf noms des onglets et adresses des cellules (plages) source et cible.
Comment je peux utiliser tes fonctions pour pour recopier par onglet le contenu des plages sources vers les plages cibles de l'onglet cible.
Merci de ton aide
KIM
 

Pièces jointes

Merci beaucoup Pierrejean, Je vais regarder et je te tiens au courrant.
Effectivement des contrôles sont nécessaire sur l'existance des feuilles cibles et aussi si les range source ou cible sont vides.
Merci encore. Je pense que tu peux immaginer le temps qu'il faut pour des copier-coller manuellement plus de 1000 plages.
Bon we
KIM
 
Bonjour Pierrejean et le forum,
Je tiens à te remercier vivement.
J'ai testé sur les fichiers tests, OK,
Par contre j'ai essayé de copier seulement les valeurs car la copie se fait avec le format source. Dans la version cible le format et la présentation dans certaines feuilles peuvent être différentes. J'ai rajouté .Value dans la ligne code suivante :
WbkS.Sheets(SourceDevis).Range(SourceClients).Value.Copy Destination:=WbkD.Sheets(DestinationDevis).Range(DestinationClients).Value
mais le format source est toujours copié dans le fichier Cible.
J'ai essayé au niveau de Tabsource mais j'ai eu un message d'erreur.
Dans quelle ligne code faut-il rajouter .Value pour copier seulement les valeurs Source dans Cible?
Demain je testerai avec des fichiers rééls et te tiendrai au courant.
Merci encore
KIM
 
Bonjour Pierrejean et le forum,
1/ Pour copier les valeurs seulement j'ai modifié la ligne de copie par :
WbkD.Sheets(ShDest).Range(DestinationDevis).Value = WbkS.Sheets(SourceClients).Range(PlageSource).Value
et cela fonctionne. Est-ce correct?
2/ Le nombre de plages à copier dépasse les milles plages. Normalement les plages cibles doivent être vides. Mais des plages peuvent être oubliées et rester non vides. Est-il possible quand on trouve la plage cible non vide, de garder le message dans la feuil Transf par ex :
La zone F8:F10 de la feuille A du fichier Cible.xlsm a été vidée
vider la plage Cible
et recopier la plage source dans la plage cible.

Merci d'avance
KIM
 
Bonjour Pierrejean et le forum,
Comme d'habitude, le script a bien focntionné avec des données réelles et quelques 2500 plages sources à recopier. MERCI.
Commentaires:
1/ vider les plages cibles non vides n'est plus nécessaire. J'ai corrigé manuellement les plages cibles comme tu l'as préconisé. C'est plus prudent car cela risque d'écraser des cellules avec des formules, etc.
2/Pour les 2500 plages traitées :
A part quelques 20 plages cibles non vides et des erreurs de saisie des noms des feuilles rencontrées, un cas non traité :
"plages cibles protégées" : Pour éviter que la macro se bloque et rechercher la plage de l'erreur concernée, Est-il possible de rajouter ce test avec un message dans l'onglet Transf pour identifier les plages rapidement.
Merci beaucoup. Je ne peux même pas immaginer le temps qu'il faut pour recopier manuellement ces plages.
Amitiés
KIM
 
- 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

Réponses
4
Affichages
223
Retour