Tableau de bord

Bonjour a tous,

Je suis débutant en vba excel mais je trouve ca incroyable ce que vous arrivez a faire et l'aide que ca peut apporter rien que de vous lire.

j'ai pour mon travail un tableau de bord a créer et je bloque sur certaine choses, pouvez vous m'aidez ?

1) j'ai un fichier excel avec 5 onglets qui doivent rester dans cette ordre, j'aimerai a partir de l'onglet "Modèle" quand je clique sur "GO" avoir une fenêtre qui s'ouvre pour me demande le mois que je veux ajouter puis m'ajouter des onglets par jours ouvrés sans les jours féries qui sont dans l'onglet "base équipe, noms" après les 5 onglets de bases et trier dans l'ordre chronologique.

2) ensuite ils faudrait que sur chaque onglet soit copier le modèle avec le tableau croisé dynamique correspondant a l'onglet créer car je viendrai tout les jours ajouter les informations sur l'onglet de la veille .

3) sur l'onglet "base "il faudrait que j'ai une liste a cocher afin de masqué ou nom les onglets que je viens de créer .

le but de ce tableau c'est de remplir l'activité de la veille sur le bon l'onglet et de pouvoir tout les jours via des graphiques analysé la veille et ajouter des commentaires et que sur celui du mois il y est toute les activités des onglets ajouter.

J'ai commencer pas mal de chose mais je suis bloqué pour les jours ouvrés et féries, copier un modèle de TCD de l'onglet, et afficher les onglets pouvez vous m'aiguiller un peu s'il vous plait merci je continu des que j'avance je mets a jours mon fichier.

Bonsoir,

Sauf ton respect, ça me parait un peu timoré ton truc :

Tu as déjà un classeur de 640 ko avec juste 1 modèle vide : tu multiplies ça par 300 jours (à la louche) ça va te faire à la fin de l'année un classeur de 200 Mo ?? (toujours à la louche !)

Tu vas avoir le temps d'en boire des cafés et d'en fumer des cigarettes pendant que ton PC YVA ramer...

Bref TOUSSA pour dire que ton truc moi je le sens pas... D'autant que coté VBA t'as pas spécialement l'air d'une terreur, alors...

Bon ponctuellement on veut bien de donner des idées... mais moi personnellement j'assume pas ce projet.

Pour déterminer si une date est un samedi ou un dimanche, en VBA tu as la fonction Weekday... ou MOD... moi je préfère la deuxième...

Pour savoir si c'est un férié (OUPA) ou le numéro de semaine, tu trouveras des fonctions personnalisées...

En voici quelques unes glanées au hasard du net :

'Fonction retournant le numéro de semaine (norme iso (Europe))
'http://www.xcell.excelabo.net/dates_heures#Numsemaine
Function NOSEM(D As Date) As Long
   D = Int(D)
   NOSEM = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
   NOSEM = ((D - NOSEM - 3 + (Weekday(NOSEM) + 1) Mod 7)) \ 7 + 1
End Function

Public Function EstJourFerie(ByVal laDate As Date, Optional ByVal EstPentecoteFerie As Boolean = True) As Boolean
'Détermine si la date passée en argument est un jour férié (en France) ou non :
'   101 = 1er Janvier '501 = 1er Mai '508 = 8 Mai '714 = 14 Juillet
'   815 = 15 Août - 1101 = 1er Novembre '1111 = 11 Novembre '1225 = 25 Décembre
'   dPa = Lundi de Pâques 'dAs = Jeudi de l'Ascension 'dPe = Lundi de Pentecôte
'Remarque : Le lundi de Pentecôte est un jour férié mais parfois non chômé (EstPentecoteFerie = False dans ce cas)
  Static Annee As Integer, dPa As Date, dAs As Date, dPe As Date, bPe As Boolean
   Dim a As Integer, m As Integer, j As Integer

   a = Year(laDate): m = Month(laDate): j = Day(laDate)
   Select Case m * 100 + j
   Case 101, 501, 508, 714, 815, 1101, 1111, 1225
      EstJourFerie = True
   Case 323 To 614   '323: Date mini Lundi de Pâques - 614 : Date maxi Lundi de Pentecôte
     If a <> Annee Or EstPentecoteFerie <> bPe Then
         Annee = a: dPa = Paques(a) + 1: dAs = dPa + 38
         bPe = EstPentecoteFerie: If bPe Then dPe = dPa + 49 Else dPe = #1/1/100#
      End If
      Select Case DateSerial(a, m, j): Case dPa, dAs, dPe: EstJourFerie = True: End Select
   End Select
End Function

Public Function Paques(ByVal an As Integer) As Date
Paques = CDate(Evaluate("=DATE(" & an & ",3,29.56+0.979*MOD(204-11*MOD(" & an & ",19),30)- WEEKDAY(DATE(" & an & ",3,28.56+0.979*MOD(204-11*MOD(" & an & ",19),30))))"))
End Function

Après... Heu... Je voudrais pas être à ta place !

A+

Bonjour galopin01,

Alors tout d'abord merci de m'avoir lu, d'essayer de m'aider et de me conseiller (ce que je cherchais aussi ici)

cela dit je me suis mal expliquer ce fichier excel ne servira que pour un mois pas plus une fois que le model est copier en fonction du mois et que les onglets sont créer et remplis j'imprimerai l'onglet "synthèse mois" pour le garder en mémoire et je recommence a zéro un nouveau mois, le but pour moi ai que je n'utilise qu'un seul fichier pour tout les mois mais pas de sauvegarder tout les jours de l'année juste le mois en cours(maxi 27 jours ouvrables).

2 je fume pas par contre le café oui beaucoup , faut il vraiment que je m'y mette ?? si mon fichier excel ne fait que les jours du mois en cours??

3 pour le fait de ne pas être une terreur je pense que la tu as raison, je regarde beaucoup les forums d'entraide et essai de modifier des codes en essayant de les comprendre afin de m'en servir mais je ne suis pas un génie du VBA, ce qui ne m’empêche pas de m'investir pour essayer

4 merci pour les idées c'est super sympa, si je peux en retour vous aidez en .... marque de café .

je reviens des que j'essaie le code merci .

Bonjour,

Même pour un mois je trouve que c'est déjà beaucoup ! à 650 ko le fichier vide, tu vas avoir un classeur de plus de 10 Mo peut-être 20...

Ceci est sans doute le fait de tes formules assez lourdes avec en plus quelques TCD et graphiques, je ne m'y hasarderais pas.

Mébon qui ne risque rien n'a rien ! Et puis on n'est débutant que la première fois : c'est en essayant qu'on forge son expérience...

A+

Ok,

Donc peut être qu'il faudrait déjà que je réduise la taille de mon fichier vide, je peux passer par un fichier excel pour faire mes calcules et après coller mes tableaux en valeur seulement.

Oui c'est sur.

En fait c'est bien à ça que je pensais.

Il y a une autre manière de voir la chose : En général les formules sont incrémentables : on ne conserve que la première ligne de formules et on laisse VBA faire le calcul grâce à cette formule puis on fige le résultat en valeur.

Ça demande un peu d'aisance au niveau VBA, mais rien de sorcier...

A+

Rechercher des sujets similaires à "tableau bord"