Dupliquer des lignes dans un onglet différents

Bonjour

Je suis nouveau sur le site est dans les macro VBA

L'onglet "Manpower Request" est ma base de données

Je cherche depuis cet onglet a copier des lignes dans les onglets "Manpower Request GPS" et "Manpower Request Agency"

Dans l'onglet "Manpower Request" , pour exemple, j'ai la ligne 18 qui comprends plusieurs critères notamment le critère "Origin" et "Working Condition" qui comprends 6 valeurs et 3 valeurs respectivement

Les coches ne seront pas identiques

Pour une ligne je peux avoir plusieurs "origin" par contre je n'aurai toujours qu'une seule "Working Condition"

Je souhaiterais copier et dupliquer la ligne 18 autant de fois que j'ai de critères sélectionnés dans "Origin" avec les valeurs des colonnes F, H, J, la valeur de M,N,O,P,Q,R - "Origin" - (située en Ligne 17 pour les colonnes mentionnées ci-avant), la valeur de S, T,U - "Working Condition" - (située en ligne 17 pour les colonnes mentionnées ci-avant)

Voilà, j'espère que je me suis fait comprendre

Merci d'avances

Bonjour

Je cherche depuis cet onglet a copier des lignes dans les onglets "Manpower Request GPS" et "Manpower Request Agency"

Comment on sait dans votre tableau quel est l'onglet à utiliser ?

Bonjour les onglets sont nommés comme suit et de gauche à droite

