|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Expert Confirmé
![]() |
bonjour a tous
je vous propose aujourdh'ui comme le titre du post l'indique l'effet mouse over sur les lignes d'un sheets j'ai commenté pratiquement chaque ligne du code pour plus de comprehention utilisation de l'api de la souris dans la user 32 dll Code :
''******************************** Code :
![]() au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() |
Bonjour
Merci pour cette contribution, mais lorsque vous mettrez du code sur le forum pensez à sa présentation, et entre autre à son indentation pour le rendre plus lisible. Merci Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
20
|
|
|
#3 |
|
Expert Confirmé
![]() |
bonjour philippe joshmans
je pensait avoir suffisament commenté le code pour qu'il soit inteligible j'avoue que je comprend mal l'expression "indenter" puis je avoir des explications a ce sujet merci d'avance au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
02
|
|
|
#4 |
![]() ![]() |
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
20
|
|
|
#5 |
|
Expert Confirmé
![]() |
rebonsoir philippe jochmans
ok j'ai compris "indenter" un simple decalage dans les boucles imbriquer par exemple enfin si j'ai bien compris je te remercie pour ces indications j'en profite pour ajouter une petite modification necessaire en cas d'utilisation de la scrollbar verticale il faut remplacer par Code :
newligne = .Cells(i + ActiveWindow.ScrollRow - 1, 1).Row encore merci au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#6 | ||
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
Petite explication pour l'indentation:
L'indentation est le fait de mettre en retrait d'un nombre de caractères fixe (VBE à une valeur de 4 par défaut) certaines lignes. Les lignes à indenter sont celles qui se trouvent entre les limites de toute instruction ayant un début et une fin telles que: Sub Function If For Do While With Select ... Trois exceptions: Else (ou ElseIf) qui se met au même niveau que le If auquel il se rapporte. Case qui n'a pas d'instruction de fin et dont la limite est le Case suivant. Le If écrit sur une seule ligne (ce que je déconseille) qui n'a pas d'instruction de fin. Il n'y a donc rien à indenter. Pour indenter facilement (pour autant que les paramètres de VBE aient été laissé dans leur configuration d'origine): Placer le curseur devant une ligne ou, plus simple, sélectionner toute la ligne (ou plusieurs) et taper la touche Tab. Pour désindenter une ligne, la sélectionner et taper Shift + Tab. Si le curseur est à la fin d'une ligne indentée et qu'on tape Enter, la ligne suivante sera aussi indentée. Pour taper une instruction de fin (End...) taper Backspace, le curseur se placera au niveau d'indentation précédent. Exemple Code :
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
||
|
|
30
|
|
|
#7 |
|
Expert Confirmé
![]() |
bonsoir alaintech
merci pour ces indications supplémentaires mis a part ça si vous avez une idée concernant la possibilité de rendre le calcul automatique de la dimension en hauteur du ruban de façon a remplacer le "-187" chez moi ,qui me sert a déterminer le niveau le plus haut en top ça serais le bien venu merci a tout les deux au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
10
|
|
|
#8 |
![]() ![]() Alain GerardConsultant informatique Inscription : mai 2005 Messages : 3 675 ![]() |
N'est-il pas possible de repérer le Top de la cellule A1?
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres! Pensez aussi à voter pour les réponses qui vous ont aidés. ------------ Je dois beaucoup de mes connaissances à mes erreurs! |
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() |
rebonsoir
logiquement oui mais si je fait Code :
au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||
|
|
10
|
|
|
#10 |
![]() ![]() Fred ThomasEngineering Inscription : février 2008 Messages : 3 485 ![]() |
Tu obtiens 0 parce Cells(x, x).Top te donne la coordonnée y de la cellule par rapport à la feuille et non par rapport à l'écran.
L'idéal serait de pouvoir obtenir les coordonnées d'une cellule par rapport au point 0,0 de l'écran ce qui permettrait de faire fonctionner l'API sans tenir compte de la fenêtre Excel (fenêtre réduite, étendue, plein écran, etc...) mais je ne sais pas si c'est réalisable.
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois) |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() |
rebonjour fring
en fait j'ai commencer a trouvé une piste toute simple je declare le height du ribbon et de la status bar Code :
Application.CommandBars("Status Bar").Height + Application.CommandBars("Ribbon").Height et du activewindows.worktabs pour les onglets je cherche je cherche au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
10
|
|
|
#12 | ||||
|
Expert Confirmé
![]() |
bonjour
j'ai apporté quelques modification au code en effet maintenant lorsque l'on sort de la grille excel plus de couleur!!! j'ai indenter le code pour plus de lisibilité comme me la conseillé philippe jochmans Code :
''******************************** Code :
au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||||
|
|
10
|
|
|
#13 | ||
|
Expert Confirmé
![]() |
bonsoir a tous
je vous propose aujourd'hui la version qui donne l'effet sur une cellule et plus la ligne entière il vous suffi de remplacer la macro "position" par celle ci le code est largement commenté et indenté Code :
au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||
|
|
10
|
|
|
#14 | ||
|
Expert Confirmé
![]() |
bonjours a tous
j'ai glané sur la toile un code qui cherchait a faire la même chose je l'ai un peu arrangé en effet le problème de l'ancienne version était de pouvoir délimiter la grille comme base et non pas tout le sheet y compris le ruban l'expression "application.usableheight" et width resou le probleme je vous le laisse découvrir le nouveau code du module Code :
![]() au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||
|
|
10
|
|
|
#15 | ||
|
Expert Confirmé
![]() |
bonjour a tous
apres reflection je me suis appercu que la macro fonctionnait dans une page blanche mais si la feuille contient une presentation (celule coloriée) alors la a chaque boucle les couleurs disparaissait j'ai donc ajouté la memorisation de la couleur de la celule survolé et l'ors du changement de cellule la precedente reprend sa couleur initiale voila le code du module celui du sheets ne change pas Code :
au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||
|
|
10
|
|
|
#16 | ||||
|
Expert Confirmé
![]() |
bonsoir
c'est quand on croit que l'on a gravis toute le montagne qu'il nous reste encore quelques pas a faire en effet il y a une éventualité que je n'avais pas envisagé et pourtant importante j'ai donc revu le code pour avoir l'effet sur la cellule ou la ligne survolée mais dans une zone précise de façon par exemple a l'avoir sur un tableau (range) et non pas dans tout le sheets du coup la macro qui appelle la fonction a un peu évolué la fonction aussi maintenant dans l'appel a la fonction on précise si c'est la cellule ou la ligne ensuite on détermine la 1ere colonne a partir du quel l'effet doit etre actif ensuite la dernière colone ou l'effet s'arretera la 1ere ligne a partir du quel l'effet sera actif et enfin la derniere ligne ou l'effet s'arretera voici le code qui appelle la fonction Code :
et voici le code pour le module standard: Code :
si vous avez des suggestions ou des questions n'esitez pas au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||||
|
|
10
|
|
|
#17 | ||||||
|
Expert Confirmé
![]() |
bonjour
apres plusieur suggestion sur d'autre forum j'ai modifié le titre de la fonction et donc son appel maintenant il suffi d'appeler la fonction comme ceci: exemple pour avoir l'effet de survol de la celule uniquement dans la plage E3:j20 Code :
Code :
voila le nouveau code du module: Code :
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||||||
|
|
00
|
|
|
#18 | ||||||
|
Expert Confirmé
![]() |
bonjour
allez aujourd'hui je modifie encore le code dans l'appel a la fonction on détermine toujours le range pour la limite ou l'effet est effectif on détermine l'effet sur la cellule ou ligne (Nouveau) on choisi la couleur de l'effet a l'appel de la fonction (nouveau)on peut utiliser l'index des couleurs prédéterminées dans office (de 1 a 56) (nouveau)ou même en lettre du style vbred(rouge) (nouveau)ou même du style 1236542 qui nous donne par exemple la couleur verte code pour appeler la fonction sur la cellule survolée Code :
Code :
et le code de la fonction Code :
![]() ![]() ![]() ![]() au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
||||||
|
|
00
|
|
|
#19 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
je ne sais pas pour les version précédentes, mais sur 2003 j'ai une méthode RangeFromPoint (à appliquer à ActiveWindow par exemple) qui m'a l'air utile pour éviter un algorithme de recherche de la cellule survolée
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#20 |
|
Expert Confirmé
![]() |
bonjour arhkam46
je n'étais pas au courant ni entendu parler de "méthode RangeFromPoint (à appliquer à ActiveWindow)" je vais faire une recherche je me suis intéressé a ce projet car je ne lavais pas trouvé sur dvp si tu a un lien sur ta méthode je suis preneur aussi tu a parler de la version 2003 mais je cherche a faire quelque chose de compatible de 2000 jusqu'à 2010 (32bit) et je pense y être parvenu bien que je n'ai pas eu de retour dailleur si de bons samaritains veulent bien me donner le retour j'en serais tre contents avec l'erreur si il y en a une pour 2000,2003,2010 je te remercie pour ta suggestion j'étais un peu triste d'avoir fini cette fonction ça va me donner du travail ![]() au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com