MACRO exporter des données vers autre fichier

chalart Messages postés 9 Statut Membre -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Pour continuer ma progression dans un planning excel je voudrais créer un Macro avec un bouton qui me permettra

1. d'exporter les informations ci dessous en fonction de la date du jour dans un fichier spécifique que je ne peux pas modifier.

-Lay-out planning

nom en I20 to I200
Prénom en J20 to J200
ID en K20 to J200
horaire des employés de Q20:Q200 01/11/2010 jusqu'à AT20:AT200 pour le 30/11/2010

-fichier de restitution:

fichier contenant 13 sheets

les sheets que nous devons utiliser commence du sheet 2 to Sheet 11 inclus.
(Chaque Sheet correspond à un des horaires du planning )

lay-out de chaque sheet est identique

C1 date du jour via formule aujourdhui()
C5 horaire de la pause de travail (identique que dans le planning)
B11 to B41: NOM du travailleur (30 travailleurs par pause maximum)
C11 to C41: Prénom du travailleur
D11 to D41: ID
F11 to F41: Horaire

A voir également:

8 réponses

lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Commence par faire ta macro avec l'éditeur de macro ensuite poste le code et nous verrons pour l'optimiser.
A+
0
chalart Messages postés 9 Statut Membre
 
Salut Lermitte

j'ai beau essayer de la commencer en regardant sur quelque site mais je n'y arrive pas vu ma très faible expérience en VBA.

peux tu me dire ou je peux poster les deux fichier ?

merci beaucoup pour ton aide

Christophe
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
C'est quand même pas si difficile que ça de faire une macro avec l'éditeur ?
Bon, poste tes deux classeurs sur Cijoint.com (avec l'extention xlsm) et tu met le lien dans un poste suivant.
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Non mais... ça va pas de poster des classeurs avec des données aussi confidentielles !!!!
J'ai supprimé ton poste précédant. Mais j'ai tes 2 classeurs.
Mis à part les noms, les mail etc. confidentiel, les données qui seraient explicites ne sont pas disponnibles.
Essaye d'expliquer un peu plus clairement ce que tu veux faire.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
tout bien réfléchi j'ai peut-être une petite idée.
Les données du classeur Lay-out planning doivent êtres splitées dans les feuilles du classeur fichier de restitution suivant les heures ?
Soit les lignes 20 à 200 splitées dans les feuilles horaire de l'autre classeur ?
Tu fait un classeur Lay-out planning tout les mois ?
Si oui faudra penser à rendre le code valide pour toutes les dates.
0
chalart Messages postés 9 Statut Membre
 
alors l objectif est que la macro reprenne automatiquement les horaires des travailleurs et split ces horaires dans le fichier out put

EX: dans le planning général Mr Durand Bertrand est planifier le 08/11/2010 en 17:00 22:00 et Mr Dupont Benjamin 22:00 06:00 le même jour.

en exécutant la macro l'objectif est que Mr Durant arrive dans le fichier out put dans le sheet 17h-22h et que Mr Dupont arrive dans le sheet 22h-6h, ect.... (en respectant le layout bien sur)

point d'attention il faut que la macro tienne compte de la date du jour afin que chaque jour elle transfere le planning du jour (du planning générale) vers le fichier output qui sera envoyé par mail.

En ce qui concerne le planning général, je peux le constituer sur une année en copiant le sheet de Novembre pour tous les autres mois de l'année dans le même fichier. (soit 12 sheet, 1 par mois, dans le même fichier) ou bien je peux utilisé un fichier par mois.
perso je pense que 12 sheet dans le même fichier est plus facile, qu'est ce que tu en penses ?

thanks
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Re,
Un peu tard mais comme ont dit, mieux vaut tard que jamais.
Pour répondre à tes quetions..
1°) Renommer le classeur principale "Planning 2010.xls" comme cela ça fonctionnera pour les années ultérieures avec des copies "Planning 2011.xls" etc..
2°) Renommer l'autre classeur "Rapport.xls"
3°) Renommer les feuilles "M11", "M12" et pour les autres années ajouter des feuilles "M1", "M2", etc..
4°) Sur le classeur Planning mettre un bouton ou un raccourci qui envoi vers la macro.
5°) coller le code ci-dessous dans un module
Sub RemplirHeures()
Dim WkR As Workbook, WkP As Worksheet, Wsk As Worksheet
Dim Mois As Integer, Jour As Integer, Lig As Long, Annee As Integer
Dim PG0, PG1
Dim LigCopie As Long
Dim Tp As String
    Annee = 2010
    Mois = 11 'ici il faudra adapter au N° du mois
    Jour = 6 ' Idem, soit au jour actuel ou InputBox
    Set WkR = Workbooks("Rapport.xls")
    Set WkP = Workbooks("Planning " & Annee & ".xls").Sheets("M" & Mois)
    With WkP
        For Lig = 20 To .Range("I65536").End(xlUp).Row 'Lire toute les données du mois
            If .Cells(Lig, Jour + 16) <> "" Then 'Test si donnée pour le jour sélectionné
                PG0 = Split(.Cells(Lig, Jour + 16), ":")
                PG1 = Split(PG0(1), "-")
                Tp = PG0(0) & "h-" & PG1(1) & "h"
                With WkR.Sheets(PG0(0) & "h-" & PG1(1) & "h")
                    LigCopie = .Range("B65536").End(xlUp).Row + 1
                    .Cells(LigCopie, 2) = WkP.Cells(Lig, 9)
                    .Cells(LigCopie, 4) = WkP.Cells(Lig, 11)
                    PG0 = Split(WkP.Cells(Lig, Jour + 16), "-")
                    .Cells(LigCopie, 6) = PG0(0)
                    .Cells(LigCopie, 7) = PG0(1)
               End With
            End If
        Next Lig
    End With
    Set WkR = Nothing
    Set WkP = Nothing
End Sub


Tu dis...
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Ah oui, j'oubliais, les 2 dernières feuilles ne correspondent pas aux heures ?
Onglet = "22h4h" mais les heures sont 22:00-03:30 ?
0