Transfert de plages entre fichiers

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

  • TransfertSourceCible_v1.xlsm
    18.8 KB · Affichages: 17
  • Source.xlsm
    18.5 KB · Affichages: 18
  • Cible.xlsm
    20.6 KB · Affichages: 15

pierrejean

XLDnaute Barbatruc
Bonjour KIM

Il y avait longtemps que l'on ne s’était croisé
Une solution avec 4 fonctions permettant d'aller chercher les adresses a utiliser dans la feuille transf
A tester
 

Pièces jointes

  • TransfertSourceCible_v1.xlsm
    23.2 KB · Affichages: 17

KIM

XLDnaute Accro
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

  • TransfertSourceCible_v2.xlsm
    19.3 KB · Affichages: 14
  • Source.xlsm
    22.1 KB · Affichages: 11
  • Cible.xlsm
    23.8 KB · Affichages: 15

pierrejean

XLDnaute Barbatruc
Bonjour

Vois si ceci te convient
Attention : les feuilles doivent exister tant dans le fichier cible que dans le fichier source
Si nécessaire on peut étudier des contrôles
 

Pièces jointes

  • TransfertSourceCible_v2.xlsm
    22.8 KB · Affichages: 13
  • Cible.xlsm
    24 KB · Affichages: 11
  • Source.xlsm
    22.3 KB · Affichages: 12

KIM

XLDnaute Accro
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
 

pierrejean

XLDnaute Barbatruc
Voici une version avec contrôles d'existence des feuilles cible et vacuité des zones de copie
A tester et me tenir au courant
 

Pièces jointes

  • TransfertSourceCible_v2.xlsm
    25.5 KB · Affichages: 18
  • Cible.xlsm
    23.8 KB · Affichages: 13
  • Source.xlsm
    22.3 KB · Affichages: 17

KIM

XLDnaute Accro
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
 

KIM

XLDnaute Accro
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
 

KIM

XLDnaute Accro
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
 

pierrejean

XLDnaute Barbatruc
Bonjour

Version v2 avec contrôle des cellules verrouillées (Faut-il s'assurer que la feuille est protégée ????)
La version v3 vide les non vides et signale, mais copie
 

Pièces jointes

  • TransfertSourceCible_v2.xlsm
    26.5 KB · Affichages: 14
  • TransfertSourceCible_v3.xlsm
    25.6 KB · Affichages: 15

Discussions similaires

Réponses
56
Affichages
1 K

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 133
dernier inscrit
mtq