XL 2013 Supprimer des sauts de ligne vierge d'une cellule qui contient une formule

ANTONY34200

XLDnaute Occasionnel
Bonjour,
j'ai créé un planning sous excel, pour ma femme qui reprend une PME en sécurité privée, ou je pense avoir déjà bien bossé dessus.
Je ne suis pas un expert, mais j'ai créé ce planning en consultant pas mal de forum. Le planning est fonctionnel, MAIS, car il y a un mais, j'aimerais y apporter quelques améliorations.
Le fichier joint, comporte 3 onglets (paramètre, général et agt 5)

L'onglet général, est en fait, le planning général, et c'est la que toutes les informations sont saisies.

L'onglet AGT 5, est le planning individuel de l'agent. Des cellules D8 à D39 ont une formule qui appelle le nom du site SI l'agent est planifié dans le planning général, pareil pour les heures de début (F8 à F39) et les heures de fin (G8 à G39).

Mon soucis est que j'aimerais, dans les cellules D8 à D39, F8 à F39, et G8 à G39, quand l'agent est planifié, les sauts de lignes inutiles ou vierges (dans les cellules)soient supprimées, sinon les cellules sont bien trop grande.

J'aimerais aussi savoir s'il est possible de classer par ordre chronologique d'heure de début (dans la ligne) et que les sites et les horaires correspondent.

Je ne suis pas expert, mais je pense toucher un peu, mais la... je bloque. j'ai cherché un peu partout une piste, mais je n'ai rien trouvé.
Si quelqu'un pouvait m'aider un peu ... se serai avec plaisir.
A bientôt, et merci d'avance.
 

Pièces jointes

  • test.xlsm
    235.3 KB · Affichages: 176

sylvanu

XLDnaute Barbatruc
Supporter XLD
Voici la V7 qui est la V6 mais avec la gestion du temps de la V4.
Mais de mémoire la V4 posait quelques problèmes à ce niveau, mais je ne sais plus lesquels.
Concernant les temps, c'est toujours un compromis entre la taille du fichier et sa rapidité.
Il n'est pas possible en VBA d'être plus rapide que des formules Microsoft.
 

Pièces jointes

  • Antony_New version_V7.xlsm
    309.9 KB · Affichages: 3

ANTONY34200

XLDnaute Occasionnel
Déjà un grand merci pour cette version et le temps passé à m'aider, pour ne pas dire faire à ma place.
en PJ la V11,
dans AGT, j'ai modifié les formules dans les colonnes S à W et tout fonctionne bien dans le calcul des heures ... super! c'est fini sur les calculs ...
mais quelques bugs :
1- J'ai toujours le problème d'incrémentation du temps mensuel dans GENERAL.
2- J'ai perdu la coloration automatique des cellules C8 à C38, (c'est la mise en forme conditionnelle qui a du bugger) je suis en train de chercher.

Question amélioration et confort :
1- dans GENRAL j'ai fait un bouton pour ouvrir un UseForm, qui servira de Note ou Mémo. Juqu'ici tout fonctionne, quand je saisie une note dans le Useform, j'aimerais que que sa le garde en mémoire à chaque ouverture et fermeture du mémo. Pour ca, dans PARAMETRE, j'ai mis de A20 à A32, de quoi stocker les infos. je ne sais pas si je suis sur la bonne piste ... et j'aimerais aussi que ce UseForm s'ouvre automatiquement à l'ouverture du fichier

2- Dans les onglets AGT X, il y à des info que j'aimerais automatiquement copier dans l'onglet Pré-paye. j'aimerais savoir si je conserve mon système de formule, ou s'il y a moyen de passer en VBA ou macro, la création et le remplissage automatique par onglet AGT, suivant le modèle (qui est dans l'onglet Pré-paye). Les cellules colorés étant les cellules à remplir automatiquement.

3- Dans GENERAL, savoir s'il est possible de mettre en surbrillance ou créer un message d'alerte si un même agent est planifié le même jour, sur des plage horaires se chevauchant
Exemple :
le 21/07/2020 agent 1 sur le site 2 de 18:00 à 20:00 et planifié sur le site 25 de 17:00 à 19:00.
dans ce cas j'aimerais pourvoir faire sortir un message d’alerte du style : "Attention, l'agent est déjà planifié sur cette plage horaire" et mettre en surbrillance les cellules concernées.
 

Pièces jointes

  • Antony_New version_V11.xlsm
    222.7 KB · Affichages: 2

sylvanu

XLDnaute Barbatruc
Supporter XLD
0.1 Enfin résolu, j'y ai mis une sécurité et m'arrête dès que la liste est finie.
0.2 Je ne sais pas pourquoi, je n'ai touché à rien coté MFC.
1. Pour cela il faut mettre dans la feuille ThisWorrkbook une macro spécifique qui s'appelle Workbook_Open, et pas la même occasion je vous ai mis sa petite soeur Workbook_BeforeSave ... vous y trouverez bien une utilité. :p
VB:
Private Sub Workbook_Open()
     Mémo.Show vbModal
End Sub
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ' Vide pour l'instant.
    ' Cette macro s'active quand on quitte le programme.
    ' Donc on peut s'en servir pour ranger, nettoyer avant de sortir.
End Sub
2. Dans le fichier j'ai mis un exemple avec la fonction Indirect qui permet de chercher une infos en passant par le nom de l'onglet dans une autre cellule. Là le VBA ralentirait.
3- Oups ! A voir, il faut réfléchir.
 

Pièces jointes

  • Antony_New version_V12.xlsm
    232.2 KB · Affichages: 2

ANTONY34200

XLDnaute Occasionnel
Oups, un soucis avec le calcul des heures ...
Dans la décomposition des heures de l'onglet AGT de M à R il ni a qu'un seul site pris en compte pour le calcul ... voir exemple AGT 1, en M8 il devrait y avoir 12,00 heures soit 11h pour le site 2 + 1h pour le site 1
 

Pièces jointes

  • Antony_New version_V12.xlsm
    242.1 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Je n'ai pas compris pourquoi vous vouliez récupéré la V4. Je savais qu'elle présentait des problèmes car les variables étaient remises à 0 à chaque ligne.
Essayez de regardez le code c'est en travailJourNuit/Sub JourNuit()
demain je vais regarder de nouveau vos formules pour voir si on peut les retranscrire telle quelles en VBA. Mais cela risque d'être plus long que maintenant.
 

Pièces jointes

  • Antony_New version_V15.xlsm
    234.7 KB · Affichages: 2

ANTONY34200

XLDnaute Occasionnel
ok, mais il faut penser que je puisse comprendre, afin de pouvoir faire évoluer ou modifier.
tous les calcul de M à R dans AGT sont bons. et le calcul de S à W non. Quand je change les formules, et si je modifié l'agent dans le GENERAL, l'affichge ne se fait pas
Exemple :
dans AGT
S16 doit etre egal à N16
T16 doit etre égale à la somme de M16+O16
U16 à Q16
V16 à P16
 

Discussions similaires