Manpower Request (C'est la base de données)

Manpower Request GPS & Manpower Request Agency sont les deux onglets dans lesquels je souhaite réecrire

Re

Ma question n'était pas assez précise je pense.

Ce que je voulais savoir c'est si on duplique bien dans les deux Manpower Request GPS & Manpower Request Agency ou s'il y a un critère à respecter

Autre chose : est-ce normal que dans la feuille Manpower Request Agency, il n'y a pas le job code name ?

Je vous ai déjà préparé quelque chose mais pour la feuille Manpower Request GPS.

Crdlt

Re

Oui, il faut dupliquer dans les deux feuilles Manpower Request GPS, & Manpower Request Agency.

Pour la Manpower Request Agency c'est Normal. Je n'en ai pas le besoin. Subtilité et erreur, sur cette feuille, le SAIPEM Role Name est à remplacer par le Project Role Name (colonne C de l'onglet "Manpower Request" ).

Pour l'onglet "Manpower Request GPS", j'ai besoin du Job Code (colonne F de l'onglet "Manpower Request" ), et du SAIPEM Role Name (colonne H de l'onglet "Manpower Request" )

C'est la seule différence notable.

Cordialement

Bastien

Bonjour,

Oui, il faut dupliquer dans les deux feuilles Manpower Request GPS, & Manpower Request Agency.

Sur votre feuille vous avez deux boutons pour effectuer la copie. Dans le code que je vous ai préparé, l'exécution de la copie se fait avec un seul bouton....

C'est bon pour vous ou vous voulez que je sépare le code en deux ?

Bonjour

Non c'est bon pour moi avec un seul bouton

Cordialement

Bonjour

Votre fichier en retour.

- Le code Sub Copie se trouve dans le module 2 et est liée au bouton "copy value to MR GPS & MR Agency"
- le bouton lié à ce code est appelé depuis la macro Private Sub CommandButton4_Click() se trouve dans la feuille Manpower Request. A cette fin, j'ai désactivé les lignes de code pour ne laisser que l'instruction permettant d'appeler le code Copie
- La macro Private Sub CommandButton5_Click est désactivée puisque l'on passe par un seul bouton

J'ai quelques remarques sur votre fichier :
- Vous avez deux fois le code Private Sub Worksheet_BeforeDoucleRightClick. Une fois dans le module 1 et une autre fois dans la feuille Manpower Request. Vous pouvez supprimer celui dans le module 1. Je l'ai désactivée
- J'ai déplacé certains code Sub ....() dans le module 1.De base je vous conseille de placer vos code Sub dans les modules. Par contre les macros événementielles de type Private Worksheet ... ne seront exécutées que depuis les feuilles
- Dans le code Private Sub CommandButton3_Click, vous décalerez 3 Const. A cet endroit les Const ne servent pas . Vous pouvez les valeurs directement dans le code.
-
Attention au point manquant devant Rows.count lorsque vous utilisez with..... Je l'ai ajouté.

Si ok, merci de ne pas oublier de cloturer le fil en cliquant sur le petit v en haut à droite

Cordialement

Bonjour,

Merci pour votre retour, ça fonctionne du tonnerre!!! C'est exactement ce que je désirais faire

Merci également pour vos autre commentaire.

Par contre, j'ai une question, est-il possible de le faire pour toute les lignes en même temps, et pas uniquement ligne par ligne?

Merci

Re,

Oui c'est possible mais il vous faudra un repère pour ne pas le faire deux fois. exemple si vous ajoutez des lignes.

A voir comment vous fonctionnez évidemment car là dans votre fichier, il y a des lignes vides en colonne C, etc... peut être se baser sur le x dans Origin ?? Mais il faut encore savoir ce qui a déjà été copié je suppose.

Bonjour

Ne peut-on pas se baser sur la colonne B, qui incrémente une série avec une macro déjà existante pour les cellules non vides en colonne C.

En gros sur la ligne 18, qui correspond au chiffre 1 dans la colonne B, faire une incrémentation de type 1.1 / 1.2 / 1.3 pour les "valeurs origin"

C'était dans ce but que j'avais créer les boutons en bleu.

Après le but, c'est qu'une fois la base de données renseignée, j'active le bouton.

Cordialement

Re bonjour

Est-il possible de ne pas copier la ligne pour la valeur "Local" pour GPS

Merci

Re

Est-il possible de ne pas copier la ligne pour la valeur "Local" pour GPS

Oui il suffira de placer une condition i<18 dans le code juste en dessous du contrôle sur le "x". Ok pour ce point.

Ne peut-on pas se baser sur la colonne B, qui incrémente une série avec une macro déjà existante pour les cellules non vides en colonne C.

Oui on peut faire cela mais si vous n'avez pas de x dans Orgin. cela va poser un souci dans la recopie car le code actuel ne copie que s'il voit un x. En gros dans le fichier posté, il ne copierait que jusque la ligne 23. Ensuite pour ne pas refaire la copie, il faudra un repère supplémentaire qui dit au code que cela a déjà été copié.
Lorsque vous parlez d'incrémentation 1.1, 1.2.... que vous lez vous dire ?

Re bonjour

Je vous ai fait un exemple
J'ai rajouté les colonnes C à H qui à chaque fois que vous cocher une case dans l'Origin donne son WBS (Work Breakdown Structure)
Si la case "Western" est cochée, il lui donne le numéro 1.1
Si la case "Eastern" est cochée en même temps que "Western", il lui donne le numéro 1.2.
Par contre si la case "Western" n'est pas cochée, il lui donne le numéro 1.1
Et ceci dans tout les cas de figure.

Je ne sais pas si ça peut aidé

Du coup j'ai modifié le code en conséquence.

Sur le fichier que je vous envoyé, j'ai rescindé le code en deux pour essai.

Le deuxième code est appelé Copie2 et est affecté au module 3

Cordialement

classeur-demande-agence-rev-6.xlsm

Re,

Non cela m'aide pas je pense. ce qu'il faut repérer c'est quand vous avez copié vers les deux feuilles ou pas. Mais pour cela j'ai une autre idée

Par rapport à cette idée j'ai une question me vient en tête, dans Origin est-ce que vous complétez tous les X en une seule fois ou est-ce que vous pourriez compléter puis copier vers les deux feuilles et ajouter d'autres x plus tard ?

Re

Je ne complète pas en une seule fois.

Un "Project Role Name" peut avoir plusieurs origin, mais cela reste rare quand nous demandons toute les origines.

Un projet peut comprendre entre 600 et 1000 Roles, voir plus, ce qui ferais plus de 36000 rates à demander. Ce n'est pas possible.

Nous sommes plutôt entre 2 et 3 origin par Role

Non le but est vraiment de finaliser la base de données avant d'envoyer vers la création des deux feuilles.

Autrement ça va être le "bordel"

A moins que vous n'ayez une idée?

J'espère que j'ai été assez clair dans mon explication.

C'est également dans ce but que j'avais rajouté les colonnes C à H

Cordialement

re

Non le but est vraiment de finaliser la base de données avant d'envoyer vers la création des deux feuilles.

Donc on pourrait se trouver dans le cas de figure où vous avez complété la colonne C mais sans avoir de données x en Orgin mais que vous ayez numéroté en colonne B. Juste ?

Au fait pourquoi vous avez "Ligne dupliquée" dans la colonne G ? Je suppose que cela n'a rien avoir avec le fait de copier les lignes dans les deux feuilles

RE

Alors non, pour chaque remplissage en colonne C, j'aurai obligatoirement une origin minimum

C'est une repère, pour connaître quelle ligne à été copiée après l'utilisation de la macro double click.

Cela me permettra par la suite de pouvoir faire un reset du fichier via une macro en supprimant les lignes dupliquée, et cela n'a rien à voir en effet avec le fait de copier les lignes dans les deux feuilles

Bonjour

Alors non, pour chaque remplissage en colonne C, j'aurai obligatoirement une origin minimum

Oui j'avais compris cela. Mais en me relisant je pense que je n'étais pas assez précis. Ce que je voulais dire, c'est que quelque soit le nombre de x et que vous copiez vers les deux feuilles, il ne faudrait pas que vous alliez ajouter un 3iem x dans Origin après puis relancer une copie. Dans ce cas, le code actuel irait copier pour les 3 x. Donc dans vos deux feuilles vous aurez deux fois les 2 premiers x et 1 fois le dernier x.
D'où ma question de savoir si quand vous copiez une ligne, vous ne modifierez plus cette ligne au niveau des x dans les colonnes Origin.

Rechercher des sujets similaires à "dupliquer lignes onglet differents"