Recopier des données d'un classeur à un autre

TEMARA79

XLDnaute Nouveau
Bonjour,
je m'en remet à vous car j'ai un soucis sous excel à mon travail!!! Voilà mon problème (je vais essayer d'être le plus clair possible):

J'ai un classeur nommé "Feuille de suivi productions" avec dans mon exemple une feuille Ligne1 et une feuille Ligne2 (Chacune de ces 2 feuilles
correspondant à une ligne de production). Dans chaque feuille j'ai un tableau par production avec une colone code de production, une colone date de production, une colone numéro d'équipe, une colone quantité de pièces réalisées, une colone cumul, une colone nombre d'heures travaillées sur la production et une colone Standard représentant le standard minimu de piece a effectuer. Pour chaque production, comme nous pouvons y passer plusieurs jours dessus, dans ma colone date, je met la nouvelle date à chaque ligne suivante mais avec le meme code et dans le meme tableau.

J'ai aussi un autre classeur nommé "Feuille de suivi ligne 1" dans lequel je doit recopier les information que je récupère de la feuille Ligne 1 du premier classeur (notez que j'ai aussi un classeur exprès pour la ligne 2). Dans cette feuille de ligne j'ai une seule ligne par production (synhtèse des tableau de mon autre classeur en fait) où je doit recopier mon standard et mon nombre de pieces et d'heures passées par semaine.

Mon probleme est donc que je perd du temps à recopier ces données en double. Je voudrais faire une recopie automatique en passant par du code VBA, mais là c'est assez complexe pour moi car je doit recopier les données par semaine en fonction de la date de travaille. Je vous joint mes 2 classeur excel pour que vous voyiez mieux car je peine un peu à m'expliquer.

Coridalement, TEMARA1979
 

Pièces jointes

  • Feuille de suivi ligne 1.xls
    16 KB · Affichages: 68
  • Feuille de suivi productions.xls
    18.5 KB · Affichages: 73

TEMARA79

XLDnaute Nouveau
Re : Recopier des données d'un classeur à un autre

Je me permet un petit Up car c'est vraiment important!!! J'ai lu plein de choses pour copier des données d'un classeur à un autre mais pour une condition comme la mienne je n'ai rien trouvé!! Car il faut que je copie les données en fonction d'un code et d'une date!!

Merci d'avance à ceux qui veulent bien m'aider!!
 

TEMARA79

XLDnaute Nouveau
Re : Recopier des données d'un classeur à un autre

J'ai essayé (en m'aidant de différentes lignes de codes trouvées ci et là sur le net)à d'avancer un peu sur mon histoire mais j'ai encore beaucoup de problèmes voici le code que j'ai commencé à développer, notez bien que je ne suis qu'un débutant et qu'il faut bien que j'arrive à résoudre ce problème même si je n'y connais rien!!!

Code:
Sub CopieAutoProduction()

Dim ProdLigne1 As Range, Ligne1 As Range 'Déclaration de ma variable ProdLigne1 qui corrsepond à ma "Feuil1" du classeur"Feuille de suivi productions.xls" et de ma variable
'Ligne1 qui correspond à ma "Feuil1" du classeur "Feuille de suivi ligne 1.xls"
Dim Cell As Range 'Déclaration de la variable Cell
Dim c As Range 'Déclaration d'une variable c qui prendra la valeur des cellules trouvées
Dim Semaine1 As Date 'Je déclare ici une variable Semaine1 qui coresspond à une plage de date (ex: du 05/01/2009 au 11/01/2009)
Dim Semaine2 As Date 'Idem mais pour la semaine suivante (ex: du 12/01/2009 au 18/01/2009)
'...Autres Semaines jusqu'à la fin de l'année

Semaine1 = 1 'là je ne sais pas comment affecter une plage de date à ma variable Semaine1
Semaine2 = 1 'Idem pour ma semaine2
'...Autres semaines jusqu'à la fin de l'année


