ascenseur ou chariot Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
w
wall
Membre fidèle
Membre fidèle
Messages : 178
Inscrit le : 10 décembre 2014
Version d'Excel : 2010

Message par wall » 11 novembre 2017, 06:38

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
N
NCC 1701
Membre fidèle
Membre fidèle
Messages : 449
Appréciation reçue : 1
Inscrit le : 4 septembre 2016
Version d'Excel : 95..2013 PC FR

Message par NCC 1701 » 11 novembre 2017, 06:58

(..)

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" ?
Cordialement
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'713
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 11 novembre 2017, 07:46

Bonjour à tous,

une possibilité,
wall-chariotV2.xlsm
(24.04 Kio) Téléchargé 11 fois
Vive ces nouvelles saisons qui nous colorent.
isabelle
w
wall
Membre fidèle
Membre fidèle
Messages : 178
Inscrit le : 10 décembre 2014
Version d'Excel : 2010

Message par wall » 11 novembre 2017, 09:42

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
chariotV3.xlsx
(17.53 Kio) Téléchargé 6 fois
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 11 novembre 2017, 09:48

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
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 11 novembre 2017, 10:03

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é
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
w
wall
Membre fidèle
Membre fidèle
Messages : 178
Inscrit le : 10 décembre 2014
Version d'Excel : 2010

Message par wall » 11 novembre 2017, 10:12

Salut à tous j'ai fait les modifs mais je ne vois pas de différence. ???
Cordialement
chariotV5.xlsm
(22.55 Kio) Téléchargé 4 fois
N
NCC 1701
Membre fidèle
Membre fidèle
Messages : 449
Appréciation reçue : 1
Inscrit le : 4 septembre 2016
Version d'Excel : 95..2013 PC FR

Message par NCC 1701 » 11 novembre 2017, 10:32

(..)

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"
Cordialement
w
wall
Membre fidèle
Membre fidèle
Messages : 178
Inscrit le : 10 décembre 2014
Version d'Excel : 2010

Message par wall » 11 novembre 2017, 10:47

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
N
NCC 1701
Membre fidèle
Membre fidèle
Messages : 449
Appréciation reçue : 1
Inscrit le : 4 septembre 2016
Version d'Excel : 95..2013 PC FR

Message par NCC 1701 » 11 novembre 2017, 10:51

(..)

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

Dans quelle cellule tu "rentres un nom avec nouveau texte" ?
Cordialement
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message