Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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:
Bonjour,

Est-il possible autoriser le code à écrire sur ma feuille protégée, ou changer les options de protection de ma feuille.

Activez la protection de la feuille par code avec le paramètre UseInterfaceOnly à True.
Voyez ici le paramètre : UserInterfaceOnly

UserInterfaceOnlyFacultatifVariantTrue pour protéger l'interface utilisateur, mais pas les macros. Si cet argument est omis, la protection s'applique à la fois aux macros et à l'interface utilisateur.
 
Dernière édition:
Re,

Après réflexion et bien que je n'ai pas tout compris, est-ce que ça ne suffirait pas comme ça 🤔
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  ' Sinon
  If Not Intersect(Range("E2"), Target) Is Nothing Then
    ActiveSheet.Unprotect
    Range("H2").Value = Range("H2").Value + 1
    ActiveSheet.Protect
  End If
End Sub

A+
 
Bonsoir, voici
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Count > 1 Then Exit Sub
  ' Sinon, dans la colonne E2:Ex
  If Not Intersect(Range("E2:E" & Rows.Count), Target) Is Nothing Then
    ActiveSheet.Unprotect
    Range("H" & Target.Row).Value = Range("H" & Target.Row).Value + 1
    ActiveSheet.Protect
  End If
End Sub

A+
 
Bonjour à tous,
Juste pour le fun :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Nm As Name
Dim FlagNm As Boolean

For Each Nm In ThisWorkbook.Names
    If Nm.Name = "Compteur" Then
        FlagNm = True
        Exit For
    End If
Next Nm

If Not FlagNm Then ThisWorkbook.Names.Add Name:="Compteur", RefersToR1C1:="0", Visible:=True

If Not Intersect(Range("E2:H" & Rows.Count), Target) Is Nothing Then
    With ThisWorkbook
        Tmp = Replace(.Names("Compteur").Value, "=", "")
        Tmp = Tmp + 1
        .Names("Compteur").Delete
        .Names.Add Name:="Compteur", RefersToR1C1:=Tmp
    End With
End If
End Sub

Cordialement
 

Pièces jointes

Bonjour

Pour la version Compteur dans un nom:
VB:
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim Nm As Name
Dim FlagNm As Boolean
Dim Tmp&

For Each Nm In ThisWorkbook.Names
    If Nm.Name = "Compteur" Then
        FlagNm = True
        Exit For
    End If
Next Nm

If Not FlagNm Then ThisWorkbook.Names.Add Name:="Compteur", RefersToR1C1:="0", Visible:=True

If Not Intersect(Range("E2:H" & Rows.Count), Range(Target.Range.Address)) Is Nothing Then
    With ThisWorkbook
        Tmp = Replace(.Names("Compteur").Value, "=", "")
        Tmp = Tmp + 1
        .Names("Compteur").Delete
        .Names.Add Name:="Compteur", RefersToR1C1:=Tmp
    End With
End If
End Sub

Cordialement
 
Je viens de voir qu'en effet on ne peut pas utiliser le code de @BrunoM45 pour compter les activations de liens hypertextes comme cela avait pu marcher pour juste le clic sur la cellule. En effet, le compteur marche pour les liens sauf les liens vers d'autres classeurs Excels. (ci-dessous l'erreur produite)


Merci @Efgé, votre code me permet bien de compter les activations des liens hypertextes, par contre c'est un compteur commun à toute les cellules et la valeur est non affichée, est-ce qu'il vous serait possible d'ajouter la protection de la feuille et la création d'un pour chaque ligne ?

Cordialement
 
C'est certain quand on ne donne pas le bon énoncé du problème dès le départ 🙄
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
485
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
45
Réponses
14
Affichages
337
Réponses
4
Affichages
380
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…