Ascenseur ou chariot

Bonjour, oui effectivement c'est une possibilité. Mais important aussi de pouvoir imprimer la feuille parce que j'aurai un tableau ou graphique à côté.

Cordialemnt

(..)

Ok pour les "éléments à côté" !

Lors de l'impression toutes les cellules doivent être visibles "en totalité ou seulement celle qui est "zoomée" ?

Bonjour à tous,

une possibilité,

12wall-chariotv2.xlsm (24.04 Ko)

Salut à tous,

J'ai remis avec plus de détail ma feuille à imprimer. Merci les amis de remuer vos méninges pour trouver une solutionner pas si simple.

Je peux éventuellement agrandir l'une des deux cellules pour afficher la totalité du texte. Il reste tout de même la C17 qui cause souci.

A l'impression je dois avoir la feuille entière et non seulement le zoom, merci à vous

Désolé Sab c'est compliqué l'idée de la macro pour afficher le reste de la feuille.

Cordialement

8chariotv3.xlsx (17.53 Ko)

Bonjour,

Une autre piste, avec un commentaire.

0 la sélection de la cellule C8 (donc la fusion), le commentaire est créé si il n'existe pas puis positionné sur la cellule et dimensionné puis rendu visible (tout le temps affiché) et au clic sur une autre cellule, il est caché et déplacé afin qu'il soit affiché à coté au survol :

