XL 2016 MFC sur plage horaire à partir d'une autre feuille

djvinceathome

XLDnaute Nouveau
Bonjour,

J'ai un fichier Excel où j'ai plusieurs feuilles, dans la feuille besoin, j'encode différents planning par rapport à des lieux. J'aimerais que en fonction des différents lieux, les plages horaires correspondantes se mettent dans la feuille avant celle des besoins. Si pouvez m'aider ce serait bien
le fichier est en annexe
 

Pièces jointes

  • Copie de CALENDRIER REGIE 2021.xlsx
    93.8 KB · Affichages: 30

GALOUGALOU

XLDnaute Accro
re djvinceathome bonsoir le forum
Théoriquement, pour une activité qui se termine à 10h15, et si dans la même salle l'horaire de début de la suivante est 10h15 l'alerte est bleu écriture jaune.
Elle est rouge si par exemple une activité se termine à 10h15 et la suivante commence à 10h00 ou avant.
J'ai vérifié en téléchargeant le classeur version7 du #12, cela à l'air de fonctionner correctement. Si vous constatez un bug je vous propose de poster le classeur avec le problème identifié.
Bonjour,

J'ai besoin d'une explication sur le tableau, comment les deux feuilles font le lien entre elle. Je m'explique, comment Excel sait qui doit se positionner entre le lieu et l'heure sur la feuille 2 ? Comment sait-il qu'il doit reprendre l'activité et non pas une autre cellule? Comment tout cela est exprimé dans la VB ? Merci pour la version 7 du soft Excel. tu es génial ....
Bien que la macro soit différente, l'explication du fil 4 s'applique au classeur du fil 7. Pour une plus grande compréhension, une explication plus précise
VB:
'test sur l'activité cherche sur la feuille arrivé 3eme ligne colonne par colonne,
'les informations de la feuille départ ligne par ligne 4eme colonne
If Sheets(F1).Cells(3, COL) = Sheets(F2).Cells(i2, 4) Then
'test sur l'heure de fin, cherche sur la feuille arrivé ligne par ligne,  1er colonne,
'les informations de la feuille départ ligne par ligne 6eme colonne
If Sheets(F1).Cells(i, 1) < Sheets(F2).Cells(i2, 6) Then
'test sur l'heure de fin, cherche sur la feuille arrivé ligne par ligne,  1er colonne,
'les informations de la feuille départ ligne par ligne 5eme colonne
If Sheets(F1).Cells(i, 1) >= Sheets(F2).Cells(i2, 5) Then
Pour la fusion des cellules, c'est la macro du #12 qui identifie les cellules identiques, colonne par colonne

cdt
galougalou
 

djvinceathome

XLDnaute Nouveau
re djvinceathome bonsoir le forum
Théoriquement, pour une activité qui se termine à 10h15, et si dans la même salle l'horaire de début de la suivante est 10h15 l'alerte est bleu écriture jaune.
Elle est rouge si par exemple une activité se termine à 10h15 et la suivante commence à 10h00 ou avant.
J'ai vérifié en téléchargeant le classeur version7 du #12, cela à l'air de fonctionner correctement. Si vous constatez un bug je vous propose de poster le classeur avec le problème identifié.

Bien que la macro soit différente, l'explication du fil 4 s'applique au classeur du fil 7. Pour une plus grande compréhension, une explication plus précise
VB:
'test sur l'activité cherche sur la feuille arrivé 3eme ligne colonne par colonne,
'les informations de la feuille départ ligne par ligne 4eme colonne
If Sheets(F1).Cells(3, COL) = Sheets(F2).Cells(i2, 4) Then
'test sur l'heure de fin, cherche sur la feuille arrivé ligne par ligne,  1er colonne,
'les informations de la feuille départ ligne par ligne 6eme colonne
If Sheets(F1).Cells(i, 1) < Sheets(F2).Cells(i2, 6) Then
'test sur l'heure de fin, cherche sur la feuille arrivé ligne par ligne,  1er colonne,
'les informations de la feuille départ ligne par ligne 5eme colonne
If Sheets(F1).Cells(i, 1) >= Sheets(F2).Cells(i2, 5) Then
Pour la fusion des cellules, c'est la macro du #12 qui identifie les cellules identiques, colonne par colonne

