Extraire des données en 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:

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
     [COLOR="#FF0000"]Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0, ReadOnly:=True[/COLOR]

    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

Alex

28documents-mc.zip (204.17 Ko)

Salut,

J’ai remplacé ton chemin par un chemin valable sur mon PC et j’ai lancé ton code. Comme le fichier recherché MC_Shootage19 (sur la base du numéro 19 qui vient s’inscrire automatiquement dans la InputBox qui s’ouvre en cours de macro) n’existait pas dans mon arborescence, j’ai reçu le message d’erreur ci-après

capture

et le code est resté bloqué sur la ligne en jaune ci-dessous (tu vois aussi le nom du fichier recherché en dessous).

capture 2

Puis j’ai placé un fichier portant exactement le nom désiré dans mon arborescence et ton code ouvre correctement ce fichier, en copie une feuille et le referme.

Par contre ton code bloque alors sur la dernière ligne du code

j = Application.Run("Copie_MC_Shootage", "Synthese", j)

mais ça semble normale puisque cette ligne semble vouloir déclencher une macro du fichier qui est déjà refermé, .... ou d'un autre fichier, ..... ou un autre truc impossible dans le genre

Cordialement.

Bonjour

Un essai avec tes 2 fichiers dans le même dossier.En cas contraire, il faut adapter le chemin...

Cela te convient-il ?

20mc-commun2.zip (188.18 Ko)

Bonjour à vous 2,

Yvouille merci pour tes explications. J'ai pu modifier qq lignes du pgm mais, le gros soucis c'est que quand je choisi le N° de la semaine, il recherche le document suivi du N° de la semaine et ça plante.

C'est à dire, au lieu de chercher le document "MC_Shootage", il cherche "MC_Shootage19" (si je sélectionne la semaine 19) et comme "MC_Shootage19" n'existe pas, ça plante...

Comment faire pour que le N° de la semaine n'apparaisse pas dans mon fichier?

Merci

gmd, mes 2 fichiers se situent dans "\\Gpao\commun\30_QUALITE\307_Gestion_de_service\AAAA-Main-Courante-Atelier" mais, quand je clique sur ton bouton "Recup", j'ai un message d'erreur qui s'affiche me disant que le fichier MC_Shootage est introuvable alors qu'il est bien dans le chemin donné...

Sais tu d'ou vient le pb?

Merci

Re-bonjour,

If Semaine <= 9 Then
    Fichier = "MC_Shootage" & Semaine & ".xlsm"
    Else: Fichier = "MC_Shootage" & Semaine & ".xlsm"
    End If

Dans le passage ci-dessus, tu définis la variable qui te permettra d’ouvrir le bon fichier. C’est déjà bizarre car tes deux conditions donnent le même résultat !!!

Puis tu combines un nom de base "MC_Shootage" avec un numéro de semaine qui vient de ton InputBox. Si tu ne veux pas de ce numéro de semaine, remplace tout le passage ci-dessus par

Fichier = "MC_Shootage.xlsm"

Cordialement.

Re-bonjour,

Voici mon nouveau pgm:

Sub Dechet_Finition_Hebdo()

'Identification des chemins et des fichiers

    Dim Chemin As String
    Dim Fichier As String 'contient le nom du fichier source: MC_...

    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" avant l'onglet Donnees
    Sheets("Synthese").Copy Before:=Workbooks("MC_commun2.xlsm").Sheets("Donnees")

'fermeture du fichier source
    Workbooks(Fichier).Close SaveChanges:=False
End Sub

Maintenant il m'ouvre bien mon document MC_Shootage mais, il ne tiens pas compte du n° de la semiane.

Donc si je choisi S14, je n'ai pas que la S14 mais ttes les autres semaines saisie dans le document...

Quelle ligne ajoutée pour que le pgm comprenne qu'il ne me faut que les données de la S14?

Merci

Tes souhaits ne sont absolument pas clairs. On doit essayer de les comprendre sur la base d’un code assez abracadabrant.

Par ton instruction

Sheets("Synthese").Copy Before:=Workbooks("MC_commun2.xlsm").Sheets("Donnees")

tu places une copie de la feuille "Synthese" du fichier ‘MC_Shootage’ dans le fichier de base. Ai-je bien compris que tu ne désires garder sur cette feuille que les lignes concernant la semaine indiquée dans la InputBox ?

A te relire.

Yvouille,

Désolé si je ne suis pas très clair mais, oui tu as bien compris se que je recherche ("tu ne désires garder sur cette feuille que les lignes concernant la semaine indiquée dans la InputBox ")

Par contre, j'ai changé ces lignes:

'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

Ainsi j'ai tt dans l'onglet "Donnees".

Alex90 a écrit :

Ainsi j'ai tt dans l'onglet "Donnees".

Pas très clair, tout ça

Mais bon, j'ai compris que ton problème est résolu

Bonne continuation.

Non se n'est pas résolu!

On a du mal à se comprendre...

Mes lignes ajoutées ne prennent pas en compte ma semaine de l'InputBox, elles me colle juste mes infos dans la feuille "Donnees" c'est tout.

Je ne sais pas comment faire pour que le pgm prenne en compte ma semiane et c'est la que j'ai besoin de toi!!!

Merci

Si tu modifies à tout bout de champ ton fichier, je vais avoir de la peine à suivre

Tu peux me fournir ton fichier en l'état actuel, s'il-te-plait ?

A te relire.

En PJ mon document à l'état actuel.

Désolé mais je test plusieurs solutions...

Je ne touche plus!

A te lire

Alex

9alex.zip (226.67 Ko)

Salut,

Ca fait un moment que je m’embête avec ton nouveau fichier modifié

Tu as en effet placé des nouveaux codes dans le module 2 qui font des interférences. As-tu vraiment besoin de ces fonctions ? Si oui je dois t’avouer que je suis dépassé et que je vais devoir passer la main. Tu es cependant un peu responsable puisque si tu avais présenté de suite ton fichier tel qu’il est maintenant, je n’aurais pas pris la main

A te relire.

Salut,

Désolé pour tout ses changements...

Modifie le document comme bon te semble si cela peut nous aider à trouver une solution!

Merci encore pour ton aide!!

Salut,

J’ai neutralisé les macros du module 2 et te propose une solution en partie basée sur le code de GMB, donc tes deux fichiers doivent se trouver dans le même dossier.

Merci de me dire ce que tu en penses.

A te relire.

6mc-commun2.xlsm (39.24 Ko)

PARFAIT!!!

Merci beaucoup!!!

Rechercher des sujets similaires à "extraire donnees vba"