SOS Macro placement commentaires

Gydo

XLDnaute Nouveau
Bonjour à tous et merci d'avance de votre aide

Je m'explique, je travailler sur un inventaire avec images en commentaires, j'ai créé un bouton bascule me permettant de n'afficher que le nom du produit en A, sa description ainsi que la photo en commentaire en B
Avec la bascule je masque C D E F G, et j'aimerais que chaque commentaire soit aligné sur la cellule correspondante

ex: commentaire B4 accolé à l'angle supérieur droit de B4, et ceci en chaine tout le long de B

j'ai essayé plusieurs macros mais n'étant pas un expert VBA je n'y arrives pas

Merci de votre aide
 
Dernière édition:

Gydo

XLDnaute Nouveau
Re : SOS Macro placement commentaires

que veux tu exactement comme fichier joint?je peux joindre mon travail en cours si tu le désires
en fait je cherche à ce que les commentaires soient tous uniformément collés à la cellule attenante, afin que mon commercial puisse avoir un visuel en clientèle.
J'aimerais éviter de tout avoir à faire à la main sur les 400 lignes

pour être plus précis il faudrait que les commentaires soient tous en haut du tableur, collés à la cellule de la deuxième ligne (ma première étant figée)
suis-je assez clair?
 
Dernière édition:
G

Guest

Guest
Re : SOS Macro placement commentaires

Bonjour Gydo, le fil,

Un fichier exemple <50ko sera amplement suffisant. Avec quelques commentaires et explications plus précises, peut-être la macro qui cache ou affiche les colonnes si elle est utile à la résolution du problème.

P.S. Conformémént à la charte du forum, il serait bien que tu ajoutes des signes de courtoisies à chacun de tes posts. Re, Salut, A+, A bientôt etc. Autant prendre les bonnes habitudes tout de suite.

A bientôt
 

Gydo

XLDnaute Nouveau
Re : SOS Macro placement commentaires

Re,
donc je vous ai préparé un tableur test avec le type de manip que j'aimerais réaliser
merci de m aider je pense revenir souvent vu mon travail^^

en fait il faudrait que l'image soit toujours le plus haut possible, juste en dessous de ma ligne figée
à toute
 

Pièces jointes

  • test.xlsm
    38.1 KB · Affichages: 118
  • test.xlsm
    38.1 KB · Affichages: 130
  • test.xlsm
    38.1 KB · Affichages: 134
Dernière édition:

Gydo

XLDnaute Nouveau
Re : SOS Macro placement commentaires

Bonjour,

Visiblement personne n'a d'idées, je cherche probablement à faire quelque chose de trop difficile pour une macro, je vais donc éditer mes 500 commentaires à la main

Bonne journée
Ciao
 
G

Guest

Guest
Re : SOS Macro placement commentaires

Bonjour,

Nous ne sommes pas aux pièces. Patiente....

ton fichier ne contient qu'un seul commentaire et on ne sait pas ce qu'il représente exactement: ce que tu as au départ ou ce que tu veux à l'arrivée.

Il serait préférable de nous mettre plusieurs commentaire avec leur position de départ et ensuite sur une autre feuille les mêmes avec leur position après traitement de la macro.

Ci-dessous, je n'ai fait que supposer que c'était ce que tu voulais après traitement.

Code:
Sub PositionnerCommentaires()
    Dim cmt As Comment
    For Each cmt In Sheets("Feuil1").Comments
        With cmt
            If .Parent.Column = 2 Then
               .Shape.Left = .Parent.Left + .Parent.ColumnWidth
                .Shape.Top = .Parent.Top
            End If
        End With
    Next cmt
End Sub

Et en prime ton module de feuil1 ré-écrit:
Code:
Option Explicit
 
' Colonnes à masquer. Noms des colonnes en notation A1 séparés par des virgules.
Const ColonneAMasquer As String = "C1,D1,E1,F1,G1"
 