cdt
galougalou
Hello Merci, Je vais tester tout cela mais ton explication me fait mieux comprendre le système.

Par ailleurs, dans l'hypothèse où je veux changer le critère de recherche activité je change If Sheets(F1).Cells(3, COL) = Sheets(F2).Cells(i2, 4), au lieu du 3 je mets un numéro de colonne différent? Que veut dire le i dans (i2, 4),?

A quoi sert la feuille que tu nommes Base, est ce que c'est cette feuille qui faut modifier si je veux changer le nom des lieux, ou la plage horaire?

Puis-je rajouté autant de feuille que je veux?
 

GALOUGALOU

XLDnaute Accro
re

Par ailleurs, dans l'hypothèse où je veux changer le critère de recherche activité je change If Sheets(F1).Cells(3, COL) = Sheets(F2).Cells(i2, 4), au lieu du 3 je mets un numéro de colonne différent?

non, bien s'imprégner du code
f1 = feuille active ou va s'afficher le planning
f2 = feuille précédente
donc dans Sheets(F2).Cells(i2, 4), c'est le 4 qu'il faut modifier
Que veut dire le i dans (i2, 4)
c'est une variable, qui lors de l'itération sur la feuille F2 va prendre comme valeur le numéro de ligne, de 4 à la dernière ligne, donc à ne pas modifier. (ne pas confondre i et i2, deux variables qui ne concernent pas la même feuille
A quoi sert la feuille que tu nommes Base, est ce que c'est cette feuille qui faut modifier si je veux changer le nom des lieux, ou la plage horaire?
C'est la feuille de référence qui alimente toutes les listes déroulantes. Il est judicieux de toujours y faire référence pour avoir des noms totalement identique (cela évite les espaces cachés, les majuscules ou minuscule involontaire qui ne serait pas reconnu par les macros.
Puis-je rajouté autant de feuille que je veux?
Il n'y a pas de limite, mais bien respecter les informations du #7
cdt
galougalou
 

djvinceathome

XLDnaute Nouveau
re



non, bien s'imprégner du code
f1 = feuille active ou va s'afficher le planning
f2 = feuille précédente
donc dans Sheets(F2).Cells(i2, 4), c'est le 4 qu'il faut modifier

c'est une variable, qui lors de l'itération sur la feuille F2 va prendre comme valeur le numéro de ligne, de 4 à la dernière ligne, donc à ne pas modifier. (ne pas confondre i et i2, deux variables qui ne concernent pas la même feuille

C'est la feuille de référence qui alimente toutes les listes déroulantes. Il est judicieux de toujours y faire référence pour avoir des noms totalement identique (cela évite les espaces cachés, les majuscules ou minuscule involontaire qui ne serait pas reconnu par les macros.

Il n'y a pas de limite, mais bien respecter les informations du #7
cdt
galougalou
Hello Galougalou,

je comprends un peu mieux le code, un grand merci pour tes explications claires. sache que c'est un outil qui va servir et aider à la gestion.
 

djvinceathome

XLDnaute Nouveau
Hello Galougalou,

je comprends un peu mieux le code, un grand merci pour tes explications claires. sache que c'est un outil qui va servir et aider à la gestion.
re djvinceathome bonsoir le forum
Théoriquement, pour une activité qui se termine à 10h15, et si dans la même salle l'horaire de début de la suivante est 10h15 l'alerte est bleu écriture jaune.
Elle est rouge si par exemple une activité se termine à 10h15 et la suivante commence à 10h00 ou avant.
J'ai vérifié en téléchargeant le classeur version7 du #12, cela à l'air de fonctionner correctement. Si vous constatez un bug je vous propose de poster le classeur avec le problème identifié.

Bien que la macro soit différente, l'explication du fil 4 s'applique au classeur du fil 7. Pour une plus grande compréhension, une explication plus précise
VB:
'test sur l'activité cherche sur la feuille arrivé 3eme ligne colonne par colonne,
'les informations de la feuille départ ligne par ligne 4eme colonne
If Sheets(F1).Cells(3, COL) = Sheets(F2).Cells(i2, 4) Then
'test sur l'heure de fin, cherche sur la feuille arrivé ligne par ligne,  1er colonne,
'les informations de la feuille départ ligne par ligne 6eme colonne
If Sheets(F1).Cells(i, 1) < Sheets(F2).Cells(i2, 6) Then
'test sur l'heure de fin, cherche sur la feuille arrivé ligne par ligne,  1er colonne,
'les informations de la feuille départ ligne par ligne 5eme colonne
If Sheets(F1).Cells(i, 1) >= Sheets(F2).Cells(i2, 5) Then
Pour la fusion des cellules, c'est la macro du #12 qui identifie les cellules identiques, colonne par colonne

cdt
galougalou
Bonjour Galougalou,

Je viens de rajouter un lieu dans la feuille où le planning s'affiche, je t'ai mis le fichier, en fait lorsque je rajoute un lieu ( Arsenal), il ne fait pas la fusion des colonnes. Que dois-je faire dans le code, peux tu m'indiquer où je dois aller svp?


Idem si je veux rajouter des heures , ici l'horaire commence à 8h30 mais si je veux qu'il commence à 8h, dois-je juste rajouter les lignes?

d'avance merci pour tes réponses.

Bien à toi
 

Pièces jointes

  • xld7 (1).xlsm
    203.2 KB · Affichages: 6

djvinceathome

XLDnaute Nouveau
Bonjour Galougalou,

Je viens de rajouter un lieu dans la feuille où le planning s'affiche, je t'ai mis le fichier, en fait lorsque je rajoute un lieu ( Arsenal), il ne fait pas la fusion des colonnes. Que dois-je faire dans le code, peux tu m'indiquer où je dois aller svp?


Idem si je veux rajouter des heures , ici l'horaire commence à 8h30 mais si je veux qu'il commence à 8h, dois-je juste rajouter les lignes?

d'avance merci pour tes réponses.

Bien à toi
Je comprends pas bien comment Excel sait la limite du tableau, entre quelle ligne et quelle colonne il doit arrêter s'est test?
 

GALOUGALOU

XLDnaute Accro
re

Je viens de rajouter un lieu dans la feuille où le planning s'affiche, je t'ai mis le fichier, en fait lorsque je rajoute un lieu ( Arsenal), il ne fait pas la fusion des colonnes. Que dois-je faire dans le code, peux tu m'indiquer où je dois aller svp?
Sub fusion_colonnes()
Dim l As Long ' ligne
Dim d As Long ' doubles
Dim c As Integer ' colonne
Const minl = 4 ' début ligne
Const maxl = 82 ' fin ligne
Const minc = 2 ' début colonne
Const maxc = 35 ' fin colonne
Dans la macro fusion_colonnes, le champ d'action est délimité. Il faut adapter les dimensions à vos besoins. suite à l'ajout Arsennal, les dimensions sont différentes, ce n'est plus 35 mais 36 ou 37 ou 38, idem pour les lignes si vous rajoutez des horaires
Idem si je veux rajouter des heures , ici l'horaire commence à 8h30 mais si je veux qu'il commence à 8h, dois-je juste rajouter les lignes?
L'idéal, c'est de renseigner les feuilles bases, les informations seront dispersées dans le classeur


Je comprends pas bien comment Excel sait la limite du tableau, entre quelle ligne et quelle colonne il doit arrêter s'est test?
dans la macro ventilation, l'instruction qui commence par FOR, donne les limites.
mais bon, il faut maitriser un minimum le langage VBA. Je vous conseille la lecture suivante

Dans le classeur ci-joint, une correction qui prend en compte les informations de ce fil, plus un bouton pour créer deux feuilles mariées, pour les éventuelles évolutions.
cdt
galougalou
 

Pièces jointes

  • xld8.xlsm
    126.6 KB · Affichages: 9

djvinceathome

XLDnaute Nouveau
re



Dans la macro fusion_colonnes, le champ d'action est délimité. Il faut adapter les dimensions à vos besoins. suite à l'ajout Arsennal, les dimensions sont différentes, ce n'est plus 35 mais 36 ou 37 ou 38, idem pour les lignes si vous rajoutez des horaires

L'idéal, c'est de renseigner les feuilles bases, les informations seront dispersées dans le classeur



dans la macro ventilation, l'instruction qui commence par FOR, donne les limites.
mais bon, il faut maitriser un minimum le langage VBA. Je vous conseille la lecture suivante

Dans le classeur ci-joint, une correction qui prend en compte les informations de ce fil, plus un bouton pour créer deux feuilles mariées, pour les éventuelles évolutions.
cdt
galougalou
Hello,

Je t'avoue que j e suis novice dans le code VBA, merci pour ta formation en tout cas, et merci pour ton investissement. tu es une personne géniale. je vais regarder à cela. un grand merci
 

djvinceathome

XLDnaute Nouveau
re



Dans la macro fusion_colonnes, le champ d'action est délimité. Il faut adapter les dimensions à vos besoins. suite à l'ajout Arsennal, les dimensions sont différentes, ce n'est plus 35 mais 36 ou 37 ou 38, idem pour les lignes si vous rajoutez des horaires

L'idéal, c'est de renseigner les feuilles bases, les informations seront dispersées dans le classeur



dans la macro ventilation, l'instruction qui commence par FOR, donne les limites.
mais bon, il faut maitriser un minimum le langage VBA. Je vous conseille la lecture suivante

Dans le classeur ci-joint, une correction qui prend en compte les informations de ce fil, plus un bouton pour créer deux feuilles mariées, pour les éventuelles évolutions.
cdt
galougalou
Hello Galougalou,
Ta nouvelle version est sympa et plus simple pour les utilisateurs, un grand merci je vais la faire tester par ceux qui encodent.

Un grand merci pour cette évolution tu es top ....
 

djvinceathome

XLDnaute Nouveau
Hello Galougalou,
Hello Galougalou,
Ta nouvelle version est sympa et plus simple pour les utilisateurs, un grand merci je vais la faire tester par ceux qui encodent.

Un grand merci pour cette évolution tu es top ....

Ta nouvelle version est sympa et plus simple pour les utilisateurs, un grand merci je vais la faire tester par ceux qui encodent.

Un grand merci pour cette évolution tu es top ....
 

djvinceathome

XLDnaute Nouveau
Hello Galougalou,
Ta nouvelle version est sympa et plus simple pour les utilisateurs, un grand merci je vais la faire tester par ceux qui encodent.

Un grand merci pour cette évolution tu es top ....
Hello Galougalou,

Tip top ton fichier, toutefois, nous travaillons en réseau et nous aimerions que l'on puisse modifier le fichier par plusieurs utilisateurs , lorsque je mets en partage le fichier et que je veux ouvrir le fichier, j'ai un message d'erreur 1004, j'ai été dans les paramètres Excel activer les macro et vba. Mais le problème persiste. Peux tu svp y regarder svp?
 

Pièces jointes

  • Copie de Planning regie 2021.xlsm
    481.6 KB · Affichages: 0

djvinceathome

XLDnaute Nouveau
re



Dans la macro fusion_colonnes, le champ d'action est délimité. Il faut adapter les dimensions à vos besoins. suite à l'ajout Arsennal, les dimensions sont différentes, ce n'est plus 35 mais 36 ou 37 ou 38, idem pour les lignes si vous rajoutez des horaires

L'idéal, c'est de renseigner les feuilles bases, les informations seront dispersées dans le classeur



dans la macro ventilation, l'instruction qui commence par FOR, donne les limites.
mais bon, il faut maitriser un minimum le langage VBA. Je vous conseille la lecture suivante

Dans le classeur ci-joint, une correction qui prend en compte les informations de ce fil, plus un bouton pour créer deux feuilles mariées, pour les éventuelles évolutions.
cdt
galougalou
Hello Galougalou,

Tip top ton fichier, toutefois, nous travaillons en réseau et nous aimerions que l'on puisse modifier le fichier par plusieurs utilisateurs , lorsque je mets en partage le fichier et que je veux ouvrir le fichier, j'ai un message d'erreur 1004, j'ai été dans les paramètres Excel activer les macro et vba. Mais le problème persiste. Peux tu svp y regarder svp?
 

Pièces jointes

  • Copie de Planning regie 2021.xlsm
    481.6 KB · Affichages: 3

GALOUGALOU

XLDnaute Accro
re
Dans le classeur que vous avez posté, le code vba est protégé ainsi que les feuilles.
Difficile de savoir d'où vient le problème.
Basiquement, il semblerait que les feuilles planning déclenche l'erreur, ce qui me fait supposer que le code événement feuille doit être conflictuel.
Ouvrer votre classeur, déprotéger le vba, et supprimer le code suivant dans toutes les feuilles planning (il n'est pas indispensable)
VB:
Private Sub Worksheet_Activate()
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
sans garantie, mais je ne vois que ça, je ne suis pas un spécialiste des classeurs en réseau
cdt
galougalou
 

djvinceathome

XLDnaute Nouveau
P
re
Dans le classeur que vous avez posté, le code vba est protégé ainsi que les feuilles.
Difficile de savoir d'où vient le problème.
Basiquement, il semblerait que les feuilles planning déclenche l'erreur, ce qui me fait supposer que le code événement feuille doit être conflictuel.
Ouvrer votre classeur, déprotéger le vba, et supprimer le code suivant dans toutes les feuilles planning (il n'est pas indispensable)
VB:
Private Sub Worksheet_Activate()
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
sans garantie, mais je ne vois que ça, je ne suis pas un spécialiste des classeurs en réseau
cdt
galougalou
Merci pour ton explication, avais tu protégés le code vba ? Je vais essayer demain au bureau... Mais si non ton fichier est top un grand merci
 

djvinceathome

XLDnaute Nouveau
re
Dans le classeur que vous avez posté, le code vba est protégé ainsi que les feuilles.
Difficile de savoir d'où vient le problème.
Basiquement, il semblerait que les feuilles planning déclenche l'erreur, ce qui me fait supposer que le code événement feuille doit être conflictuel.
Ouvrer votre classeur, déprotéger le vba, et supprimer le code suivant dans toutes les feuilles planning (il n'est pas indispensable)
VB:
Private Sub Worksheet_Activate()
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    ActiveSheet.EnableSelection = xlUnlockedCells
End Sub
sans garantie, mais je ne vois que ça, je ne suis pas un spécialiste des classeurs en réseau
cdt
galougalou
Bjr Galougalou,

Je viens d'essayer ta procédure, on dirait une amélioration, toutefois le problème persiste, mais apparemment , c'est surtout une limite des possibilités du partage des fichiers dans excel. Après avoir essayé ta procédure, je fais la mise à jour et la fusion ne se fait plus. Il paraît selon le site microsoft , que la version Office 365 pourrait faire une co-edition ou co-auteur et que les macros pourraient fonctionner en réseau.

Comment retirer la protection VBA , lorsque je vais dans outil etc , il me dit que le projet ne peut pas être affiché. Du coup, dans la procédure, je n'ai pas fait cette action. cette action pourrait retirer le problème des macros. QU'en penses tu.
 

Discussions similaires