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 :

Extraction des données vba [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut Extraction des données vba
    Bonjour à tous,

    Je cherche à créer une macros qui serait capable d'aller récupérer les infos présent dans la feuille "Synthese" du document (MC_Shootage) et me les copier / coller dans mon nouveau document (MC_commun2) dans la feuille "Donnees".

    Voici ce que j'aai essayé de faire mais, il m'affiche se message d'erreur: "\\Gpao\commun\30_QUALITE\307_Gestion_de_service\AA AA-Main-Courante-Atelier est introuvable". Alors que le lien est juste j'ai tout vérifié. Ce message s'affiche sur la ligne en rouge:

    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
    25
    26
    27
    28
    29
    30
    31
    Sub Dechet_Finition_Hebdo()
     
    'Identification des chemins et des fichiers
     
        Dim Chemin As String
         Chemin = "\\Gpao\commun\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier"
         Dim Fichier As String
         Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1)
         If Semaine <= 9 Then
         Fichier = "MC_Shootage" & Semaine & ".xlsm"
         Else: Fichier = "MC_Shootage" & Semaine & ".xlsm"
         End If
         
    'Transfert des données
     
        Dim j As Integer
         j = 1
         
        ChDir Chemin
        Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0, ReadOnly:=True
         
        Sheets("Synthese").Copy Before:= _
             Workbooks("MC_commun2.xlsm").Sheets("Donnees")
         
        Workbooks(Fichier).Close SaveChanges:=False
     
        Workbooks("MC_commun2.xlsm").Activate
          
         j = Application.Run("Copie_MC_Shootage", "Synthese", j)
         
    End Sub
    Quelqu'un pourrait m'aider à résoudre mon pb svp (doc en PJ).

    Merci pour votre aide

    Rob's
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Bonjour, bonjour,

    quelle est la différence pour l'affectation de la variable Fichier entre les lignes n°10 & 11 ?!

    Sinon pour le problème, le chemin est faux donc vérifier le contenu des variables en mode pas à pas (touche F8) …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour Marc-L,

    Je viens de corriger l'erreur ligne 10/11 et revérifié mon chemin d'accès mais, ça ne fonctionne toujours pas...

    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
    25
    26
    27
    28
    Identification des chemins et des fichiers
     
        Dim Chemin As String
        Chemin = "X:\30_QUALITE\307_Gestion_de_service\Lyse\AAAA-Main-Courante-Atelier"
        Dim Fichier As String
        Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1)
        If Semaine <= 9 Then
        Fichier = "MC_Shootage" & Semaine & ".xlsm"
        End If
     
    'Transfert des données
     
        Dim j As Integer
        j = 1
     
        ChDir Chemin
        Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0, ReadOnly:=True
     
        Sheets("Synthese").Copy Before:= _
            Workbooks("MC_commun2.xlsm").Sheets("Donnees")
     
        Workbooks(Fichier).Close SaveChanges:=False
     
        Workbooks("MC_commun2.xlsm").Activate
     
        j = Application.Run("Copie_MC_Shootage", "Synthese", j)
     
    End Sub
    Pouvez vous m'aider svp

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Là la logique est fausse pour la variable Fichier !

    Donc la vérification du contenu des variables en mode pas à pas n'a pas été faîte,
    seul moyen pourtant afin de comprendre et de t'en sortir !

    C'est pourtant pas compliqué ! Suffit de placer un point d'arrêt sur la ligne déclenchant l'erreur et une fois le code en attente
    sur cette ligne, vérifier le contenu des variables soit directement dans le code soit via la fenêtre des Variables locales …


    __________________________________________________________________________________________


    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    J'ai tout repris et voila ce que j'ai fais:

    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
    25
    26
    27
    Sub Dechet_Finition_Hebdo()
     
    'Identification des chemins et des fichiers
     
        Dim Chemin As String
        Dim Fichier As String
     
        Chemin = "X:\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier"
     
        'demande à l'utilisateur le numéro de semaine, semaine en cours par défaut
         Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1
     
     Fichier = "MC_Shootage" & Semaine & ".xlsm"
     
    'Transfert des données
     
          ChDir Chemin
         'ouverture du fichier en lecture seule
         Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0, ReadOnly:=True
     
        'recopie l'onglet Synthese de MC_Shootage dans l'onglet Donnees de MC_Commun2.xlsm"
         Sheets("Synthese").Copy Before:=Workbooks("MC_commun2.xlsm").Sheets("Donnees")
     
        'fermeture du fichier source
         Workbooks(Fichier).Close SaveChanges:=False
     
      End Sub
    Cependant, il y une erreur de chemin d'accés qui s'affiche car, le N° de la semaine se met dans le chemin d'accées se qui engendre une erreur.
    CAD, au lieu d'aller chercher les données dans "X:\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier\MC_Shootage.xlsm" il cherche dans "X:\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier\MC_Shootage19.xlsm...

    Quel est la méthode pour supprimer cette erreur?

  6. #6
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Erreur de conception : corriger alors l'affectation de la variable Fichier en ligne n°13 !

    Encore une fois en suivant le code en mode pas à pas et en contrôlant les variables …


    __________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    J'ai suivi en mode pas à pas mais, je ne comprends pas se qui ne va pas.
    De plus,je suis loin d'être un pro de VBA donc, si vous pouviez me dire se qui ne va pas dans ma ligne 13 se serai symphatique...

    Merci, par avance, pour votre aide

  8. #8
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Teste le code ci-dessous et en fonction du message reçu tu sauras si le chemin complet (chemin + fichier) est valide ou non. J'ai mis la suite du code en commentaire pour éviter l'éventuelle erreur du fichier introuvable. Si le message te dis que le fichier est bien à l'endroit indiqué alors, tu peux ôter les lignes en commentaire sinon, il te faut chercher si le chemin est bien construit. Tu peux aussi tester avec le chemin entièrement en dur :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    Sub Dechet_Finition_Hebdo()
     
        'Identification des chemins et des fichiers
     
        Dim Chemin As String
        Dim CheminComplet As String
        Dim Fichier As String
        Dim Semaine As String
     
        Chemin = "X:\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier\"
     
        'demande à l'utilisateur le numéro de semaine, semaine en cours par défaut
         Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1)
     
        Fichier = "MC_Shootage" & Semaine & ".xlsm"
     
        CheminComplet = Chemin & Fichier
     
     
        If Dir(CheminComplet) = "" Then
     
            MsgBox "le fichier :" & vbCrLf & CheminComplet & vbCrLf & "est introuvable !"
     
        Else
     
            MsgBox "le fichier :" & vbCrLf & CheminComplet & vbCrLf & "est bien à l'endroit indiqué !"
     
        End If
     
        'Transfert des données
             'ouverture du fichier en lecture seule
        '     Workbooks.Open Filename:=CheminComplet, UpdateLinks:=0, ReadOnly:=True
        '
        '    'recopie l'onglet Synthese de MC_Shootage dans l'onglet Donnees de MC_Commun2.xlsm"
        '     Sheets("Synthese").Copy Before:=Workbooks("MC_commun2.xlsm").Sheets("Donnees")
        '
        '    'fermeture du fichier source
        '     Workbooks(Fichier).Close SaveChanges:=False
     
      End Sub
    Hervé.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour Theze,

    C'est le fichier qui est incorrect car, le pgm ajoute au nom du fichier le N° de la semaine.
    Quand je selectionne la semaine n°19 dans ma boîte de dialogue, au lieu de m'ouvrir MC_Shootage, il veut ouvrir MC_Shootage19. Or, MC_Shootage19 n'existe pas donc, il beug...

    Je ne sais pas comment faire pour ne pas qu'il prenne en compte le n° de la semaine dans le fichier...

    Avez vous une idée?

    Merci pour votre aide

  10. #10
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Erreur de conception : corriger alors l'affectation de la variable Fichier en ligne n°13 !

  11. #11
    Membre expérimenté Avatar de arosec
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Mai 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2009
    Messages : 167
    Par défaut
    Bonsoir Rob's,

    Il me semble que Marc-L a donner toutes les solutions...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
       'demande à l'utilisateur le numéro de semaine, semaine en cours par défaut
         Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1)
     
        Fichier = "MC_Shootage" & Semaine & ".xlsm"
    peut être remplacé par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        Fichier = "MC_Shootage.xlsm"
    Cdlt,

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2013
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2013
    Messages : 61
    Par défaut
    Bonjour arosec,

    En fait, je voudrai qu'une fois le n° semaine rentrée ds l'inputbox, le pgm soit capable d'aller chercher se n° dans "MC_Shootage" (en sachant que n° semaine est en colonne B) et copier / coller les infos correspondantes dans l'onglet "Donnees" du document "MC_commun2".

    Voici le pgm que j'ai mofidié qui me colle mes infos ou je veux mais, il tiens pas compte du n°sem...

    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
    25
    26
    27
    28
    29
    30
    31
    Sub Dechet_Finition_Hebdo()
     
    'Identification des chemins et des fichiers
     
        Dim Chemin As String
        Dim Fichier As String
        Dim Semaine As Long
     
        Chemin = "X:\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier"
     
    'demande à l'utilisateur le numéro de semaine, semaine en cours par défaut
        Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1)
        Fichier = "MC_Shootage.xlsm"
     
    'Transfert des données
     
        ChDir Chemin
    'ouverture du fichier en lecture seule
        Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0, ReadOnly:=True
     
    'recopie l'onglet Synthese dans le fichier destination MC_Commun2.xlsm"
     
         Workbooks("MC_commun2.xlsm").Worksheets("Donnees").Cells.ClearContents
         Workbooks("MC_Shootage.xlsm").Worksheets("Synthese").Cells.Copy _
         Workbooks("MC_commun2.xlsm").Worksheets("Donnees").Range("A1")
     
    'fermeture du fichier source
     
        Workbooks(Fichier).Close SaveChanges:=False
     
    End Sub
    En pj les docs
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Web Service SOAP Fichier WSDL / Extraction des données dans un classeur
    Par crusaders dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/12/2014, 13h05
  2. vc++(6)+extraction des données dans une image(.tif)
    Par spootnic22 dans le forum Visual C++
    Réponses: 1
    Dernier message: 22/11/2006, 17h14
  3. [MySQL] Problème de Charset à l'extraction des données
    Par naoufal01 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/11/2006, 14h14
  4. extraction des données dans une table Access
    Par moabomotal dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2006, 12h17

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