Private Sub BoutonBascule_Click()
 
  If BoutonBascule.Value Then
 
    ' Affichage des colonnes.
    Feuil1.Range(ColonneAMasquer).EntireColumn.Hidden = False
    BoutonBascule.Caption = "Masquer"
 
  Else
 
    ' Masquage des colonnes.
    Feuil1.Range(ColonneAMasquer).EntireColumn.Hidden = True
    BoutonBascule.Caption = "Afficher"
 
  End If
 
End Sub

Et en prime 2 encore plus court:

Code:
Option Explicit
' Colonnes à masquer. Noms des colonnes en notation A1 séparés par des virgules.
Const ColonneAMasquer As String = "C1,D1,E1,F1,G1"
 
Private Sub BoutonBascule_Click()
 
    ' Affichage des colonnes.
    With Feuil1.Range(ColonneAMasquer).EntireColumn
        .Hidden = Not BoutonBascule.Value
        If .Hidden Then BoutonBascule.Caption = "Afficher" Else BoutonBascule.Caption = "Masquer"
    End With
End Sub

A+
 
Dernière modification par un modérateur:

Gydo

XLDnaute Nouveau
Re : SOS Macro placement commentaires

Bonjour Hasco

Je te remercie de ta réponse en fait j'ai peu après trouvé la solution à mon problème

en faisant:
Sub Format_Commentaires()

For Each C In Cells.SpecialCells(xlCellTypeComments)
With C.Comment.Shape
.Left = C.Left + C.Width
.Top = C.Top
.Placement = xlMoveAndSize
End With
Next

For I = 1 To ActiveSheet.Comments.Count
ActiveSheet.Comments(I).Shape.TextFrame.AutoSize = True
Next

Dim cmt As Comment
For Each cmt In ActiveSheet.Comments
With cmt.Shape
.Width = 545
.Height = 345
End With
Next

End Sub


PS: ce faisant, je ne vous crois pas aux pièces, étant un énorme débutant en VBA j'imaginais mon problème facile, inutile de te (vous?) sentir offusqués ou pressés
après j'ai créé cette formule qui me convient, même si je doute qu'elle est remplie d'erreurs étant donné que je ne connais rien à VBA et à la programmation

PPS: par ailleurs je te remercie de la correction apportée à ma formule de bascule

PPSS: si jamais tu ne réagis plus sur ce thread je te dis à une prochaine fois!
 
Dernière édition:
G

Guest

Guest
Re : SOS Macro placement commentaires

Re,

Eh bien chapeau. Une toute petite correction:
TextFrame.AutoSize peut être traité dans la même boucle.
Code:
For Each c In Cells.SpecialCells(xlCellTypeComments)
    With c.Comment.Shape
        .Left = c.Left + c.Width
        .Top = c.Top
        .Placement = xlMoveAndSize
        .TextFrame.AutoSize = True
    End With
Next

Par contre je n'ai pas trop compris pourquoi ensuite tu leur attribues une largeur et une hauteur fixe. Cela pourrait être fait également dans la même boucle.

A+ et bonne programation.
 

Gydo

XLDnaute Nouveau
Re : SOS Macro placement commentaires

Re salut!

A vrai dire n'y connaissant rien en programmation j'ai du mal à raisonner par boucle et à bien gérer les For Next, With End With, etc
Pour la hauteur et largeur fixe c'est pour que mes photos soient toutes du même format pour ne laisser aucun blanc dans le tableur, qui servira par la suite à un commercial comme inventaire imagé
voilà à +
 
G

Guest

Guest
Re : SOS Macro placement commentaires

Bonjour,

Alors peut-être que ceci conviendrait mieux:

Code:
For Each c In Cells.SpecialCells(xlCellTypeComments)
    With c.Comment.Shape
        .Left = c.Left + c.Width
        .Top = c.Top
        .width=545
        .height=345
        .Placement = xlMoveAndSize
     End With
Next

Bonne journée
 

Statistiques des forums

Discussions
312 211
Messages
2 086 289
Membres
103 170
dernier inscrit
HASSEN@45