XL 2010 Comptez le nombre total de clics dans une cellule spécifiée dans Excel

Learning process

XLDnaute Nouveau
Bonjour je souhaite compter le nombre total de clics dans une cellule spécifiée dans Excel.
J'ai utilisé le code suivant pour commencer :

Public xRgS, xRgD As Range
Public xNum As Long
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRgS = Range("E2")
If xRgS Is Nothing Then Exit Sub
Set xRgD = Range("H2")
If xRgD Is Nothing Then Exit Sub
If Intersect(xRgS, Target) Is Nothing Then Exit Sub
xNum = xNum + 1
xRgD.Value = xNum
End Sub

Il marche pour la plupart des cas néanmoins, je travaille sur une feuille protégée donc le code vba ne peut pas écrire sur cette feuille.
Est-il possible autoriser le code à écrire sur ma feuille protégée, ou changer les options de protection de ma feuille.
Si cela n'est pas possible écrire le résultat sur une autre feuille, elle, non protégé serait bien aussi.

Merci d'avance pour votre aide.
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Bonjour à tous
Je développe un peu ma réponse assez courte du post14
En dehors du fait que la demande évolue significativement depuis le début, on se demande où nous allons allez.
D'autre part, je te fait un exemple qui montre le risque de faire un compteur par lien hypertexte.
Tu vas te retrouver avec un nombre de noms importants dans ton gestionnaire de noms et la boucle de vérification risque de devenir rop longue pour un usage fluide.

Pour la protection, il est inutile de déprotéger/protéger toute la feuille alors que tu peux déprotéger les cellules des colonnes E à H et protéger une fois pour toute la feuille.

Le classeur ci-dessous te crée un nom par cellule cliquée contenant un lien

Cordialement
 

Pièces jointes

  • OnCompte_2.xlsm
    17.5 KB · Affichages: 1
Dernière édition:

Efgé

XLDnaute Barbatruc
Re
A bien relire ton code d'origine, faisons simple ;
Les liens sont en colonne E et les compteurs correspondants en colonne H
Ce qui est la même chose que la proposition de @BrunoM45 au post9 adapté au lien hypertexte.
VB:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim Sh As Worksheet, Rng As Range

Set Sh = Me
Set Rng = Target.Range

If Intersect(Range("E2:E" & Rows.Count), Rng) Is Nothing Then Exit Sub

With Sh
    .Unprotect
        With Rng.Offset(, 3)
            .Value = .Value + 1
        End With
    .Protect
End With
End Sub

Cordialement
 
Dernière édition:

Statistiques des forums

Discussions
312 037
Messages
2 084 814
Membres
102 677
dernier inscrit
sergio2803