Problème de défilement horizontal des colonnes
Bonjour,
J’ai modifié mon tableau qui fait office de planning.
1/ Sur la feuille « PLANNING », lorsque je clique sur LUNDI, la page s’affiche bien avec la colonne BU juste après la colonne B.
Quand je clique MARDI, c’est la colonne DD qui s’affiche après la colonne B et c’est toujours ce que je souhaite.
Par contre, lorsque je reviens sur LUNDI, ce n’est plus la colonne BJ qui s’affiche juste après la colonne B comme je le voudrais.
Ce problème est valable pour toutes les dates de chaque bouton Orange à gauche des dates.
J’ai bien essayé de déchiffrer le codage VBA pour comprendre l’interaction, mais je n’ai pas les compétences pour régler ce problème.
2/ Dans la feuille « BÉNÉVOLES » je souhaite également que les colonnes suivantes (O, AW, CE, DM, EU, GC, HK, IS, KA et LI) s’affichent juste après la colonne B en cliquant sur les "pseudo boutons" de dates que j'aimerai qu'ils aient une vraie fonction de bouton.
S'ils ne peuvent "devenir boutons" je peux créer des boutons comme sur la feuille PLANNING.
Pouvez-vous m’aider sur ces deux points ?
Cordialement
Francis
Bonjour,
Votre fichier modifié pour la feuille "PLANNING"
Pour la feuille "BENEVOLES", ajoutez les boutons, (ne créez pas de liens hypertextes) et renvoyez le fichier, je vous ferais la même chose.
Cdlt
Bonjour, Salut Arturo
Ci joint ma solution (pour le planning)
A+ François
Bonjour Arturo,
Merci de ton aide.
Je viens de refaire le tableau de la feuille BENEVOLES avec les boutons à la place des liens hypertextes.
Je voudrais la correspondance entre les boutons et les lignes comme cela :
GEC ACCUEIL – Ligne 172
ATELIER DÉPART – Ligne 6
POSEURS – Ligne 48
PARKING – Ligne 214
BUVETTE – Ligne 90
MONTAGE ARÉNA – Ligne 256
LOGISTIQUE SUR SITE - Ligne 375
LOGISTIQUE ANNEXE – Ligne 457
ARRIVÉE – GARDERIE – Ligne 323
Je voudrais la correspondance entre les boutons et les colonnes comme cela :
INFORMATIONS BÉNÉVOLES – Colonne C (à droite de la Colonne B)
SAMEDI 24 – Colonne AW
DIMANCHE 25 – Colonne CE
LUNDI 26 - Colonne DM
MARDI 27 – Colonne EU
MERCREDI 28 – Colonne GC
JEUDI 29 – Colonne HK
VENDREDI 30 – Colonne IS
SAMEDI 31 – Colonne KA
DIMANCHE 01 - Colonne LI
Encore merci.
Bonjour François,
Je viens de voir ta solution juste après avoir envoyé mon fichier à Arturo.
Je n'ai pas réussi à utiliser les 2 déroulants qui semblent ne pas être actif.
En les utilisant, je verrai si je préfère garder ma solution de boutons visibles en permanence, ou ta solution de bouton déroulant.
Dans tous les cas, un grand merci pour ta solution.
Francis
La solution avec les boutons:
Attention les dates doivent être sur la même ligne (la ligne 2, ce que j'ai fait pour la feuille "BENEVOLES") pour chaque feuille, ce qui permet d'avoir la même macro (très courte), voir ci-dessous:
Option Explicit
Sub Bouton_Planning()
Dim Nom_Bouton As String, Texte As String
Dim Bouton As Shape
Dim Col
Dim Pos_Col As Long
On Error GoTo Sortie
Nom_Bouton = Application.Caller 'renvoie le nom du bouton qui a appelé la macro
'Récupère le nom du bouton sur la feuille active
Set Bouton = ActiveSheet.Shapes(Nom_Bouton)
'Récupère le texte du bouton
Texte = Bouton.TextFrame.Characters.Text
'recherche la position de date(texte) sur la ligne 2
With ActiveSheet.Rows(2)
Set Col = .Find(Texte, lookat:=xlPart)
If Not Col Is Nothing Then
Pos_Col = Col.column - 2
ActiveWindow.ScrollColumn = Pos_Col
End If
End With
Sortie:
End Sub
Cdlt
Merci Arturo,
Petite question : je dois recopier juste la macro dans le rectangle bleu en modifiant le numéro de la ligne, ou je dois recopier l'ensemble de la macro (rectangle rouge) toujours en modifiant la ligne ?
Sur la feuille PLANNING, quand je clique sur les boutons Orange de gauche, ça ne m'affiche pas la bonne colonne.
Exemple : Boutons POSEURS, ça affiche en premier la colonne AN alors qu'il faudrait AL.
Merci
Arturo,
Désolé, j’avais mal interprété ton message.
C’est fait, j’ai mis les dates sur la ligne 2.
Sur la feuille BENEVOLES, les boutons de dates marchent bien.
Par contre les boutons de Poste sur la gauche renvoient sur la feuille PLANNING au lieu de rester sur la feuille BENEVOLES.
Sur la feuille PLANNING, pour les boutons de dates, c’est ok.
Pour les boutons de Poste, il n’affiche pas la page à la bonne colonne.
Exemple : Boutons POSEURS affiche la colonne AN alors qu’il faudrait la colonne AL
Merci de ton aide.
Arturo,
J’ai apporté des modifications à mon planning.
Ça m’a déréglé les actions sur les boutons, alors que je pensais que mes modifications n’auraient pas d’interactions sur les boutons.
Sur la feuille PLANNING, les boutons de DATES fonctionnent bien.
Par contre, pour les boutons de POSTES, le renvoi sur les colonnes voulues est aléatoire, avec parfois la colonne C qui s’affiche à droite de la colonne B, ce qui est bon, mais parfois c’est la colonne et déréglé.
Il faudrait que le bouton GEC fasse apparaitre la colonne D qui s’affiche à la place de la C et d’autres fois la colonne E
Tout cela sans que je touche aux codes BVA.
Je pense que ça vient de la feuille BÉNÉVOLES dont les boutons de Postes sont déréglés.
Lorsque je clique dessus, ça me renvoi sur la feuille PLANNING au lieu de rester sur BENEVOLES.
Petite question : Les colonnes C et D, sont destinées aux NOMS et PRENOMS.
Lorsque je mets des noms, pour qu’ils apparaissent dans les colonnes O – P puis AW – AX..ect…, il me faut aller dans la macro pour activer la macro de la page BENEVOLES.
Est-ce qu’il y a une solution pour que l’affichage soit automatique dans les colonnes O – P…… sans avoir à lancer l’exécution de la macro ?
Merci de votre aide.
Francis
Bonsoir,
Désolé pour la réponse tardive mais je suis très occupé.
Pour les boutons de POSTE à gauche, je ne m'en suis pas occupé. s'ils marchent bien pour la feuille planning, alors conservez vos macros, sans préciser la feuille; exemple:
Sub M_Poseurs()
Dim J As Range
Set J = Cells(2, ActiveCell.column)
If J.MergeCells Then Col = J.MergeArea.Cells(1, 1).column
Application.Goto Cells(24, Col - 1), 1
End SubInutile de mettre entre parenthèses "ActiveCell.column" dans la ligne "Set J = Cells(2, (ActiveCell.column))"
Pour le décalage (colonne précédente) , il suffit de l'indiquer dans la ligne "Application.Goto Cells(24, Col - 2), 1"
Comme je n'ai pas trop de temps devant moi pour vérifier, je vous laisse le soin d'appliquer ces modifs, peut-être qu'il y aura quelques petits ajustements à faire!
Cdlt
Ok Arturo, vous regarderez cela lorsque vous pourrez.
Je viens d'appliquer vos modifications.
Il y a du mieux, mais aussi des disfonctionnements avec des colonnes qui s'affichent anormalement dans les 2 feuilles PLANNING et BENEVOLES alors que j'ai bien mis le code 2 pour l'appel de la bonne colonne.
Encore merci.
Arturo,
Je vous adresse un tableau qui te montre ce que je souhaite.
C’est idem pour les feuilles PLANNING et BÉNÉVOLES.
Vous allez voir qu’actuellement, en passant de la feuille BENEVOLES à la feuille PLANNING, lorsque l’on clique sur un bouton de Poste de la feuille PLANNING, une fenêtre d’erreur apparait.
J’ai rajouté un bouton INFOS qui pour l’instant n’a pas de macro.
Il faut le faire correspondre à la colonne C comme noté dans mon tableau.
Un grand merci.
Francis
Bonjour,
Me dire: "des colonnes qui s'affichent anormalement", ne me m'aide pas beaucoup, il faut plutôt me décrire ce qui ne va pas et comment cela doit-il être..
L'autre problème, c'est que vous n'avez jamais fait la description de la façon dont on doit utiliser le fichier. ce qui aurait permit de donner une solution adéquate.
D'après ce que je crois comprendre, il faut dans un premier temps cliquer sur le bouton de la date(colonne B) puis ensuite, cliquer sur le bouton des postes (colonne A) ce qui revient à dire, on filtre les dates puis, on filtre les postes qui correspondent à cette date. si c'est bien cela alors, voici la macro modifiée (concerne uniquement le module 2, les macros du module 1 ne sont pas modifiées):
Option Explicit
Option Compare Text
Sub Bouton_Planning()
Dim Nom_Bouton As String, Texte As String
Dim Bouton As Shape
Dim Col
Dim Pos_Col As Long
On Error GoTo Sortie
Nom_Bouton = Application.Caller 'renvoie le nom du bouton qui a appelé la macro
'Récupère le nom du bouton sur la feuille active
Set Bouton = ActiveSheet.Shapes(Nom_Bouton)
'Récupère le texte du bouton
Texte = Bouton.TextFrame.Characters.Text
If Texte = "INFOS" Then
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
Else
'recherche la position de date(texte) sur la ligne 2
With ActiveSheet.Rows(2)
Set Col = .Find(Texte, lookat:=xlPart)
If Not Col Is Nothing Then
Pos_Col = Col.column - 2
ActiveWindow.ScrollColumn = Pos_Col
Cells(2, Col.column).Select 'on sélectionne la colonne trouvée
End If
End With
End If
Sortie:
End SubCdlt
Bonjour Arturo,
Je vous adresse en pièce jointe mes explications sur le schéma d'affichage souhaité de mon planning ainsi que le planning avec votre nouvelle macro.
Un grand merci.
Francis
Quand il y une détection d'erreur, il faut cliquer sur "Débogage" pour voir quelle est la ligne en défaut.
Le défaut apparaît lorsque vous cliquez sur un poste et que la colonne correspondante n'est pas trouvée, donc Col="", dans ce cas il faut gérer l'erreur, exemple pour la macro "M_Poseurs"
Sub M_Poseurs()
Dim J As Range
Set J = Cells(2, ActiveCell.column)
If J.MergeCells Then Col = J.MergeArea.Cells(1, 1).column
If Col <> "" Then
Application.Goto Cells(49, Col - 2), 1
Else
Application.Goto Cells(49, 3), 1 'si Col est vide alors, on impose la colonne 3
End If
End SubOk Arturo, je vais essayer de régler les blocages lorsque la fenêtre de faut s'affichera.
Pour mon schéma d'utilisation demandé, c'est possible une ou des macros pour cela ?
Arturo,
Je viens de vous faire un schéma plus précis de mes besoins, avec des commentaires sur l'affichage souhaité.
Dites moi si c'est possible.
Merci.
Francis
Bonjour,
Voici le fichier modifié:
Cdlt
Bonjour Arturo,
Super, c'est vraiment ce que je souhaitais.
Seul petite chose à régler si c'est possible :
Lorsque je clique sur le bouton INFOS, j'aimerais que le poste consulté précédemment ne change pas.
Exemple : Si je suis sur le Poste BUVETTE, il faudrait en cliquant sur INFOS, rester sur BUVETTE en ligne C91 alors que là ça remonte d'office en ligne C7.
Vraiment merci de votre aide.
Francis
Voilà,
Si cela vous convient, veuillez passer le sujet en "RESOLU", Merci.