bonjour,

quand j'appelle cible.Show à partir d'une exécution de Sub CompteCommentaires, j'obtiens bien la cellule au centre de la fenêtre Excel (en général, cachée derrière la MsgBox )

Quand je place la Function CountCommentParCol () dans la feuille Excel, cellule B2007
=CountCommentParCol(B$5:B1950)

la macro fonctionne, mais la feuille reste scotchée à
proximité de la cellule B2007

POurquoi ?

ET le r.Show dans la fonction ne fait absolument rien !

nb: j'utilise une fonction pour pouvoir faire des copies de formules dans toutes les colonnes qui m'intéressent en usant des adresses relatives ; je n'ai pas trouvé comment faire en macro Sub


Merci de me dire ce que j'ai oublié dans ce code

A+

code__________
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Function CountCommentParCol(Zone As Range) As String
 
    Dim r As Range
    Dim lig, col As Integer
    Dim MsgZone As String
    Dim NbComments As Long
 
    NbComments = 0
 
    Set r = Zone
    r.Show
 
    MsgZone = "Explore la colonne " & r.Cells().Address
    MsgBox MsgZone
 
    For col = 1 To r.Columns.Count
        For lig = 1 To r.Rows.Count
            CompteCommentaires Range(r.Cells(lig, col).Address()), NbComments
        Next lig
    Next col
 
    CountCommentParCol = NbComments
End Function
 
Private Sub CompteCommentaires(cible As Range, NbComments As Long)
 
    If cible.Comment Is Nothing Then
        'MsgBox ("Aucun commentaire dans la cellule cible " & cible.Row & "," & cible.Column)
    Else
        NbComments = NbComments + 1
        cible.Show
 
        ' Affiche le message.
        MsgBox ("Cellule cible " & cible.Address() & " : [" & cible.Comment.Text & "]")
    End If
 
End Sub