A mettre dans le module de la feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With Range("C8")

        If Target.Address(0, 0) = "C8:E18" Then

            If .Comment Is Nothing Then .AddComment

            .Comment.Text .Value
            .Comment.Visible = True
            .Comment.Shape.Height = 350
            .Comment.Shape.Width = Target.Width
            '.Comment.Shape.TextFrame.AutoSize = True'<--- plutôt en longueur :o(
            .Comment.Shape.Top = Target.Top
            .Comment.Shape.Left = Target.Left
            .Comment.Shape.DrawingObject.Interior.ColorIndex = 2

        Else

            .Comment.Shape.Left = Target.Left + Target.Width
            .Comment.Visible = False
            .Comment.Shape.DrawingObject.Interior.ColorIndex = 19

        End If

    End With

End Sub

A mettre dans le module du classeur pour l'impression afin de pouvoir imprimer le commentaire comme il se trouve sur la feuille. Pour cela, il faut sélectionner la cellule avant de lancer l'impression afin d'afficher le commentaire. Adapter le nom de la feuille :

Private Sub Workbook_BeforePrint(Cancel As Boolean)

    ActiveSheet.PageSetup.PrintComments = IIf(ActiveSheet.Name = "Feuil1", 16, -4142)

End Sub

Re,

Donc, adapté à ton nouveau classeur avec une correction pour gérer l'erreur dans la partie Else si le commentaire n'existe pas :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With Range("C17")

        If Target.Address(0, 0) = "C17:E20" Then

            If .Comment Is Nothing Then .AddComment

            .Comment.Text .Value
            .Comment.Visible = True
            .Comment.Shape.Height = 350
            .Comment.Shape.Width = Target.Width
            '.Comment.Shape.TextFrame.AutoSize = True'<--- plutôt en longueur :o(
            .Comment.Shape.Top = Target.Top
            .Comment.Shape.Left = Target.Left
            .Comment.Shape.DrawingObject.Interior.ColorIndex = 2

        Else

            If Not .Comment Is Nothing Then

                .Comment.Shape.Left = Target.Left + Target.Width
                .Comment.Visible = False
                .Comment.Shape.DrawingObject.Interior.ColorIndex = 19

            End If

        End If

    End With

End Sub

Pour le classeur, le même code que précédemment posté

Salut à tous j'ai fait les modifs mais je ne vois pas de différence. ???

Cordialement

4chariotv5.xlsm (22.55 Ko)

(..)

Alors voici l'idée

D'abord les procédures :

=>Dans ThisWorkbook

Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveSheet.Shapes.Range(Array("image1")).Visible = msoTrue
    ActiveSheet.Shapes.Range(Array("image2")).Visible = msoTrue
End Sub

=>Feuil1 (celle qui contient le graph)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If (Target.Row = 3) And (Target.Column = 3) Then
        ActiveSheet.Shapes.Range(Array("image1")).Visible = msoTrue
        ActiveSheet.Shapes.Range(Array("image2")).Visible = msoFalse
        Cells(1, 1).Select
    End If
    If (Target.Row = 17) And (Target.Column = 3) Then
        ActiveSheet.Shapes.Range(Array("image1")).Visible = msoFalse
        ActiveSheet.Shapes.Range(Array("image2")).Visible = msoTrue
        Cells(1, 1).Select
    End If
End Sub

=> Dans un module non événement

Sub image1_Cliquer()
    ActiveSheet.Shapes.Range(Array("image1")).Visible = msoFalse
    Cells(1, 1).Sel ect
End Sub
Sub image2_Cliquer()
    ActiveSheet.Shapes.Range(Array("image2")).Visible = msoFalse
    Cells(1, 1).Select
End Sub

Maintenant l'explication :

Dans feuil2 qui contient les infos "à voir"

tu fais une photo (avec l'outil photo d'Excel) de la cellule concernée que tu copie dans la feuil1

etc. pour toutes les cellules concernées

tu positionnes les images où tu veux pour quelles soient visibles dans la zone d'impression

tu les nommes (cf. code imageN)

tu adaptes la procédure Selection_Change en fonction de la cellule où tu indique les "cellules résumés"

Merci beaucoup, mais cette procédure doit être répétée à chaque fois que je rentre un nom avec un nouveau texte, etc ???? C'est un fichier qui va être exploité par d'autres personnes, ça ne va pas être possible j'imagine!

Je me trompe peut être ?

Cordialement

(..)

Qu'Est-ce que tu veux dire par là ?

Dans quelle cellule tu "rentres un nom avec nouveau texte" ?

Salut

Les textes de la feuille2 vont être modifiés comme les noms et notes de la feuille 1 selon les enregistrements

cdl

(..)

Alors théoriquement (pour la feuil2) si tu as pris toutes les photos des cellules concernées, et qu'elles sont placées sur la feuil1 il n'y aura aucun problème... tu peux modifier les textes de la feuil2 à volonté.

La seule condition c'est que les cellules de la feuil2 contenant les textes soient en "autofit" c'est à dire dimensionnée pour que l'ensemble du texte reste visible !

Bonjour,

Tout cela me marrait plus compliqué, je pensais que c'était une simple affaire.

Je pense que je vais réduire la taille de la police et au pire imprimer sur deux feuilles. A ce moment là, il faut installer une barre qui s'affichera automatiquement si le texte dépasse l'espace de la cellule

Si pas de solution, je passe à autre chose

Cordialement

7chariotv6.xlsm (22.12 Ko)

Re,

Salut à tous j'ai fait les modifs mais je ne vois pas de différence. ???

Il te faut mettre le code dans le module de la feuille car c'est une procédure événementielle et quand tu postes un fichier, évites les protections de feuille ou classeur !

Je poste la version 3 (qui lui n'était pas protégé) avec les deux procédures événementielles et pour tester, tu cliques dans la cellule C17 et ensuite, tu fais aperçu avant impression pour voir le résutat


Oups,

Autant pour moi, je n'avais pas fais attention que tu avais mis le mdp

13chariotv3.xlsm (26.24 Ko)

Bonsoir,

Je suis épaté Theze, c'est le résultat que je souhaitais. Seul inconvénient, il faut cliquer dessus pour que le test soit visible à l'impression. Mais c'est top.

Ma question : est ce qu'on peut faire pour les deux cellules?

Bravo, chapeau et merci encore à tous, surtout au shaman de danse avec le VBA Dhany

Cordialement

wall a écrit :

Bravo, chapeau et merci encore à tous, surtout au shaman de danse avec le VBA Dhany

Le shaman de danse avec le VBA est ravi d'avoir pu t'aider ; et je félicite aussi Theze

pour la bonne médecine qu'il t'a apportée ; lui aussi être un grand sorcier VBA !!!

longue vie à ta squaw et à tous tes papooses ! Ugh ! dhany

Merci beaucoup à bientôt pour une nouvelle aventure

Bonjour,

Seul inconvénient, il faut cliquer dessus pour que le test soit visible à l'impression. Mais c'est top

Ma question : est ce qu'on peut faire pour les deux cellules?

Dans ce cas, il suffit d'incorporer le code paramétrant les commentaires dans la procédure événementielle "BeforePrint()" du classeur :

Private Sub Workbook_BeforePrint(Cancel As Boolean)

    With Range("C3")

        If .Comment Is Nothing Then .AddComment

        .Comment.Text .Value
        .Comment.Visible = True
        .Comment.Shape.Height = 270 '<--- adapter la hauteur du commentaire
        .Comment.Shape.Width = Range("C3:E3").Width
        .Comment.Shape.Top = Range("C3:E3").Top
        .Comment.Shape.Left = Range("C3:E3").Left
        .Comment.Shape.DrawingObject.Interior.ColorIndex = 2

    End With

    With Range("C17")

        If .Comment Is Nothing Then .AddComment

        .Comment.Text .Value
        .Comment.Visible = True
        .Comment.Shape.Height = 350 '<--- adapter la hauteur du commentaire
        .Comment.Shape.Width = Range("C17:E17").Width
        .Comment.Shape.Top = Range("C17:E17").Top
        .Comment.Shape.Left = Range("C17:E17").Left
        .Comment.Shape.DrawingObject.Interior.ColorIndex = 2

    End With

    ActiveSheet.PageSetup.PrintComments = IIf(ActiveSheet.Name = "Feuil1", 16, -4142)

End Sub

Ce qui aura pour effet de rendre imprimable ces derniers (attention aux hauteurs pour que l'un ne cache pas l'autre) mais comme il n'existe pas de procédure "AfterPrint()", la procédure "SelectionChange()" peut être utilisée pour cacher le commentaire :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    With Range("C3")

        If Not .Comment Is Nothing Then

            .Comment.Shape.Left = Range("C3:E3").Left + Range("C3:E3").Width
            .Comment.Visible = False
            .Comment.Shape.DrawingObject.Interior.ColorIndex = 19

        End If

    End With

    With Range("C17")

        If Not .Comment Is Nothing Then

            .Comment.Shape.Left = Range("C17:E17").Left + Range("C17:E17").Width
            .Comment.Visible = False
            .Comment.Shape.DrawingObject.Interior.ColorIndex = 19

        End If

    End With

End Sub

Et merci pour tes remerciements

Bonjour à tous salut Theze,

désolé pour le retard, j'ai changé le code et je ne dois pas bien saisir la nuance. Un popup s'affiche au passage de la souris sur la C17 et pas sur la C3.

A l'impression les textes ne s'affichent pas. Je pense avoir mal rentré le code, à vérifier svp!

Merci encore

Cordialement

3chariotv6.xlsm (25.41 Ko)

Sur un de tes classeurs Feuil1 est mal orthographié, vérifie le nom de la feuille

Rechercher des sujets similaires à "ascenseur chariot"