XL 2016 Problème avec For Each et plage

rodger85

XLDnaute Nouveau
Bonjour
j'ai un Problème avec For Each et plage
je m'explique Quand je change de ligne il faut que je cache mes commentaires sur cette ligne Active de F à AZ
et quand j'arrive sur la nouvelle ligne il faut que de F à Z les commentaires soit visible mais pas sur AF à AZ

j'ai cette macro qui marche mais quand je change de ligne cela affiche mes commentaires de F à AZ
Dim ct As Comment
For Each ct In ActiveCell.Parent.Comments
ct.Visible = False
If ct.Parent.Row = Selection.Row Then
ct.Visible = True
End If
Next ct

Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Bonjour @rodger85 , le fil


Depuis ton inscription (en 2016), tu n'as pas acquis le réflexe de joindre un petit fichier exemple pour illustrer question ?
(Ne serait-ce que pour gain de rapidité: cela évite à N répondeurs potentiels de devoir récréer un fichier qui existe déjà sur ton PC)
 

rodger85

XLDnaute Nouveau
je suis entièrement d'accord avec vous ,dés fois je le fais quand cela est possible
mais vu la structure de mon projet qui avant était en array et maintenant j'essaye de le faire en Scroll horizontal et il y a tellement de macro imbriquer entres elles qu'il m'a paru que la macro que j'ai mis était suffisante .
à cette macro il faut juste rajouter des plages , j'ai essayé mais sans résultat
et pour tout dire j'ai un PC avec mes logiciels et un autre PC pour le Net juste par sécurité
je vais essayer de le faire
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

En attendant ton fichier, je te propose ceci :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'
Dim c As Range, ZoneComplete As Range

    If Target.Count <> 1 Then Exit Sub
    Set ZoneComplete = ActiveSheet.Range("A1:F7")
    If Intersect(Target, ZoneComplete) Is Nothing Then Exit Sub

    For Each c In ZoneComplete
        If Not c.Comment Is Nothing Then c.Comment.Visible = (c.Row = ActiveCell.Row)
    Next

End Sub
 
Dernière édition:

rodger85

XLDnaute Nouveau
Merci TooFatBoy
votre macro marche bien pour la première Zone De E à J
maintenant il me reste la 2° Zone de M à P à afficher quand je clic sur la cellule
plus d'explication dans le fichier joint
 

Pièces jointes

  • test ouverture comment.xlsm
    19.4 KB · Affichages: 4

TooFatBoy

XLDnaute Barbatruc
Quand je change de ligne il faut que je cache mes commentaires sur cette ligne Active de F à AZ
et quand j'arrive sur la nouvelle ligne il faut que de F à Z les commentaires soit visible mais pas sur AF à AZ.
Je t'avoue que je n'avais pas bien compris ce qu'il fallait faire avec tes trois plages F:AZ, F:Z et AF:AZ, ni avec la plage AA:AG, mais je pensais qu'un exemple pouvait te permettre d'adapter le fonctionnement à ton problème.

Je regarderais ton fichier quand je serais sur mon PC. 😉
 

patricktoulon

XLDnaute Barbatruc
Bonjour
j'ai un Problème avec For Each et plage
je m'explique Quand je change de ligne il faut que je cache mes commentaires sur cette ligne Active de F à AZ
et quand j'arrive sur la nouvelle ligne il faut que de F à Z les commentaires soit visible mais pas sur AF à AZ

j'ai cette macro qui marche mais quand je change de ligne cela affiche mes commentaires de F à AZ
Dim ct As Comment
For Each ct In ActiveCell.Parent.Comments
ct.Visible = False
If ct.Parent.Row = Selection.Row Then
ct.Visible = True
End If
Next ct

Merci d'avance
bonjour
juste en passant je réponds a la question de base
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ct As Comment
For Each ct In ActiveCell.Parent.Comments
ct.Visible = Not Intersect(ct.Parent, Range("AF:AZ").Rows(Target.Row)) Is Nothing
Next ct
End Sub
 

TooFatBoy

XLDnaute Barbatruc
Il faudrait être un peu plus précis si tu veux qu'on te ponde exactement ce que tu veux.

Quand la ligne active est sur E5 les commentaires de F à J doivent s'afficher (c'est le cas)
Je suppose que tu veux dire : ActiveCell dans E5:J5 affiche les commentaires dans F5:J5.


mais quand je clic sur M5 le commentaire de M5 doit s'afficher sans enlever ceux de E5 à J10
Uniquement pour M5, ou pour ActiveCell dans M5: P5 ?
Pourquoi E5:J10 ???


et quand je clic sur M6 le commentaire de M6 doit s'afficher sans enlever ceux de E5 à J10 mais M5 doit S'enlever
Il n'y a rien en M6... est-ce que tu veux dire M10 ?


Et si Je Clic sur E10 tous les commentaires de E5 à P5 doivent s'enlever
OK, là c'est à peu près clair, même si je suppose qu'en fait c'est ActiveCell dans E10:J10.


ce que j'arrive à faire avec deux feuilles en Array mais pas avec une seule feuille
Là, je ne comprends pas.


