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

4macro-arturo.docx (61.90 Ko)

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 Sub

Inutile 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 Sub

Cdlt

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 Sub

Ok 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.

Rechercher des sujets similaires à "probleme defilement horizontal colonnes"