XL 2016 Copie ligne d'un tableau dans un autre classeur

jahsoldier

XLDnaute Nouveau
Bonjour,

J'ai besoin de pouvoir copier des lignes d'un tableau vers un classeur après un choix via liste déroulante.

Pour situer mon cas :

J'ai un classeur principal qui reprend plusieurs informations (ici le fichier DAF). Dans ce classeur, il y a la feuille principale sur laquelle arrive les informations et ensuite les feuilles qui correspondent aux employés. Dès qu'on choisit les initiales d'un employé dans la première feuille, la ligne se coupe / colle dans la feuille de l'employé.

Ensuite, chaque employé possède son propre classeur (ici SH) et copie les nouvelles lignes manuellement dans son classeur sur la feuille correspondant au nom du classeur principal. Ce que je voudrais pouvoir faire, c'est que le copie/coller se fasse automatiquement dans le classeur de l'employé en même temps que le couper/coller dans le classeur principal lorsque l'on sélectionne les initiales de l'employé dans la colonne D. Il existe déjà le code VBA pour le couper/coller et tout fonctionne parfaitement, je voudrais juste parvenir à copier/coller les lignes en primes dans le classeur personnel de l'employé sur la feuille correspondant au nom du classeur principal

Petite difficulté supplémentaire, les deux classeurs sont dans des dossiers différents.

Je vous mets les deux classeurs en pièce jointe.

Merci d'avance pour le temps passé à lire ce message et bonne soirée/journée
 

Pièces jointes

  • DAF 1.0.xlsm
    80.1 KB · Affichages: 7
  • SH 1.0.xlsm
    49.9 KB · Affichages: 2
Dernière édition:
Solution
Bonjour @jahsoldier , le Forum

En effet avec cette complication de "Cloturé" sans encore avoir d'intitiales de l'employé m'a fait laisser un "Exit Sub" intempestif dans la v00... Donc voici un v01 où j'ai, je pense, tout essayé et re-essayé (cette fois-ci !)

Les Fichiers individuels sont la aussi dans le Zip pour que tu puisses simuler les mêmes tests que moi en adaptant le répertoire comme tu as déjà fait.

Le zip doit être décompressé dans un folder de test (ne pas exécuter dans le zip !, ca ne fonctionera pas !). Et donc c'est le chemin de ce répertoire de test que tu indiqueras dans Private Const PathStaff en finissant bien avec un anti-slash "\".

Cette fois-ci j'ai neutralisé toutes les autres macros...

cp4

XLDnaute Barbatruc
Autant pour moi,

Je l'avais nettoyé pour éviter tout soucis de RGPD :p

Je rajoute des données factices dedans, je remets donc en pièce jointe :)
Si tu appelles ça avoir mis des données. Eh ben! chapeau. Rien ne correspond à ta demande.
" Dès qu'on choisit les initiales d'un employé dans la première feuille, la ligne se coupe / colle dans la feuille de l'employé. "

Pour moi, je n'irai pas plus loin.
Bonne soirée.
 

jahsoldier

XLDnaute Nouveau
Je ne l'avais pas fait afin que vous puissiez voir comment fonctionnait la macro, maintenant je peux remplir les tableaux de façon plus probante (sachant que toutes les cases ne sont pas toujours remplies dans toutes les lignes).

J'espère que cette fois c'est la bonne, et vraiment désolé de vous avoir fait perdre votre temps :s.
 

Pièces jointes

  • SH 1.0.xlsm
    49.9 KB · Affichages: 7
  • DAF 1.0.xlsm
    90.7 KB · Affichages: 6

jahsoldier

XLDnaute Nouveau
Bonsoir,

je relance un peu la discussion.

Après quelques lectures, recherches et autre j'avance dans le code mais je cale.

Voici ce que j'ai pour l'instant :

VB:
ElseIf Target.Value = "SH" Then
        Dim cdest As Workbook
        Set cdest = Workbooks.Open("C:\Users\xxxx\SH 1.0.xlsm")
        Workbooks("DAF 1.0.xlsm").Worksheets("DAF").Range(ActiveCell.Row).Copy Destination:=Workbooks("SH 1.0.xlsm").Worksheets("Daf").Range("A65536").End(xlUp).Offset(1, 0)
        cdest.Close

malheureusement, lorsque je teste le code, j'ai une erreur 1004 qui s'affiche avec comme texte : Erreur définie par l'application ou par l'objet..

