Extraire des données en vba

Nimbus

XLDnaute Occasionnel
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\AAAA-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:
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

Nimbus
 

Pièces jointes

  • MC_commun2.xlsm
    40.7 KB · Affichages: 30
  • MC_commun2.xlsm
    40.7 KB · Affichages: 25
  • MC_commun2.xlsm
    40.7 KB · Affichages: 29
  • MC_Shootage.xlsm
    222.8 KB · Affichages: 32
  • MC_Shootage.xlsm
    222.8 KB · Affichages: 26
  • MC_Shootage.xlsm
    222.8 KB · Affichages: 24

Nimbus

XLDnaute Occasionnel
Re : Extraire des données en vba

Bonjour Bebere,

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
 

Bebere

XLDnaute Barbatruc
Re : Extraire des données en vba

Nimbus ta demande n'est pas claire
tu fais un test sur semaine<=9 et semaine est 19 dans les débats
ce que tu peux faire dans ce cas tester si le fichier MC_Shootage19.xlsm existe si oui ouverture, si non ouvrir fichier MC_Shootage.xlsm
est ce ce que tu cherches à faire
 

Nimbus

XLDnaute Occasionnel
Re : Extraire des données en vba

Bonjour Bebere,

En fait, je veux que une fois le n° semaine rentré ds l'Inputbox, le pgm soit capable d'aller chercher se n° dans "MC_Shootage" (le N° de la semiane est en colonne B) puis, copier / coller les infos correspondantes dans l'onglet "Donnees" du document "MC_commun2".

Hier j'ai un peu modifié le fichier et j'arrive à importer mes infos mais, pas en fonction du n°semaine....

En pj mon doc
 

Pièces jointes

  • MC_commun2.xlsm
    112 KB · Affichages: 23
  • MC_commun2.xlsm
    112 KB · Affichages: 29
  • MC_commun2.xlsm
    112 KB · Affichages: 35

Bebere

XLDnaute Barbatruc
Re : Extraire des données en vba

Nimbus
voilà un code à tester

Code:
Sub Dechet_Finition_Hebdo()
 
'Identification des chemins et des fichiers
 
    Dim Chemin As String, WbDestination As Workbook, WbSource As Workbook
    Dim Fichier As String
    Dim Semaine As Long, L As Long
   Set WbDestination = ThisWorkbook
   ' Chemin = "X:\30_QUALITE\307_Gestion_de_service\Lyse\AAAA-Main-Courante-Atelier"
    Chemin = ThisWorkbook.Path 'pour essai ou si les 2 fichiers dans même dossier
'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)
    If Semaine = 0 Then Exit Sub
    Fichier = "MC_Shootage.xlsm"
    If FichierExiste(Chemin & "\" & Fichier) Then


'    ChDir Chemin
'ouverture du fichier en lecture seule
    Workbooks.Open Filename:=Chemin & "\" & Fichier, UpdateLinks:=0, ReadOnly:=True
     Set WbSource = ActiveWorkbook
     
 With WbSource.Worksheets("Synthese")
If Application.WorksheetFunction.CountIf(.Range("B:B"), "=" & Semaine) > 0 Then
'Transfert des données
'exemple pour ajout de ligne(s)
 For Each cel In .Range("B6:B1000")
 If cel = Semaine Then
 L = WbDestination.Worksheets("Donnees").Range("A65536").End(xlUp).Row + 1
   .Range("A" & cel.Row & ":S" & cel.Row).Copy Destination:=WbDestination.Worksheets("Donnees").Range("A" & L)
 End If
 Next cel
'recopie l'onglet Synthese dans le fichier destination MC_Commun2.xlsm"
    'Sheets("Synthese").Copy Before:=Workbooks("MC_commun2.xlsm").Sheets("Donnees")
'     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
    WbSource.Close SaveChanges:=False
   End If
   
 End With
    End If
  
End Sub
 

Nimbus

XLDnaute Occasionnel
Re : Extraire des données en vba

Bebere,

Je viens de tester et à l'appui sur le bouton "Nouvelle saisie" il y a un message d'erreur qui s'affiche:
"Sub ou fonction non définie" et "
Code:
FichierExiste"
est surligné.

Je ne comprend pas.
Ou est le problème?

Merci
 

Bebere

XLDnaute Barbatruc
Re : Extraire des données en vba

bonjour Nimbus
la fonction qui vérifie si le fichier existe manque
MC_ShootageM joint(fait un copier/coller value)avec formules ne va pas
pourquoi recalculer le n° de semaine,la date est fixe
fichiers joints
 

Pièces jointes

  • McCommun2Nimbus.xlsm
    103.1 KB · Affichages: 23
  • MC_ShootageM.xlsm
    197.5 KB · Affichages: 22

vgendron

XLDnaute Barbatruc
Re : Extraire des données en vba

Bonjour Nimbus , Bébère
désolé d'avoir laissé en cours de route..

je viens juste de lire ton post Nimbus
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...

evidemment qu'il veut t'ouvrir le fichier MC_Shootage19
et si tu saisis la semaine 52, il va vouloir t'ouvrir le fichier MC_Shootage52

c'est le nom de fichier que tu crées avec cette ligne et que tu ouvres ensuite
Code:
Fichier = "MC_Shootage" & Semaine & ".xlsm"
tu fais la concaténation de MC_Shootage avec le numéro de ta semaine saisie....
c'est pas ce que tu voulais??
je ne comprend plus trop
 

Herdet

Nous a quitté
Repose en paix
Re : Extraire des données en vba

Bonjour,
Il semble y avoir des incohérences de déclaration
Dim Semaine As Long
....
Semaine = InputBox("N° de la semaine", "SEMAINE", DatePart("ww", Date, vbMonday) - 1)
Fichier = "MC_Shootage" & Semaine & ".xlsm"
...
Essayer : Fichier = "MC_Shootage" & CStr(Semaine) & ".xlsm"
ou bien avec Dim Semaine As String

A+
Robert
 

Nimbus

XLDnaute Occasionnel
Re : Extraire des données en vba

Bonjour à tous,

Merci pour vos post que je viens de lire!

Le programme de Bebere fonctionne et je te remercie pour ton aide.
Maintenant, on me demande de faire pareil sauf que au lieu d'aller chercher 1 seul fichier ("MC_Shootage"), il faut que le pgm me cherche 3 autres fichiers en plus de "MC_Shootage".

C'est à dire que j'ai 4 fichiers : "MC_Shootage", "MC_Plastique", "MC_Finition" et "MC_Expédition".

Comment gérer ces fichiers avec les lignes du pgm :
Code:
 Fichier = "MC_Shootage.xlsm"
     If FichierExiste(Chemin & "\" & Fichier) Then ...

Merci pour votre aide!

Nimbus
 

Statistiques des forums

Discussions
312 277
Messages
2 086 715
Membres
103 378
dernier inscrit
phdrouart