Eviter la disparition répétée de la calculatrice ?
2 réponses
DC
Bonjour à tous,
J'utilise une procédure, qui me vient de michdenis, et qui fonctionne très
très bien ! ( Positonnement de la calculatrice )
Aussi à l'usage, je me demande s'il est possible, d'éviter que la
calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais, si
c'est possible, pouvoir gérer cette disparition, à ma guise, par une
deuxième action sur le bouton de macro, ou un autre bouton, qui lui agirait
sur une autre macro,
Merci d'y penser !
'*****************************************
'Dans le haut d'un module standard, et
'tu exécutes la procédure : PositionCalculatrice
'Déclaration des API
Private Declare Function MoveWindow& Lib _
"user32" (ByVal hwnd&, ByVal x&, ByVal y& _
, ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&)
Private Declare Function FindWindow& _
Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetWindowRect& _
Lib "user32" (ByVal hwnd&, lpRect As RECT)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
'-------------------------------------------
Sub PositionCalculatrice()
'L = Left de l'application
'T = Top de l'application
'Tu peux modifier les constantes selon
'la position que tu veux donner à la calculatrice
Const L& = 995, T& = 250
Dim hwnd, R As RECT
Application.ActivateMicrosoftApp 0
hwnd = FindWindow(vbNullString, "Calculatrice")
GetWindowRect hwnd, R
MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1
End Sub
'-------------------------------------------
'Salutations! ( michdenis )
'*********************************************
Cordialement ! DC
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alain CROS
Bonjour,
Private Declare Function GetDesktopWindow& Lib "user32" () Private Declare Function LockWindowUpdate& Lib "user32" _ (ByVal hwndLock&) Private Declare Function SetParent& Lib "user32" _ (ByVal hWndChild&, ByVal hWndNewParent&) Private Declare Function MoveWindow& Lib "user32" _ (ByVal hwnd&, ByVal x&, ByVal y& _ , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName$, ByVal lpWindowName$) Private Declare Function GetWindowRect& Lib "user32" _ (ByVal hwnd&, lpRect As RECT) Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Sub PositionCalculatrice() Const L& = 300&, T& = 200& Dim hwnd&, DeskHwnd&, XLHwnd&, R As RECT DeskHwnd = GetDesktopWindow LockWindowUpdate DeskHwnd Application.ActivateMicrosoftApp 0& hwnd = FindWindow(vbNullString, "Calculatrice") GetWindowRect hwnd, R MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1& XLHwnd = FindWindow("XLMAIN", Application.Caption) SetParent hwnd, XLHwnd LockWindowUpdate 0& End Sub
Alain CROS
"DC" a écrit dans le message de news: 4444fb73$0$29190$ | Bonjour à tous, | | J'utilise une procédure, qui me vient de michdenis, et qui fonctionne très | très bien ! ( Positonnement de la calculatrice ) | Aussi à l'usage, je me demande s'il est possible, d'éviter que la | calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais, si | c'est possible, pouvoir gérer cette disparition, à ma guise, par une | deuxième action sur le bouton de macro, ou un autre bouton, qui lui agirait | sur une autre macro, | Merci d'y penser ! | '***************************************** | 'Dans le haut d'un module standard, et | 'tu exécutes la procédure : PositionCalculatrice | | 'Déclaration des API | | Private Declare Function MoveWindow& Lib _ | "user32" (ByVal hwnd&, ByVal x&, ByVal y& _ | , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) | Private Declare Function FindWindow& _ | Lib "user32" Alias "FindWindowA" _ | (ByVal lpClassName$, ByVal lpWindowName$) | Private Declare Function GetWindowRect& _ | Lib "user32" (ByVal hwnd&, lpRect As RECT) | Private Type RECT | Left As Long | Top As Long | Right As Long | Bottom As Long | End Type | '------------------------------------------- | Sub PositionCalculatrice() | | 'L = Left de l'application | 'T = Top de l'application | | 'Tu peux modifier les constantes selon | 'la position que tu veux donner à la calculatrice | | Const L& = 995, T& = 250 | Dim hwnd, R As RECT | Application.ActivateMicrosoftApp 0 | hwnd = FindWindow(vbNullString, "Calculatrice") | GetWindowRect hwnd, R | MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1 | End Sub | '------------------------------------------- | 'Salutations! ( michdenis ) | '********************************************* | Cordialement ! DC | |
Bonjour,
Private Declare Function GetDesktopWindow& Lib "user32" ()
Private Declare Function LockWindowUpdate& Lib "user32" _
(ByVal hwndLock&)
Private Declare Function SetParent& Lib "user32" _
(ByVal hWndChild&, ByVal hWndNewParent&)
Private Declare Function MoveWindow& Lib "user32" _
(ByVal hwnd&, ByVal x&, ByVal y& _
, ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&)
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetWindowRect& Lib "user32" _
(ByVal hwnd&, lpRect As RECT)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Sub PositionCalculatrice()
Const L& = 300&, T& = 200&
Dim hwnd&, DeskHwnd&, XLHwnd&, R As RECT
DeskHwnd = GetDesktopWindow
LockWindowUpdate DeskHwnd
Application.ActivateMicrosoftApp 0&
hwnd = FindWindow(vbNullString, "Calculatrice")
GetWindowRect hwnd, R
MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1&
XLHwnd = FindWindow("XLMAIN", Application.Caption)
SetParent hwnd, XLHwnd
LockWindowUpdate 0&
End Sub
Alain CROS
"DC" <da.campion@hotmail.fr> a écrit dans le message de news: 4444fb73$0$29190$8fcfb975@news.wanadoo.fr...
| Bonjour à tous,
|
| J'utilise une procédure, qui me vient de michdenis, et qui fonctionne très
| très bien ! ( Positonnement de la calculatrice )
| Aussi à l'usage, je me demande s'il est possible, d'éviter que la
| calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais, si
| c'est possible, pouvoir gérer cette disparition, à ma guise, par une
| deuxième action sur le bouton de macro, ou un autre bouton, qui lui agirait
| sur une autre macro,
| Merci d'y penser !
| '*****************************************
| 'Dans le haut d'un module standard, et
| 'tu exécutes la procédure : PositionCalculatrice
|
| 'Déclaration des API
|
| Private Declare Function MoveWindow& Lib _
| "user32" (ByVal hwnd&, ByVal x&, ByVal y& _
| , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&)
| Private Declare Function FindWindow& _
| Lib "user32" Alias "FindWindowA" _
| (ByVal lpClassName$, ByVal lpWindowName$)
| Private Declare Function GetWindowRect& _
| Lib "user32" (ByVal hwnd&, lpRect As RECT)
| Private Type RECT
| Left As Long
| Top As Long
| Right As Long
| Bottom As Long
| End Type
| '-------------------------------------------
| Sub PositionCalculatrice()
|
| 'L = Left de l'application
| 'T = Top de l'application
|
| 'Tu peux modifier les constantes selon
| 'la position que tu veux donner à la calculatrice
|
| Const L& = 995, T& = 250
| Dim hwnd, R As RECT
| Application.ActivateMicrosoftApp 0
| hwnd = FindWindow(vbNullString, "Calculatrice")
| GetWindowRect hwnd, R
| MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1
| End Sub
| '-------------------------------------------
| 'Salutations! ( michdenis )
| '*********************************************
| Cordialement ! DC
|
|
Private Declare Function GetDesktopWindow& Lib "user32" () Private Declare Function LockWindowUpdate& Lib "user32" _ (ByVal hwndLock&) Private Declare Function SetParent& Lib "user32" _ (ByVal hWndChild&, ByVal hWndNewParent&) Private Declare Function MoveWindow& Lib "user32" _ (ByVal hwnd&, ByVal x&, ByVal y& _ , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName$, ByVal lpWindowName$) Private Declare Function GetWindowRect& Lib "user32" _ (ByVal hwnd&, lpRect As RECT) Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Sub PositionCalculatrice() Const L& = 300&, T& = 200& Dim hwnd&, DeskHwnd&, XLHwnd&, R As RECT DeskHwnd = GetDesktopWindow LockWindowUpdate DeskHwnd Application.ActivateMicrosoftApp 0& hwnd = FindWindow(vbNullString, "Calculatrice") GetWindowRect hwnd, R MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1& XLHwnd = FindWindow("XLMAIN", Application.Caption) SetParent hwnd, XLHwnd LockWindowUpdate 0& End Sub
Alain CROS
"DC" a écrit dans le message de news: 4444fb73$0$29190$ | Bonjour à tous, | | J'utilise une procédure, qui me vient de michdenis, et qui fonctionne très | très bien ! ( Positonnement de la calculatrice ) | Aussi à l'usage, je me demande s'il est possible, d'éviter que la | calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais, si | c'est possible, pouvoir gérer cette disparition, à ma guise, par une | deuxième action sur le bouton de macro, ou un autre bouton, qui lui agirait | sur une autre macro, | Merci d'y penser ! | '***************************************** | 'Dans le haut d'un module standard, et | 'tu exécutes la procédure : PositionCalculatrice | | 'Déclaration des API | | Private Declare Function MoveWindow& Lib _ | "user32" (ByVal hwnd&, ByVal x&, ByVal y& _ | , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) | Private Declare Function FindWindow& _ | Lib "user32" Alias "FindWindowA" _ | (ByVal lpClassName$, ByVal lpWindowName$) | Private Declare Function GetWindowRect& _ | Lib "user32" (ByVal hwnd&, lpRect As RECT) | Private Type RECT | Left As Long | Top As Long | Right As Long | Bottom As Long | End Type | '------------------------------------------- | Sub PositionCalculatrice() | | 'L = Left de l'application | 'T = Top de l'application | | 'Tu peux modifier les constantes selon | 'la position que tu veux donner à la calculatrice | | Const L& = 995, T& = 250 | Dim hwnd, R As RECT | Application.ActivateMicrosoftApp 0 | hwnd = FindWindow(vbNullString, "Calculatrice") | GetWindowRect hwnd, R | MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1 | End Sub | '------------------------------------------- | 'Salutations! ( michdenis ) | '********************************************* | Cordialement ! DC | |
DC
Bonsoir Alain CROS,
Un grand MERCI ! pour ta réponse plus que positive,
Çà fonctionne parfaitement, et j'avoue que je n'y croyais pas trop, mais en tout cas, çà va me faciliter la vie, depuis le temps que je m'interrogeais sur le sujet, MERCI !
Cordialement ! DC
"Alain CROS" a écrit dans le message de news: %
Bonjour,
Private Declare Function GetDesktopWindow& Lib "user32" () Private Declare Function LockWindowUpdate& Lib "user32" _ (ByVal hwndLock&) Private Declare Function SetParent& Lib "user32" _ (ByVal hWndChild&, ByVal hWndNewParent&) Private Declare Function MoveWindow& Lib "user32" _ (ByVal hwnd&, ByVal x&, ByVal y& _ , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName$, ByVal lpWindowName$) Private Declare Function GetWindowRect& Lib "user32" _ (ByVal hwnd&, lpRect As RECT) Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Sub PositionCalculatrice() Const L& = 300&, T& = 200& Dim hwnd&, DeskHwnd&, XLHwnd&, R As RECT DeskHwnd = GetDesktopWindow LockWindowUpdate DeskHwnd Application.ActivateMicrosoftApp 0& hwnd = FindWindow(vbNullString, "Calculatrice") GetWindowRect hwnd, R MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1& XLHwnd = FindWindow("XLMAIN", Application.Caption) SetParent hwnd, XLHwnd LockWindowUpdate 0& End Sub
Alain CROS
"DC" a écrit dans le message de news: 4444fb73$0$29190$ | Bonjour à tous, | | J'utilise une procédure, qui me vient de michdenis, et qui fonctionne très | très bien ! ( Positonnement de la calculatrice ) | Aussi à l'usage, je me demande s'il est possible, d'éviter que la | calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais, si | c'est possible, pouvoir gérer cette disparition, à ma guise, par une | deuxième action sur le bouton de macro, ou un autre bouton, qui lui agirait | sur une autre macro, | Merci d'y penser ! | '***************************************** | 'Dans le haut d'un module standard, et | 'tu exécutes la procédure : PositionCalculatrice | | 'Déclaration des API | | Private Declare Function MoveWindow& Lib _ | "user32" (ByVal hwnd&, ByVal x&, ByVal y& _ | , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) | Private Declare Function FindWindow& _ | Lib "user32" Alias "FindWindowA" _ | (ByVal lpClassName$, ByVal lpWindowName$) | Private Declare Function GetWindowRect& _ | Lib "user32" (ByVal hwnd&, lpRect As RECT) | Private Type RECT | Left As Long | Top As Long | Right As Long | Bottom As Long | End Type | '------------------------------------------- | Sub PositionCalculatrice() | | 'L = Left de l'application | 'T = Top de l'application | | 'Tu peux modifier les constantes selon | 'la position que tu veux donner à la calculatrice | | Const L& = 995, T& = 250 | Dim hwnd, R As RECT | Application.ActivateMicrosoftApp 0 | hwnd = FindWindow(vbNullString, "Calculatrice") | GetWindowRect hwnd, R | MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1 | End Sub | '------------------------------------------- | 'Salutations! ( michdenis ) | '********************************************* | Cordialement ! DC | |
Bonsoir Alain CROS,
Un grand MERCI ! pour ta réponse plus que positive,
Çà fonctionne parfaitement, et j'avoue que je n'y croyais pas trop, mais en
tout cas, çà va me faciliter la vie, depuis le temps que je m'interrogeais
sur le sujet, MERCI !
Cordialement ! DC
"Alain CROS" <Personne@ICI> a écrit dans le message de news:
%23u5afz5YGHA.1228@TK2MSFTNGP02.phx.gbl...
Bonjour,
Private Declare Function GetDesktopWindow& Lib "user32" ()
Private Declare Function LockWindowUpdate& Lib "user32" _
(ByVal hwndLock&)
Private Declare Function SetParent& Lib "user32" _
(ByVal hWndChild&, ByVal hWndNewParent&)
Private Declare Function MoveWindow& Lib "user32" _
(ByVal hwnd&, ByVal x&, ByVal y& _
, ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&)
Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName$, ByVal lpWindowName$)
Private Declare Function GetWindowRect& Lib "user32" _
(ByVal hwnd&, lpRect As RECT)
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Sub PositionCalculatrice()
Const L& = 300&, T& = 200&
Dim hwnd&, DeskHwnd&, XLHwnd&, R As RECT
DeskHwnd = GetDesktopWindow
LockWindowUpdate DeskHwnd
Application.ActivateMicrosoftApp 0&
hwnd = FindWindow(vbNullString, "Calculatrice")
GetWindowRect hwnd, R
MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1&
XLHwnd = FindWindow("XLMAIN", Application.Caption)
SetParent hwnd, XLHwnd
LockWindowUpdate 0&
End Sub
Alain CROS
"DC" <da.campion@hotmail.fr> a écrit dans le message de news:
4444fb73$0$29190$8fcfb975@news.wanadoo.fr...
| Bonjour à tous,
|
| J'utilise une procédure, qui me vient de michdenis, et qui fonctionne
très
| très bien ! ( Positonnement de la calculatrice )
| Aussi à l'usage, je me demande s'il est possible, d'éviter que la
| calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais,
si
| c'est possible, pouvoir gérer cette disparition, à ma guise, par une
| deuxième action sur le bouton de macro, ou un autre bouton, qui lui
agirait
| sur une autre macro,
| Merci d'y penser !
| '*****************************************
| 'Dans le haut d'un module standard, et
| 'tu exécutes la procédure : PositionCalculatrice
|
| 'Déclaration des API
|
| Private Declare Function MoveWindow& Lib _
| "user32" (ByVal hwnd&, ByVal x&, ByVal y& _
| , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&)
| Private Declare Function FindWindow& _
| Lib "user32" Alias "FindWindowA" _
| (ByVal lpClassName$, ByVal lpWindowName$)
| Private Declare Function GetWindowRect& _
| Lib "user32" (ByVal hwnd&, lpRect As RECT)
| Private Type RECT
| Left As Long
| Top As Long
| Right As Long
| Bottom As Long
| End Type
| '-------------------------------------------
| Sub PositionCalculatrice()
|
| 'L = Left de l'application
| 'T = Top de l'application
|
| 'Tu peux modifier les constantes selon
| 'la position que tu veux donner à la calculatrice
|
| Const L& = 995, T& = 250
| Dim hwnd, R As RECT
| Application.ActivateMicrosoftApp 0
| hwnd = FindWindow(vbNullString, "Calculatrice")
| GetWindowRect hwnd, R
| MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1
| End Sub
| '-------------------------------------------
| 'Salutations! ( michdenis )
| '*********************************************
| Cordialement ! DC
|
|
Un grand MERCI ! pour ta réponse plus que positive,
Çà fonctionne parfaitement, et j'avoue que je n'y croyais pas trop, mais en tout cas, çà va me faciliter la vie, depuis le temps que je m'interrogeais sur le sujet, MERCI !
Cordialement ! DC
"Alain CROS" a écrit dans le message de news: %
Bonjour,
Private Declare Function GetDesktopWindow& Lib "user32" () Private Declare Function LockWindowUpdate& Lib "user32" _ (ByVal hwndLock&) Private Declare Function SetParent& Lib "user32" _ (ByVal hWndChild&, ByVal hWndNewParent&) Private Declare Function MoveWindow& Lib "user32" _ (ByVal hwnd&, ByVal x&, ByVal y& _ , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) Private Declare Function FindWindow& Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName$, ByVal lpWindowName$) Private Declare Function GetWindowRect& Lib "user32" _ (ByVal hwnd&, lpRect As RECT) Private Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type
Sub PositionCalculatrice() Const L& = 300&, T& = 200& Dim hwnd&, DeskHwnd&, XLHwnd&, R As RECT DeskHwnd = GetDesktopWindow LockWindowUpdate DeskHwnd Application.ActivateMicrosoftApp 0& hwnd = FindWindow(vbNullString, "Calculatrice") GetWindowRect hwnd, R MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1& XLHwnd = FindWindow("XLMAIN", Application.Caption) SetParent hwnd, XLHwnd LockWindowUpdate 0& End Sub
Alain CROS
"DC" a écrit dans le message de news: 4444fb73$0$29190$ | Bonjour à tous, | | J'utilise une procédure, qui me vient de michdenis, et qui fonctionne très | très bien ! ( Positonnement de la calculatrice ) | Aussi à l'usage, je me demande s'il est possible, d'éviter que la | calculatrice disparaisse à chaque fois que l'on intervient, j'aimerais, si | c'est possible, pouvoir gérer cette disparition, à ma guise, par une | deuxième action sur le bouton de macro, ou un autre bouton, qui lui agirait | sur une autre macro, | Merci d'y penser ! | '***************************************** | 'Dans le haut d'un module standard, et | 'tu exécutes la procédure : PositionCalculatrice | | 'Déclaration des API | | Private Declare Function MoveWindow& Lib _ | "user32" (ByVal hwnd&, ByVal x&, ByVal y& _ | , ByVal nWidth&, ByVal nHeight&, ByVal bRepaint&) | Private Declare Function FindWindow& _ | Lib "user32" Alias "FindWindowA" _ | (ByVal lpClassName$, ByVal lpWindowName$) | Private Declare Function GetWindowRect& _ | Lib "user32" (ByVal hwnd&, lpRect As RECT) | Private Type RECT | Left As Long | Top As Long | Right As Long | Bottom As Long | End Type | '------------------------------------------- | Sub PositionCalculatrice() | | 'L = Left de l'application | 'T = Top de l'application | | 'Tu peux modifier les constantes selon | 'la position que tu veux donner à la calculatrice | | Const L& = 995, T& = 250 | Dim hwnd, R As RECT | Application.ActivateMicrosoftApp 0 | hwnd = FindWindow(vbNullString, "Calculatrice") | GetWindowRect hwnd, R | MoveWindow hwnd, L, T, R.Right - R.Left, R.Bottom - R.Top, 1 | End Sub | '------------------------------------------- | 'Salutations! ( michdenis ) | '********************************************* | Cordialement ! DC | |