Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Etablir un relevé de situation en VBA

Fchris

XLDnaute Occasionnel
Bonjour à toutes et à tous,

J'ai un gros projet à monter suite à la mise en place d'un régime d'astreinte dans mon entreprise. Je dois être capable de fournir aux salariés un relevé récapitulant les astreintes effectuées dans le mois ainsi que divers autres éléments, et aussi être capable d'historiser toutes ces données.

J'ai créé un calendrier permettant de saisir par salarié et par jour le type d'astreinte, le nombre d'heures...

Je récupère toutes ces infos dans une petite synthèse sous le calendrier afin d'avoir un cumul par salarié.

J'ai ensuite établi une matrice de relevé individuel dans lequel je souhaite récupérer les infos se trouvant dans ma petite synthèse. C'est là que je bloque. Je ne sais pas comment faire pour basculer toutes mes infos afin de pouvoir sortir un relevé par salarié. J'ai imaginé passer par un système de bouton permettant de choisir le salarié concerné et ensuite de générer le relevé individuel le concernant. J'ai donc placé des boutons de commandes au dessus de mon calendrier, mais je suis incapable d'écrire le code correspondant.

Quelqu'un aurait-il une idée sur la façon de procéder, déjà à savoir si la démarche de sélection du salarié est la bonne méthode pour générer un relevé, et comment écrire le code pour le générer.

Je joints mon fichier de travail afin que tout soit plus clair, et je suis là pour répondre à toutes les questions pouvant vous aider à me trouver une solution.

Merci par avance à tous de votre aide.
 

Pièces jointes

  • Projet Astreintes Version Test.zip
    41.4 KB · Affichages: 86
  • Projet Astreintes Version Test.zip
    41.4 KB · Affichages: 84
  • Projet Astreintes Version Test.zip
    41.4 KB · Affichages: 86

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA

Cette fois c'est parfait !!!

Merci beaucoup Jean Marie.

J'ai une dernière petite question, si je peux abuser...

Dans l'onglet 'Relevé', j'aimerais justement récupérer cette valeur et l'incrémenter selon le mois dans la zone 'Nbre cumulé d'astreintes'.

Sais-tu comment je peux faire pour qu'il récupère l'info dans le tableau Historiques et que cela corresponde bien au mois concerné ?

encore merci de ton aide
Chris
 

ChTi160

XLDnaute Barbatruc
Re : Etablir un relevé de situation en VBA

re
je dois m'absenter

une question
Pourquoi effectues tu le relevé depuis la feuille Nemours plutôt que via la feuille Historique

Merci d'avance
a+
 

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA

ChTi160 à dit:
re
je dois m'absenter

une question
Pourquoi effectues tu le relevé depuis la feuille Nemours plutôt que via la feuille Historique

Merci d'avance
a+

En fait, c'est parce que la feuille historique n'existait pas dans le projet initiale, c'est une demande qui s'est ajoutée par la suite.... Mais s'il est plus simple de faire l'inverse, je suis preneur !!

Merci de ton aide Jean Marie
A bientôt
 

ChTi160

XLDnaute Barbatruc
Re : Etablir un relevé de situation en VBA

Salut Chris
Bonjour le Forum
Bonjour le fil
arff je m'y perds
peux tu mettre le dernier fichier
et m'expliquer ceci
je regarde dès que possible pour l'histoire du cumul
Merci d'avance
Bonne journée
 

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA

ChTi160 à dit:
Salut Chris
Bonjour le Forum
Bonjour le fil
arff je m'y perds
peux tu mettre le dernier fichier
et m'expliquer ceci

je regarde dès que possible pour l'histoire du cumul
Merci d'avance
Bonne journée

Je viens de t'envoyer le fichier par mail Jean Marie, avec toutes les explications à l'intérieur.

Bon courage et merci beaucoup
 

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA

BrunoM45 à dit:
Salut Fchris, Salut ChTti160,

Christophe, tu trouveras ci-dessous le lien vers ton fichier modifié.
J'ai quelque peu modifié le code de ChTi160 (désolé ChTi )

http://cjoint.com/?fdkMkW2NcM

Voilà

A+

Bruno c'est trop fort !!!