'Les 2 lignes de codes qui suivent doivent situer dans les variables "ProdLigne1" et "Ligne1" les zone ou je vais rechercher des codes identiques pour copier mes données
Set ProdLigne1 = Feuil1.Range("A5:" & Feuil1.Cells(Rows.Count, "A").End(xlUp).Address) 'Je veux ici que ma variable "ProdLigne1" corresponde à ma colone A de la "Feuil1" du classeur "Feuille de suivi productions.xls" ou se trouve le code à comparer

'La ligne suivante est mon premier probleme car au debogage j'ai une erreur qui me surligne Workbook et me marque "Sub ou function non defini. En fait je veux juste donner le chemin de ma "Feuil1" de mon classeur "Feuille de suivi de ligne 1.xls
Set Ligne1 = Woorkbook("Feuille de suivi ligne1.xls").Sheets("Feuil1").Range("I5:" & Feuil1.Cells(Rows.Count, "I").End(xlUp).Address) ' Idem ici mais pour la Colone I de la "Feuil1" de mon classeur "Feuille de suivi ligne 1.xls"


'Les lignes de codes suivantes me permettent de chercher les codes identiques et de copier les cellules adjacentes du code trouvé sur ma "Feuil1" du classeur "Feuille de suivi productions.xls"
'avec la fonction Offset, que je veux recopier dans les cellules de la "Feuil1" du classeur "Feuille de suivi ligne 1.xls" dans les cellules correspondantes à la colone.

    For Each Cell In Ligne1 'Je veux que pour chaque code de la zone de cellules de ma variable "Ligne1"
        Set c = ProdLigne1.Find(Cell) 'Trouver un code identique dans la zone de cellules de ma variable "ProdLigne1"
        If c.Offset(0, 1).Value = Semaine1 Then ' Si la date du code est comprise dans la plage de date de la semaine 1  alors
            If Not c Is Nothing Then 'Si c n'est pas vide
                 c.Offset(0, 7).Copy Feuil1.Cells(Cell.Row, "J") 'Je copie les cellules adjacentes à c que je veux vers la colonne "J" de la "Feuil1" du classeur "Feuille de suivi ligne 1.xls"
            End If
            If Not c Is Nothing Then
                 c.Offset(0, 3).Copy Feuil1.Cells(Cell.Row, "K") ' Idem mais pour la colonne "K"
            End If
        End If
            If c.Offset(0, 1).Value = Semaine3 Then ' Si la date du code est comprise dans la plage de date de la semaine 2 au lieu de la semaine 1 alors
            If Not c Is Nothing Then
                 c.Offset(0, 7).Copy Feuil1.Cells(Cell.Row, "L") 'Je copie les cellules adjacentes à c que je veux vers la colone L (au lieu de J si ca avait été la semaine 1
            End If
            If Not c Is Nothing Then
                 c.Offset(0, 3).Copy Feuil1.Cells(Cell.Row, "M")
            End If
        End If
        '...Et ainsi de suite pour chaques semaines jusqu'à la fin de l'année
    Next
    'Voilà, maintenant mon probleme est que ce code ne copie que les cellules adjacentes du premier code alors que je voudrais aussi celles des lignes suivantes qui ont le meme code!!! je veux additionner les cellules d'une meme colone (exemple "D") que j'ai choisie, adjacente à c et donc en concordance avec un meme code
    'En fait, J'ai une colone A ou j'ai sur plusieures ligne le meme code (suivi d'un autre code lui aussi sur plusieures lignes,...), en colone B j'ai des dates differentes sur les memes plusieures lignes car elles correspondent au meme code
    'et en colone C j'ai sur les meme plusieures lignes encore le nombre de pieces produites sur les differentes dates, il faudrait que je puisse selon un meme code additionner le nombre de pièces selon une semaine (voir ci dessus dans les variables semaines) et les copier dans la colone semaine 1 ou semaine 2 selon la date...
    
End Sub
 

Discussions similaires