IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Copier feuille


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Responsable projets transverses
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable projets transverses
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 6
    Points
    6
    Par défaut Copier feuille
    Bonjour à tous,

    Je suis débutante en VBA donc soyez indulgents

    Je souhaite recopier des données planning sous Excel vers un planning MSP. Je dois apparemment copier colonne par colonne car sinon ça plante. J'ai 4600 lignes dans mon planning.

    A partir de la ligne 3, de B à Z
    Il faut copier toutes les colonnes sauf "prédécesseurs" et "successeurs" dans un premier temps.
    Ensuite copier les 2 colonnes manquantes L et M afin que les dates prennent les bonnes valeurs.

    J'ai créé un module avec toutes mes déclarations: (petit extrait dessous)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public SH1 As Worksheet 'SC_Planning_Essais
    Public Const NOM_F_SC_PLANNING_ESSAIS As String = "SC_Planning_Essais"
    Set SH1 = Sheets(NOM_F_SC_PLANNING_ESSAIS)
    Voici mon code pour la première colonne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub Planning_MSP()
     
    '''''''''''''''''''''''''''''''''''''''''''''''
    ''' COPIER PLANNING EXCEL VERS PLANNING MSP '''
    '''''''''''''''''''''''''''''''''''''''''''''''
    Dim SH1 As Worksheet
    Dim oPath As String
     
    'COLONNE APPLICATION
    SH1.Select
    Range("B3").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Copy
     
    ActiveDocument.FollowHyperlink Address:=oPath & _
        "D:\Users\st03147\Desktop\Planning Essais\SC - Planning Essais.mpp", NewWindow:=True
     
    Windows("SC-Planning Essais.mpp").Activate
    SelectTaskField Row:=0, Column:="Texte5"
        EditPaste
     
    ' ..... et ainsi de suite pour toutes les colonnes
     
    End Sub
    Mais ça me met variable non définie, sauf que je ne vois pas où .... je ne suis pas sur de m'y être bien pris alors si vous voyiez une meilleure méthode je suis preneuse!

    Pour info la feuille Excel que je veux copier porte le même nom que mon planning MSP.

    Un grand merci d'avance pour ceux qui se jetteront à l'eau!!

    FOB
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par FOB11 Voir le message
    Mais ça me met variable non définie, sauf que je ne vois pas où ....
    Normalement, si le débugeur devrait t'indiquer sur quelle ligne se trouve le problème en te la mettant en surbrillance.

    Il y a un truc qui me choque un peu dans ton code : tu déclares deux fois la variable SH1, une fois au niveau global et une fois au niveau Sub.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour FOB,
    Je ne suis pas parvenu a ouvrir ton fichier Excel, essayes en zippant comme pour ton fichier MSP.
    Cela fait un moment que je n'ai pas travaillé avec MSP mais j'avais créé un outil pour générer un Template en fonction de certains choix faits par l'utilisateur.
    Si mes souvenir sont bon j'avais tout d'abord crée un planning avec une ligne ou deux dans MSP avec les colonnes qui m’intéressaient puis je l'avais exporté sous Excel.
    Ensuite j'avais bâti mon code puis ré-importé le fichier dans MSP.
    Éléments importants : importer uniquement la colonne Successeurs, uniquement la colonne début et la durée des tâches ( la date de fin sera calculée lors de l'import),importer la colonne Niveau (Outline_Level) pour les tâches récapitulatives, le type de taches (Durée fixe, unités fixes...) en plus des des Id et nom de tâches
    Essayes de m’envoyer un fichier Excel exporté depuis MSP avec les colonnes voulues en plus de ton fichier Excel zippé et j'y jetterai un oeil.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Responsable projets transverses
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable projets transverses
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    @Menhir: en fait comme je l'expliquais j'ai un module où je déclare toutes mes variables. Après j'ai déjà fait une macro avec ce fonctionnement et ça marchait bien donc je ne sais pas si là ça peut poser problème?
    Effectivement la variable non définie semble être "SelectTaskField" => je me suis servie de l'enregistreur pour cette ligne

    @eric4459: j'ai refait ma Template MSP exporté sous Excel (il y a une colonne que je n'ai pas réussi à mapper donc je l'ai rajouté manuellement), je t'ai mis le fichier en PJ. Par contre, je n'ai pas réussi à réimporter sous MSP, je sais que c'est possible mais je n'ai pas trouvé comment faire...
    Je n'ai jamais utilisé la colonne niveau (qui d'après ce que tu me dis me semble essentielle afin de hiérarchiser mes taches) il faudra que je l'intègre!
    Vu que l'on ne réimporte pas toutes les colonnes, si j'ai des lignes supplémentaires ou en moins, comment cela va-t-il se passer? Je vais avoir des écarts...et des décalages.... Est-ce que ce n'est pas plus simple dans ce cas de réimporter toutes les colonnes?

    Merci à tous les 2 pour vos premiers retours!


    FOB
    Fichiers attachés Fichiers attachés

  5. #5
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour FOB,
    Pourrais-tu également envoyer en .zip ton fichier avec le code?
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Responsable projets transverses
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable projets transverses
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    @eric4459: le voici avec le code
    Fichiers attachés Fichiers attachés

  7. #7
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Rebonjour FOB,
    Voici un lien qui t'indiquera comment importer un fichier Excel dans MSP, c'est la procédure que j'utilisait.
    https://support.office.com/fr-fr/art...f-8aa8b2247119
    J'ai retrouvé mon code, je vérifie et te l'envoie, il pourra peut-être t’être utile.
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  8. #8
    Futur Membre du Club
    Femme Profil pro
    Responsable projets transverses
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable projets transverses
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Rebonjour Eric,

    J'ai consulté ton lien, c'est effectivement ce qu'il me faut. Je dois par contre convertir mon fichier sans macros et créer le mapping que je veux. Là commence les problèmes:
    1 - je ne peux pas avoir toutes mes colonnes (la sélection ne me le propose pas: colonne "Banc" ce qui est bizarre car j'ai pris un "Texte" que j'ai renommé)
    2 - il me demande de créer une clé primaire (si je fais sans les colonnes manquantes) j'ai suivi le tuto https://support.office.com/fr-fr/art...0-65F2975E4379 mais cela ne correspond pas à la bonne version d'Excel (j'utilise 2013) car je ne trouve pas la clé dans le bandeau.
    Aurais-tu une idée à me proposer? Quelles données choisir en clé primaire?

    FOB

  9. #9
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    FOB,
    Je n'ai plus MSP sur mon poste je ne pourrais donc pas tester, il me semble que j'avais sélectionné les Activity ID.
    Sinon, en pièce jointe tu trouveras mon fichier avec le code, à partir d'un code que j'ai adapté, il pourra peut-être te servir, à voir.
    Le principe est de créer un Template pour MSP de façon à avoir toujours la même structure pour tous les projets du département, le résultat est un planning avec différents niveaux de WBS choisis par le planneur en fonction du projet et de la phase du projet (Avant-projet, Basic design, exécution etc..).

    Il n'y aura que 2 tâches pour chaque niveau de WBS, par exemple "Start of Instrumentation Basic Design for Equipment 1" et "End of Instrumentation Basic Design for Equipment 1", les taches intermédiaires devant être crées par le planificateur directement dans MSP ensuite.

    Tu peux également changer et ajouter des taches dans chaque onglets mais faire attention a bien recopier les formules en colonne A et C, introduire une durée type, les dates se calculent de façon automatiques.
    Par exemple si tu modifies l'onglets Basic Design et que tu veux disons 4 tâches qui se succèdent, les taches en parallèles ne sont pas gérées il faut modifier dans MSP, tu dois incrémenter la formules en colonne A et C (en A3 tu as =Baseshift($A$1,2) tu dois mettre =Baseshift($A$1,3) en A4)

    Il y a autant d'onglets que niveaux 2 du WBS, dans chaque onglets tu verra une colonne A avec les ID des tâches, en colonne B le nom de la tâche, en colonne C le numéro du successeurs, en colonne D la durée de la tâche et en colonne E la date de début. Tu peut bien entendu changer le nom des onglets en fonction de tes besoins et reporter ces nouveaux noms en colonne G de l'onglet "WBS".

    Fonctionnement :
    Cliques sur " Information Projet " et entres le nom du projet ainsi que la date du début du projet
    Cliques sur "Sélection WBS et sélectionnes tes éléments
    Cliques sur "Création Planning MSP"

    Ce code est fait pour 5 niveaux WBS, si tu en veux moins, sélectionnes "-" dans l'Userform qui te permet de choisir tes éléments


    Petite contrainte : tu dois soit modifier le nom du fichier dans le code ci-dessous, soit exporter ton fichier MSP source sous Excel avec ce nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Import_MSProject_Excel_File()
    Dim currentName As String
    Dim Chemin As String
    Chemin = ThisWorkbook.Path
          currentName = Application.ActiveWorkbook.Sheets("Main").Range("C2").Value
          Workbooks.Open Filename:=Chemin & "\" & "Import Project.xls" 'open the file which will receive data (file exported from MSP)
          ActiveWorkbook.Sheets("Task_Table1").Activate
          Range("A1").Select
          Range(Selection, Selection.End(xlToRight)).Select
          Range(Selection, Selection.End(xlDown)).Select
          Selection.ClearContents 'delete all data expect the first row that contains important data for Primavera
          Workbooks.Open Filename:=Chemin & "\" & currentName & ".xls" 'Open the file from which data will be copied

    N’hésites pas à me poser des questions si ce n'est pas très clair.

    EXCEL IMPORT TOOL TO PRIMAVERA AND MS PROJECT_WBS_LEVEL_5_Developpez.zip

    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  10. #10
    Futur Membre du Club
    Femme Profil pro
    Responsable projets transverses
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable projets transverses
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Salut Eric,

    C'est assez complexe en effet. Je ne suis pas sure de bien comprendre et de savoir comment procéder. De plus, mon planning est construit différemment de ce que l'on peut voir d'où l'incertitude sur comment faire...
    Je te mets un exemple:

    Nom : structure planning essais.JPG
Affichages : 80
Taille : 80,2 Ko

    Qu'en penses-tu?
    Est-ce que c'est adaptable avec ta macro?

    FOB

  11. #11
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Bonjour FOB,
    Effectivement c'est un peu délicat à adapter, pas impossible mais cela demande du temps
    Sinon as-tu essayé avec ton fichier original en faisant "l'import" dans MSP?
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  12. #12
    Membre éprouvé
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Points : 1 124
    Points
    1 124
    Par défaut
    Rebonjour FOB,
    Voici mon fichier modifié rapidement et partiellement, ce qu'il te reste à faire est de modifier le nom des onglets cachés comme j'ai commencé pour Préparation essai Moteur, RAU preliminaire etc... (niveau 3 WBS) et que tu modifie également la colonne G de l'onglet WBS avec les nouveaux nom de ces feuilles, regardes ce que j'ai déjà fait.
    Dans cette même feuille WBS j'ai mis le niveau 2 WBS en colonne L, tu peux aussi en ajouter
    J'ai réduit à niveaux WBS les choix dans l'Userform appelé par le Bouton "Selection WBS"
    Fais un essai, un fichier prêt pour importer sera généré dans le dossier où se trouve le fichier avec la macro.
    N'hésites pas a me poser des questions si nécessaire

    EXCEL IMPORT TOOL TO PRIMAVERA AND MS PROJECT_WBS_LEVEL_5_Developpez_FOB.zip


    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  13. #13
    Futur Membre du Club
    Femme Profil pro
    Responsable projets transverses
    Inscrit en
    Mars 2016
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable projets transverses
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2016
    Messages : 12
    Points : 6
    Points
    6
    Par défaut
    Merci Eric,

    Pour le moment j'ai rajouté la colonne n° unique pour avoir une même référence dans les 2 fichiers et la colonne Niveau hiérarchique afin qu'il conserve l'incrémentation lors de l'import. De plus j'ai peut-être trouvé une solution pour mon problème de mapping avec l'import, je dois encore le tester.

    Je ne suis pas très rapide car je ne peux pas passer beaucoup de temps dessus tous les jours (surtout en fin de semaine) donc il me faudra un peu de temps pour regarder tout ça. Je te tiens au courant de mon avancement.

    Je n'abandonne pas!!

    FOB

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/09/2009, 00h48
  2. copier feuille n fois
    Par abouhossam dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/12/2008, 17h50
  3. Copier feuille vers un nouveau classeur
    Par fred792 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/10/2008, 11h23
  4. copier feuille sur place pour garder valeur et format uniquement
    Par fabiencal dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/07/2008, 18h45
  5. copier feuille XL
    Par jogu dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 17/09/2006, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo