Générer emploi du temps vierge grâce au macro sur Excel 2013

Résolu
GregBaron Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
GregBaron Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterais générer automatiquement un emploi du temps mensuel vierge pour mes collaborateurs.

Je sais qu'il est possible de générer une nouvelle feuille de calcul grâce aux macros, je ne sais malheureusement absolument pas comment cela fonctionne.

Je connais bien Excel dans le cas d'une utilisation basique, mais connaissance sont donc limitées en ce qui concerne la programmation.

Je cherche a réaliser une macro avec les caractéristiques suivant :

-- une zone de texte libre dans lequel je mentionne le nom du collaborateur (ex Jean Dupont)
-- une zone de texte libre dans lequel je mentionne le mois et l'année souhaitée (ex janvier 2014)
-- un bouton « horaires » qui génère la feuille de calcul avec un nom spécifique (ex Janv14 Jean.D)

Je souhaiterais que cette feuille de calcul comprenne les jours de la semaine et la date correspondante (pour janvier 2014 -- de mercredi à vendredi -- colonne A ; -- de 01/01/14 à 31/01/14 -- colonne B)

Merci d'avance pour votre aide.

Cordialement.

4 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour

macro proposée

Option Explicit

Sub emploi()
Dim jour As Date, separe(), onglet As String

With Sheets(1)
jour = .Range("B2")
separe = Split(.Range("A2"))
onglet = Format(jour, "mmmyy") & " " & separe(0) & "." & Mid(separe(1), 1, 1)
End With

Sheets.Add After:=Sheets(Sheets.Count)

With ActiveSheet
.Name = onglet
.Range("A1") = Format(jour, "dddd dd/mm/yyyy")
jour = Application.EoMonth(jour, 0)
.Range("B1") = Format(jour, "dddd dd/mm/yyyy")
End With
End Sub
Si tu ne sais pas l'installer, fais signe :o)
0
GregBaron Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel,

Merci encore pour votre soutient,

J'ai effectivement un souci :

Quand j'exécute la macro (encore dans la fenêtre de code), un message d'erreur apparaît me signalant une erreur d'exécution '13' : incompatibilité de type.

Puis-je simplement copier-coller votre code ou ai-je une manipulation préalable à réaliser?
0
GregBaron Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour cette réponse rapide,

Je teste ça tout de suite et je reviens vers vous.
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

Ci joint maquette avec modif "13 " et petites améliorations
https://www.cjoint.com/?3AeiiUaR2y1
0
GregBaron Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Michel,

Merci s'est bien dans l'idée de ce que je cherche à obtenir.
Néanmoins je me suis peut-être mal expliqué :

Dans la page générée, je souhaiterais faire apparaître toutes les dates du mois (de mercredi un JUSQU'À vendredi 31) en colonne A (j'ai mentionné 2 colonnes, car je ne parvenais pas à inscrire le jour et la date dans la même cellule, ça sera plus lisible avec une seule colonne).

J'imagine que la modification doit s'effectuer sur cette partie :

With ActiveSheet
.Name = onglet
.Range("A1") = Format(jour, "dddd dd/mm/yyyy")
jour = Application.EoMonth(jour, 0)
.Range("B1") = Format(jour, "dddd dd/mm/yyyy")
With Range("A1:B1")
.Columns.AutoFit
.Borders.Weight = xlThin

faut-il que je remplace

.Range("B1") = ...

par .Range("A2") ... jusqu'a .Range("A31")

ou existe-il une procédure automatique du genre

.Range("A1-A31")


Merci de votre aide,

Cordialement
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
OK, je propose quelque chose en début d'après midi
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
0
GregBaron Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
AH C'est parfait. Exactement ce qu'il me fallait !

Je vous remercie pour votre aide.

Cordialement.
0