Deplacer ou copier

Bonjour,

Un peu perturbé hier... Mais le débogage est en bonne voie ! J'avais buté sur une Combo que j'avais omis de programmer, et qui ne répondait donc pas... ceci complété, j'ai trainé un peu sur le fait que les transferts se signalaient réalisés et ne faisaient en fait pas, avant de me rendre compte que machinalement je fermais systématiquement les classeur sans enregistrer ! donc en éliminant le transfert. Il me reste un petit réglage à faire pour harmoniser l'enregistrement ou non avec la visibilité des classeurs... (toujours ouverts non visibles). Après une petite course...

A+

Bonjour,

Je te remercie de ta persévérance ainsi que ton engouement.

Je sais que je ne saurai t'aider sur ce projet.

Merci

@+

Cordialement

Noel

Pas d'inquiétude ! Un petit retard car j'ai trouvé un problème potentiel que j'ai pris en compte : c'est le cas où la feuille à transférer a même nom qu'une feuille du classeur cible, on demande à l'utilisateur s'il veut substituer la nouvelle feuille à l'ancienne ou conserver les deux, s'il conserve les deux, on lui demande de fournir un nom pour la nouvelle... mais il pourrait se produire que par erreur il fournisse un nom qui lui aussi existe dans le classeur cible ! J'ai donc introduit la liste des feuilles existantes du classeur cible dans le message de signalisation, et une annulation de l'opération au cas où par erreur il donne tout de même un nom existant...

Sur ce j'ai refait un programme de tests, que j'ai noté, 9 tests pour balayer tous les cas, non compris les cas d'annulation que je peux glisser... mais je n'ai pas testé dans la foulée... ce sera après avoir dormi !

[Je suppose que tu te lèves, je me prépares à me coucher !]

Bonne journée à toi.

Re,

Es tu un homme de la nuit?

Si c'est le cas je te souhaite bonne nuit

Cordialement

Noel

Bonjour,

Encore eu quelques petits réglages au cours des tests (cas où le nom est modifié pour transfert dans cible : sur la source on renommait du nouveau nom pour le transfert, et on rétablissait le nom origine après... mais cas où le nouveau nom existait aussi dans la source, cette technique ne fonctionnait plus ! il a fallu jongler autrement, ...et faire des réajustements pour les messages qui ne donnaient plus toujours les bon noms...)

A-priori, c'est bon ! Me signaler si tu vois une anomalie (jamais exclu tant qu'un nombre d'essais suffisant n'a pas eu lieu.

Dossier zip joint : contient 4 fichiers, le fichier "maître" qui contient le Userform est Projet1.

Tous ces fichiers doivent être placés dans un même dossier.

Le dispositif permet tous les transferts (transferts de copie, les feuilles origines demeurent) entre tous les fichiers regroupés dans le dossier :

On peut Importer : de tous les autres classeurs vers Projet1

et Exporter : de Projet1 vers un autre classeur, d'un autre classeur vers un autre classeur.

Procédure de lancement du Userform à affecter à un raccourci...

A l'ouverture : une Combo contient la liste de tous les classeurs, et permet de choisir le classeur Source,

une Combo Feuilles (vide au départ) accueille la liste des feuilles du classeur Source choisi, et permet de choisir la feuille à transférer,

2 cases d'options (Exporter vers et Importer) permettront de choisir l'option.

Une 3e Combo, destinée à choisir le classeur Cible, n'est pas visible à l'ouverture, elle devient visible lorsque l'option Exporter est cochée, accueille alors la liste des classeurs cibles possibles (classeur Source exclu et Projet1 exclu [s'il est la cible, c'est de l'Import]).

On choisit donc la Source dans la 1re Combo (si on choisit Projet1, Exporter se coche automatiquement et la Combo cible apparaît).

Puis on choisit la feuille à transférer, l'option Import ou Export (on n'importe que vers Projet1 à partir des autres classeurs, tous les autres transferts sont de l'export).

