Bloquer mouse wheel

courcoa10

XLDnaute Nouveau
Bonjour,

après avoir passé la journée complète à chercher une solution, lire des tas d'articles et de forum (en vain) :( , je me résigne à poster mon problème.

Je souhaite bloquer l'utilisation de la roulette de la souri à l'ouverture de mon fichier je sais qu'il faut écrire Private Sub Workbook_Open() dans thisworbook, mais je n'ai pas trouvé le code qui va après.

Certain parle de DLL... souvent pour ACCESS... mais je n'ai pas réussi à l'adapter à EXCEL.

Merci d'avance pour votre aide :)
 

courcoa10

XLDnaute Nouveau
Re : Bloquer mouse wheel

Hi Mr BOND,

Je vais essayé d'être plus clair.

Donc voilà, j'ai une macro qui déplace les formes de la feuille à une hauteur de 100 et une largeur de 0 par rapport à mon coin en haut à gauche de la partie visible à l'écran (pour faire un menu flottant un peu comme sur certain site internet avec des pub ou menu qui suivent toujours l'écran)

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    With ActiveWindow
        Ligne = .ScrollRow
        Colonne = .ScrollColumn
    End With
    ActiveSheet.Shapes("rectangle 1").Top = Rows(Ligne).Top + 100
    ActiveSheet.Shapes("rectangle 1").Left = Columns(Colonne).Left
End Sub

Cela fonctionne par sélection des cellules à l'aide des flèches ou en cliquant sur la cellule.

Mais mon problème est que ça ne marche pas du tout quand je navigue avec la roulette de la souri.

Je souhaite donc soit désactiver la roulette pour forcer l'utilisateur à se servir des flèches ou en cliquant où il veut ou alors et là c'est le top :cool: faire que la forme se déplace en détectant la valeur du scroll de la roulette.

J'espère être plus clair dans mes propos à présent, suis novice c'est donc pas toujours simple de s'exprimer correctement.

Merci de t'intéresser à mon cas :)
 

James007

XLDnaute Barbatruc
Re : Bloquer mouse wheel

Bonjour,

Merci pour tes explications ... je comprends mieux ton souci ...
Dans la mesure où intervenir sur la souris concerne beaucoup plus windows que Excel ..., je ne pense qu'à deux pistes possibles...
1. la plus simple ... tripatouiller avec la plage visible pour arriver à tes fins
Code:
ActiveWindow.VisibleRange 
ActiveWindow.Panes(1).VisibleRange
ou alors si tu adores les défis ...
2.La piste des pros qui codent directement pour capter l'évènement en interceptant les messages Windows ( "subclassing" ) ...

A +
 

courcoa10

XLDnaute Nouveau
Re : Bloquer mouse wheel

Je sèche :(

1 - je ne sais pas où ajouter ton code ni comment il fonctionne

2 - le subclassing, ça à l'air bien mais niveau rédaction c'est un truc de fou

Si tu pouvais m'éclairer sur ces 2 points ça serait cool :cool:
 

mromain

XLDnaute Barbatruc
Re : Bloquer mouse wheel

bonjour coucroa, James007

à partir du code de James, je t'ai fait un petit essai qui a l'air de fonctionner.
le PB, c'est qu'une macro tourne sans arret tant que tu est sur la feuille.

voici le code (de la feuille) :

Code:
Dim feuilleActive As Boolean

Private Sub Worksheet_Activate()
feuilleActive = True
leTest
End Sub

Private Sub Worksheet_Deactivate()
feuilleActive = False

End Sub

Sub leTest()
With ActiveSheet
    While feuilleActive
        DoEvents
        Ligne = ActiveWindow.VisibleRange.Row
        Colonne = ActiveWindow.VisibleRange.Column
        .Shapes("rectangle 1").Top = Rows(Ligne).Top + 100
        .Shapes("rectangle 1").Left = Columns(Colonne).Left
    Wend
End With
End Sub


a+
 

James007

XLDnaute Barbatruc
Re : Bloquer mouse wheel

Re Bonjour,

Pour ce qui est de manipuler ta zone visible, tu peux le tester dans une macro dédiée, mais dans mon esprit c'est plus simple si tu l'intègres dans ta macro évènementielle ...
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
puisque c'est bien au moment du changement de cellules que tu veux adapter la zone visible ...

A +
 

mromain

XLDnaute Barbatruc
Re : Bloquer mouse wheel

bonjour courcoa10, James007

je te met un fichier exemple.
par contre, comme précisé dans mon post plus haut : "une macro tourne sans arret tant que tu est sur la feuille (Feuil1)", donc excel ne pourra pas fermer le classeur tant que tu sera sur la feuille (Feuil1), vu qu'une macro sera en train de tourner.
tu sera obligé de changer de feuille pour fermer le classeur.

a+
 

Pièces jointes

  • Classeur1.xls
    34 KB · Affichages: 253
  • Classeur1.xls
    34 KB · Affichages: 260
  • Classeur1.xls
    34 KB · Affichages: 271

Philinsa

XLDnaute Nouveau
Re : Bloquer mouse wheel

Bonjour le forum,

Je reprends ce vieux fil de discussion parce que ça rejoint assez bien mon besoin.
Je souhaiterais en plus de déplacer automatiquement la forme dans la fenêtre que cette forme affiche certaines cellules de la feuille, ces cellules étant à la verticale de la cellule active. Pour tenter d'être plus clair, j'ai une feuille de calcul assez haute et large et je souhaiterais avoir visible en temps réel la partie basse de ma feuille.
En gros, j'ai besoin d'une fenêtre espion "configurable"...
Merci d'avance et bonnes fêtes à tous!
 
Dernière édition:

thib97

XLDnaute Nouveau
Re : Bloquer mouse wheel

bonjour courcoa10, James007

je te met un fichier exemple.
par contre, comme précisé dans mon post plus haut : "une macro tourne sans arret tant que tu est sur la feuille (Feuil1)", donc excel ne pourra pas fermer le classeur tant que tu sera sur la feuille (Feuil1), vu qu'une macro sera en train de tourner.
tu sera obligé de changer de feuille pour fermer le classeur.

a+
Salut @mromain

Merci pour tes fichiers !
si à la place de ton rectangle bleu je veux mettre un tableau recap de valeur avec des formules automatiques comment modifier ton code ?
 

Statistiques des forums

Discussions
312 438
Messages
2 088 409
Membres
103 844
dernier inscrit
salma123