Au final, quand ActiveCell est dans :
- Ex:Jx ça doit afficher les commentaires de Fx:Jx
- Mx: Px ça doit afficher les commentaires de Fx:Jx et de ActiveCell

C'est ça ??? 🤔
 

TooFatBoy

XLDnaute Barbatruc
Une proposition en pièce jointe.

Il y a deux macros différentes, mais je pense que c'est la macro n° 2 qui convient le mieux à ce que je devine de ton problème.
 

Pièces jointes

  • test-ouverture-comment_(TooFatBoy-v1).xlsm
    21.2 KB · Affichages: 1

rodger85

XLDnaute Nouveau
Bonjour TooFatboy
réponse à tes questions (n’empêche que tu as compris ce que je voulais dire sauf un bémol)
Bemol = quand "E5"est cliquer (cela devient la ligne Active) tout se passe bien les commentaires s'affiche et le control des commentaires de M à P s'affiche bien sans perturber le reste mais si je clic sur M10 à P10 cela remplace ma colonne Maitresse "E10" les commentaires de F10 à J10 s'affiche alors qu'il ne doit rien se passer
il n'y a que la colonne "E" qui a le droit d'afficher les commentaires en bloc de "F à J"

Quand la ligne active est sur E5 les commentaires de F à J doivent s'afficher (c'est le cas)​

c'est exact la colonne maitresse est "E" et pas ActiveCell dans E5:J5 " juste "E"
c'est pour cela que je met les cellules "F à J" verrouillé et je protège ma feuille comme cela aucune action est possible avec "F à J"
----------------------------------
Uniquement pour M5, ou pour ActiveCell dans M5: P5 ?
Rep: pour ActiveCell dans M5: P5
--------------------------------

Pourquoi E5:J10 ???
Rep : la je me suis trompé c'etait " F5 a J5" puisque dans le "E5" il n'y jamais de comment c'est le "E" qui control tout
--------------------------------------------
Il n'y a rien en M6... est-ce que tu veux dire M10 ?
Rep :non je voulais dire N5 , O5, P5
bon faut j'aille voir le toubib ,encore trompé ça devient grave

------------------------------------------------
Et si Je Clic sur E10 tous les commentaires de E5 à P5 doivent s'enlever
OK, là c'est à peu près clair, même si je suppose qu'en fait c'est ActiveCell dans E10:J10.
Rep: Non seulement quand je click dans la colonne "E10" (colonne Maitresse)
-------------------------------
ce que j'arrive à faire avec deux feuilles en Array mais pas avec une seule feuille)
Là, je ne comprends pas.
Rep : mon projet actuellement marche bien et j'ai 2 feuilles en mode "Array" donc 24 colonnes chacune
quand je marque les titres(feuil 1) dans la colonne "E" cela se répercute dans la feuil 2 au même endroit
mais je n'est pas que ça
et j'ai voulu tester mon projet avec scroll honrizontal qui est donc que sur une seule feuille avec 48 colonnes
et je bascule de l'un a l'autre 1° vue de "A à Z" 2° vue de "AA à AZ"
je voulais voir si le temps de réactivité était meilleur mais le peux que j'ai vu ben je n'en suis pas certain
et j'ai une autre question quand je teste la macro en mode "F8" sur mon projet sachant que j'ai 600 lignes x 48 colonnes je n'ai jamais réussi a aller jusqu'au bout cela doit faire un peu prés 10 000 cellules à tester
il n'existe pas un moyen d’enregistré l'adresse de l'ancienne ligne Active dans une cellule de faire une macro qui enlève juste les comment de l'ancienne ligne active avec l'adresse recuperer et après de refaire l'affichage des comments que sur la nouvelle ligne active cela ferait que 48 cellules a vérifier
 

TooFatBoy

XLDnaute Barbatruc
Merci d'avoir répondu à chacune de mes questions. 👍

il n'y a que la colonne "E" qui a le droit d'afficher les commentaires en bloc de "F à J"
Encore un truc qui n'était pas précisé. :(


il n'existe pas un moyen d’enregistré l'adresse de l'ancienne ligne Active dans une cellule de faire une macro qui enlève juste les comment de l'ancienne ligne active avec l'adresse recuperer et après de refaire l'affichage des comments que sur la nouvelle ligne active cela ferait que 48 cellules a vérifier
Je pense qu'il en existe même plusieurs. ;)


Je suppose que maintenant tu vas pouvoir adapter ma dernière proposition à ton réel problème.
 
Dernière édition:

patricktoulon

XLDnaute Barbatruc
Bonjour à tous
c'est un peu confus tout ça
pourrais-je avoir un résumé clair de l'intention
on clique ou et ca affiche les comm de quelle colonnes
pour moi il n'y a absolument pas besoins de mémorisation du tout
a moins qu'il y ai eu une carabistouille dans l'explication de la demande
 

Discussions similaires

Statistiques des forums

Discussions
312 216
Messages
2 086 351
Membres
103 195
dernier inscrit
martel.jg