bonjour a tous
j'ai fait des menus contextuels de remplacement dans un classeur
ce que je voudrais c'est qu'il s'affiche dans un endroit particulier de la feuille
quelqu'un a une idée
merci d'avance
bonjour a tous
j'ai fait des menus contextuels de remplacement dans un classeur
ce que je voudrais c'est qu'il s'affiche dans un endroit particulier de la feuille
quelqu'un a une idée
merci d'avance
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Bonjour Patrick,
Peut-être la méthode "ShowPopup".
bonjour daniel
oui je sait
mais c'est le x et le y que je voudrais déterminer
Code : Sélectionner tout - Visualiser dans une fenêtre à part mabarre.showpopup(x,y)
par exemple je voudrais que ma barre apparaisse a la cellule F5
je fais donc
mais comme ça commence en dessous de la barre de formule ce qui donne une différence de l'épaisseur du ruban
Code : Sélectionner tout - Visualiser dans une fenêtre à part mabarre.showpopup([f5].left,[f5].top)
une idée
au plaisir
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
J'au du mal à te suivre, je suis loin d'être expert en commandbars (en autres). Est-ce que la connaissance de la cellule en haut et à gauche de la fenêtre peut aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part ActiveWindow.VisibleRange(1, 1).Address
Bonjour,
Les x et y de showpopup sont des coordonnées de l'écran et les top et left sont des coordonnées relatives a la fenêtre Excel.
Je pense que tu n'échapperas pas aux API.
Bon courage !
ctac
bonjour danielc et ctac
pour ctac:
oui je suis d'accord avec toi mais c'est la mise en oeuvre dont je n'est aucune idée pourtant j'ai l'habitude de manipuler les apis
je continu a chercher
au plaisir
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Salut
J'ai trouvé ça sur le net
avec les 4/3 on retrouve 96/72
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Bonsoir Laurent; Quelque chose comme (à adapter en fonction de tes propres critères range et nom de la barre d'outils): With Range("E3") MaBarre.Top = ActiveWindow.PointsToScreenPixelsY(.Top * 4 / 3) * 3 / 4 MaBarre.Left = ActiveWindow.PointsToScreenPixelsX(.Offset(0, 1).Left * 4 / 3) * 3 / 4 End With MP
Et 72 correspond à la valeur retourné par TwipsParPixel (de memoire)c'est 15 (mais c'est dépendant de la résolution)
Donc en fait, la fonction PointsToScreenPixelsX demande une valeur en point et non une valeur en Twips, d'ou le besoin de d'abord convertir les Twips en points....
++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et SeulTutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
resalut
oui je l'ai vu aussi celle avec le 4/3
donc pour faire une fonction propre j'ai reuni les 3
je vais encore potasser sur le sujet car j'ai pas tout assimiler mais je crois que l'on peut cliquer "Resolu"
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 Option Explicit Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long Private Const HWND_DESKTOP As Long = 0 Private Const LOGPIXELSX As Long = 88 Private Const LOGPIXELSY As Long = 90 dim TwipsPerPixelX as long dim TwipsPerPixelY as long Function coordonnées_cellule() As String Dim lngDC As Long lngDC = GetDC(HWND_DESKTOP) TwipsPerPixelX = GetDeviceCaps(lngDC, LOGPIXELSX) TwipsPerPixelY = GetDeviceCaps(lngDC, LOGPIXELSY) lelefts = ActiveWindow.PointsToScreenPixelsX([g3].Left * TwipsPerPixelX / 72 * ActiveWindow.Zoom / 100) letops = ActiveWindow.PointsToScreenPixelsY([g3].Top * TwipsPerPixelY / 72 * ActiveWindow.Zoom / 100) [i3] = lelefts [h3] = letops coordonnées_cellule = lelefts & "," & letops ReleaseDC HWND_DESKTOP, lngDC End Function
merci a toi pour ces précisions
au plaisir
mes fichiers dans les contributions:
mail avec CDO en vba et mail avec CDO en vbs dans un HTA
survol des bouton dans userform
prendre un cliché d'un range
si ton problème est résolu n'oublie pas de pointer :: ça peut servir aux autres
et n'oublie pas de voter
Partager