MACRO exporter des données vers autre fichier
chalart
Messages postés
9
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
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
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:
- MACRO exporter des données vers autre fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
8 réponses
Bonjour,
Commence par faire ta macro avec l'éditeur de macro ensuite poste le code et nous verrons pour l'optimiser.
A+
Commence par faire ta macro avec l'éditeur de macro ensuite poste le code et nous verrons pour l'optimiser.
A+
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
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
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.
Bon, poste tes deux classeurs sur Cijoint.com (avec l'extention xlsm) et tu met le lien dans un poste suivant.
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
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
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
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
Tu dis...
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...