et j'avoue que là je cale :s si l'un d'entre vous avait l'amabilité d'éclairer ma lanterne sur cette erreur, ce serait vraiment bien aimable.

Bonne soirée et merci d'avance pour le temps passé à la lecture.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir @jahsoldier , le Forum

Pas si simple ton truc...
Voici un premier jet "v00" pour voir si on s'approche un peu de ton "délire"...

Le chemin doit être changé ici pour les Fichiers "Employés" :
VB:
Private Const PathStaff As String = "C:\Users\te\Documents\XLD\jahsoldier\STAFF\" '<<<<<<< A ADAPTER !!!!!!!!!!!

En top du Private Module de la feuille "DAF"... (Je ne traite QUE celle là)
J'ai simplfié ton impressionnante et longue macro pour ne pas répeter chaque cas..

Je ne pense pas que ce soit bon de répéter en plus tout ce sbinz dans chaque onglet, ca va finir par "exploser"

Bonne découverte
@+Thierry
 

Pièces jointes

  • XLD_JAHSOLDIER_ DAF 1.0_Thierry_Dispatcher_v00.xlsm
    89.4 KB · Affichages: 9

jahsoldier

XLDnaute Nouveau
Bonjour,

Merci beaucoup pour la réponse.

J'ai jeter un œil au fichier et fait quelques essais. J'ai modifié le chemin d'accès dans le haut du private module de la feuille DAF mais le copier-coller sur le nouveau fichier ne se fait pas. Le classeur de destination ne s'ouvre pas.

Le couper-coller ne fonctionne pas non plus si je choisis des initiales des "employés". Par contre, si dans la feuille DAF je séléectionne les initiales d'un employé et qu'en prime je rajoute cloturé en colonne 17, alors la ligne se coupe et colle dans la bonne feuille du classeur Source (mais toujours sans ouverture et copie dans le classeur de destination)

Et pas de soucis pour moi pour ne travailler que dans la première feuille du fichier DAF, j'adapterai sur les autres feuilles (existe-t-il un moyen de répercuter directement le code d'une feuille sur tout le classeur sans devoir le copier sur chaque feuille?)
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour @jahsoldier , le Forum

En effet avec cette complication de "Cloturé" sans encore avoir d'intitiales de l'employé m'a fait laisser un "Exit Sub" intempestif dans la v00... Donc voici un v01 où j'ai, je pense, tout essayé et re-essayé (cette fois-ci !)

Les Fichiers individuels sont la aussi dans le Zip pour que tu puisses simuler les mêmes tests que moi en adaptant le répertoire comme tu as déjà fait.

Le zip doit être décompressé dans un folder de test (ne pas exécuter dans le zip !, ca ne fonctionera pas !). Et donc c'est le chemin de ce répertoire de test que tu indiqueras dans Private Const PathStaff en finissant bien avec un anti-slash "\".

Cette fois-ci j'ai neutralisé toutes les autres macros évènementielles qui interfèrent quand on change les onglets avec ma macro de DAF qui, pour moi, est la feuille "Maître" de départ des évènements.

Je pense que tu dois un peu revoir le concept général car à répéter à l'infini la même macro évènementielle sur le Worksheet_Change de tous les onglets qui elles-même changent ces onglets qui eux-même déclenchent la même macro qui change des onglets, c'est devenu comme un gros serpent qui se mord la queue jusqu'à devenir une boule de bowling et "exploser" ou plutôt dans ce cas "imploser"...

Bons essais et courage
@+Thierry
 

Pièces jointes

  • XLD_JAHSOLDIER_ DAF 1.0_Thierry_Dispatcher_v01.zip
    421.5 KB · Affichages: 29

jahsoldier

XLDnaute Nouveau
Super, ça fonctionne du tonnerre et en faisant quelques tests je n'ai pas vu de soucis. La seule chose c'est qu'un dossier peut être clôturé sans attribuer de contrôleur mais ça je peux supprimer la ligne du else et le msgbox qui apparait :)

Encore merci pour tout.

Et pour ce qui est des changements d'onglets, a priori il y a très peu de chance qu'un dossier change d'un contrôleur à un autre sauf en cas de départ ou absence prolongée, c'est pour ça que j'avais noté la macro sur toutes les feuilles du classeur.

Je ne peux que te remercier pour le travail fourni et la rapidité d'action :)
 

Discussions similaires