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 :

Macro VBA dans MS Project pour rapatrier des données d'un fichier Excel


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé de projets
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Chargé de projets
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Macro VBA dans MS Project pour rapatrier des données d'un fichier Excel
    Bonjour,

    Je suis novice sur VBA.

    Ce que je souhaite faire:

    En sélectionnant un n° de Tâches dans mon MS Project je souhaite ouvrir un fichier Excel, filtrer par ce n° de tâche, coiper certaines données et les rapatrier dans mon MS Project

    Voici le début de mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Rapatriement_données_DO()
     
        ' Copie valeur à chercher
     
        Dim N°tâche As Long
        N°tâche = ActiveCell
     
        ' Ouverture fichier N° en cours
        Set xl = CreateObject("Excel.Sheet")
        xl.Application.Workbooks.Open "fichier n°en cours", ReadOnly:=True
        WorkbooksName("fichier n°en cours").Sheet("Totalité").Range("$A$1:$BZ$5988").AutoFilter Field:=1, Criteria1:=N°tâche
     
    End Sub
    J'ai toujours une erreur après l'ouverture du fichier Excel comme si le code ne comprenait pas que je souhaite maintenant filtrer DANS le fichier Excel

    Merci pour votre aide
    Christophe

  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
    Ta macro est-elle dans Excel ou dans Project.

    Si elle est dans Excel, ta ligne Open est beaucoup trop compliquée et le CreateObject ne sert à rien.

    Si elle est dans Project, il faut lui signaler que le classeur est un objet Excel.
    Mais de toute façon WorkbooksName n'est pas un objet VBA Excel.
    Et Sheet en tant que collection se met au pluriel Sheets.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé de projets
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Chargé de projets
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Ma macro est dans mon MS Project

    J'ai réussi à filtrer le fichier Excel après ouverture par ma variable N°DO

    Je souhaite maintenant copier la valeur de la cellule en colonne B issu de mon tri. Mais le code plante.

    Il pointe sur Range("B65536") et indique Erreur de compilation: Sub ou function non définie

    Mon code n'est peut être pas optimum. Si tu penses à quelque choses de meilleur, je suis preneur pour tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Rapatriement_données_DO()
     
        ' Copie valeur à chercher
     
        DimDO As LongDO = ActiveCell
     
        ' Ouverture fichier DO dispo en cours
        Set xl = CreateObject("Excel.Sheet")
        xl.Application.Workbooks.Open "Umon fichier", ReadOnly:=True
        xl.Application.Sheets("Totalité").Range("$A$1:$BZ$5988").AutoFilter Field:=1, Criteria1:=N°DO
        xl.Application.Sheets("Totalité").Range("B2:B" & Range("B65536").End(xlUp).Row).SpecialCells(xlVisible).Cells(1, 1).Copy
    Merci par avance
    Christophe

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Rapatriement_données_DO()
        Dim WBSource As Excel.Workbook  
        DimDO As Long
     
        N°DO = ActiveCell
     
        ' Ouverture fichier DO dispo en cours
        Set WBSource = GetObject("Umon fichier")
        With WBSource.Sheets("Totalité")
            .Range("$A$1:$BZ$5988").AutoFilter Field:=1, Criteria1:=N°DO
            .Range("B2", .Cells(.Rows.Count).End(xlUp)).SpecialCells(xlCellTypeVisible).Cells(1).Copy
        End With
    Mais il me semble risqué d'ouvrir un fichier sans indiquer son chemin. C'est supposer que le chemin par défaut d'Excel est toujours le même, donc jouer à la roulette russe.
    Il est étonnant aussi que ce nom de fichier n'ai pas d'extension.

    Je ne connais pas du tout le VBA de Project mais, perso, je ne ferais pas le transfert par une copie mais simplement par un transfert de valeur à valeur.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Chargé de projets
    Inscrit en
    Juillet 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Chargé de projets
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2018
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Début le début erreur de compilation

    Nom : x.jpg
Affichages : 532
Taille : 121,0 Ko

  6. #6
    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
    Tu as bien chargé la bibliothèque d'objets Excel ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

Discussions similaires

  1. Rapatrier des données d'un fichier excel à l'autre via VBA
    Par aurel262 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 19/02/2016, 10h51
  2. Réponses: 4
    Dernier message: 15/07/2015, 15h21
  3. Réponses: 1
    Dernier message: 10/06/2014, 17h05
  4. [XL-2007] Macro pour exporter des données sur WORD vers Excel (version 2007)
    Par krokos55 dans le forum Macros et VBA Excel
    Réponses: 26
    Dernier message: 31/10/2012, 13h10
  5. [XL-2003] Bouton pour transférer des données d'un fichier Excel vers un autre
    Par Alfred23 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 07/09/2011, 16h46

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