Si Import, pas de cible à choisir (la cible est Projet1), sinon on choisit la cible.

Si un choix a été omis, c'et rappelé lors de la validation.

3 cas peuvent se présenter :

  • la feuille transférée ne fait pas doublon de nom dans la cible : le transfert a lieu, la nouvelle feuille est insérée à la suite des feuilles existantes, un message le confirme
  • il y a doublon de nom : l'utilisateur est consulté pour savoir s'il veut substituer la feuille transférée à l'ancienne de même nom ou non : s'il répond Oui, la feuille est transférée à l'emplacement de l'ancienne qui est supprimée, un message le confirme
  • si l'utilisateur veut conserver les 2 feuilles et répond alors Non, il lui est alors demandé d'indiquer un nouveau nom dans une boîte de saisie (le message de questionnement listait les feuilles existantes dans la cible, de façon à lui permettre d'indiquer un nom n'y figurant pas), la feuille est transférée à la suite de la feuille homonyme, un message le confirme.
NB- Si l'utilisateur ne choisit pas de nom dans la boîte de saisie et clique sur Annuler, cela vaut annulation de l'opération, un message le confirme. S'il se trompe dans le nom choisi et indique un nom déjà existant, l'opération est annulée, un message le confirme.

Le dispositif est adaptable : le classeur maître est celui qui contient le Userform et pilote donc l'ensemble. On peut changer les noms de tous les classeurs, ils sont récupérés en temps réel dans le dossier, et le nom du classeur maître est également pris en compte en temps réel (le code utilise des variables...)

On pourrait je pense avoir plusieurs classeurs pouvant jouer le rôle de classeur maître dans le groupe de classeur : le maître actif étant celui à partir duquel on commande une opération. Il suffirait en principe d'exporter le Userform pour l'importer dans d'autres classeurs. Mais il conviendrait de tester afin de s'assurer que cela ne produit pas d'effet secondaire non voulu...

Cordialement.

9cfn3cfn.zip (50.84 Ko)

Bonjour MFerrand,

Ce fut un boulot titanesque à voir seulement l'explication.

Tu n'as pas dormi de la nuit pour le faire.

Il faut que j'assimile tout ça.

Je vais faire les essais je te tiens informé.

En tout cas merci pour ta réalisation.

Cordialement

Noel

Re,

J'ai fait quelques essais.

C'est un travail formidable.

On peut jongler comme on veut c'est super.

Par contre ce qu'on ne peut pas faire c'est de supplanter la feuille du même nom. Mais c'est pas si grave, dans la mesure on peut sauvegarder avec un autre nom.

Tu sais comme je travaille surtout avec des userformes est-il possible de l’empêcher d'ouvrir le projet qui plus est mes projets en générale s'ouvre avec Private Sub Workbook_Open(). Dans le cas contraire je serai dans l'obligation d'enlever cette ouverture au départ et de plus Application.Visible=False.

Je fais abstraction de cette ouverture et je continue de faire mes transferts.

Sinon c'est un projet qui vaut son pesant d'or.

Merci de tout ce travail. Il faut qu'on arrive à se voir d'autant plus que tu es sur l'ile.

Dan qui est de Belgique est venu en vacances à la Réunion, il était enchanté.

J'essaye de faire connaître notre ile à des forumeurs qui le veulent.

Cordialement

Noel

Bonjour,

ce qu'on ne peut pas faire c'est de supplanter la feuille du même nom

Qu'est-ce que tu entends par là ?

Tu peux substituer s'il s'agit du même nom... Cela n'intervient pas si les noms sont différents. Mais on peut facilement ajouter une possibilité de suppression, qui complèterait la gestion à distance (sans te rendre sur les classeurs).

Bonjour MFerrand,

C'est exactement cela c'est à dire de pouvoir transférer le feuilles sans pour autant ouvrir le classeur qui les reçoit.

Sinon je me répète c'est super.

@+

Cordialement

Noel.

Rechercher des sujets similaires à "deplacer copier"