J'ai encore un tout petit bug que je viens de détecter.
J'ai fais un test en alimentant salarié 1 pour le mois de janvier, j'ai historisé et ça marche.
En février j'alimente salarié 1 et 2, j'historise et ça marche.
Je laisse les mêmes valeurs et je passe directement à mai, ça marche pour salarié 1, mais par pour le salarié 2, sur celui-ci, il réadditionne la plage complète...

2e petit truc : sur le relevé, je ne récupère plus la date, il m'affiche janvier 1900....

3e petit truc que je viens de voir : sur le relevé, je récupère systématiquement le cumul du salarié 1, quelque soit le salarié que je choisis dans le calendrier...

Mais encore merci pour ta solution, c'est vraiment génial !!
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Etablir un relevé de situation en VBA


1) J'ai fait la même chose que toi, en laissant à chaque fois les valeurs qui sont dans le fichier.

En mai pour le salarié 2 j'ai bien en cumul : 20 abstreintes
Soit les 10 de février + les 10 de Mai, donc pour moi c'est OK, à vérifier chez toi !

2) Effectivement, j'ai rajouté une variable VDate pour récupération de la date

Voilà le fichier modifié : http://cjoint.com/?fdlckYB3qJ

A+
 

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA


1/ Effectivement Bruno, désolé c'est moi qui suis en train de disjoncter, à force de regarder les chiffres je ne vois plus clair !!

2/ Impeccable pour la variable VDate, je récupère à nouveau l'info

3/ Tu n'as pas dû voir le point 3, je l'ai ajouté après ... Tu peux y jeter un oeil ?
 
C

Compte Supprimé 979

Guest
Re : Etablir un relevé de situation en VBA

Je n'ai vu que le point 3 après avoir posté

Voilà le fichier : http://cjoint.com/?fdljH15c6e

Il y'avait un problème dans le calcul de la colonne par rapport au choix du salarié.

Dans génération de relevé il ne faut pas retrancher -1

Voila
 

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA


Alors mon cher Bruno, comment te dire ça.........................

C'EST GENIAAAAAAAAAAAAAAAAAAAL

C'est nickel, ça fonctionne à merveille, tout roule, absolument rien à dire.

Je te remercie vraiment de t'être plongé dans ce projet depuis le début, je sais que cela t'a pris énormément de temps, tu as bossé dessus pendant tes congés et le soir chez toi, c'est vraiment sympa. Un grand MERCI Bruno pour toute ton aide et ta patience, j'apprécie vraiment ta gentillesse.

Christophe
 

Fchris

XLDnaute Occasionnel
Re : Etablir un relevé de situation en VBA


Je viens d'avoir un petit bug Bruno, si tu peux tester de ton côté :

Lorsque tous les mois sont vides, que je remplis mai et que je génère un historique, le code plante car pas de cumul précédent.
Pour y remédier, je génère le mois de janvier à 0 pour tout le monde et après ça fonctionne. Mais si jamais il y a une solution pour remédier à ça...
 
C

Compte Supprimé 979

Guest
Re : Etablir un relevé de situation en VBA

Pour finir le fil

Oups effectivement, bien vue
En fait pour récupérer le cumul je récupère la valeur de la dernière cellule remplie....
Or, comme là il n'y en à pas, cela prends l'entête de colonne qui est du texte.

Pour rectifier cela il faut dans le code de l'historique, ajouter une ligne
Code:
' Inscrit Nbre Astreintes Cumulées
Select Case VMois
  Case Is = 1 'on colle la somme des deux variables
    .Cells(NLigH, NColH + 7) = CInt(NbAstJ + NbAstN)
  Case Is > 1 'on additionne la plage (I5:Ix)du dessus avec les deux variables 
  ' Récupère la dernière valeur cumulée d'abstreinte
  DerLig = .Cells(17, 7 + NColH).End(xlUp).Row
  If DerLig < NLigH Then
    NbAstCumPrec = IIf(DerLig > 4, .Cells(DerLig, 7 + NColH).Value, 0)
    .Cells(NLigH, NColH + 7) = CInt(NbAstJ + NbAstN) + CInt(NbAstCumPrec)
  End If
End Select

Cela ira mieux comme ça !
 
Dernière modification par un modérateur:

Discussions similaires

Réponses
23
Affichages
792
Réponses
5
Affichages
310
Réponses
5
Affichages
217
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…