Mettre une image au bottom VBA -EXCEL
Joe
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Amis amateur de VBA, bonjour,
J'ai créé tout un projet à l'aide de vba (assez long ^^)...
Et j'ai un problème qui me gène vraiment : j'ai inséré des images dans ma feuille excel qui me servent à lancer mes macros, et je souhaiterais les mettre en permanence en bas (au bottom) de ma feuille excel. j'ai déjà la macro suivante :
Sub resizePic()
'permet de replacer les boutons a leur place en bas
Dim rngCanSee As Range
Set ecran = ActiveWindow.VisibleRange
With ActiveSheet.Pictures(1)
.Left = ecran.Left
.Top = ecran.Top + 430
End With
With ActiveSheet.Pictures(2)
.Left = ecran.Left + 30
.Top = ecran.Top + 430
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'appelle la fonction du dessus si l'utilisateur bouge la cellule active.
Call resizePic
End Sub
'Donc si l'utilisateur bouge via le clavier dans la feuille excel, on replace les boutons
Cependant cette macro ne marche que pour les écrans qui ont la même config que le mien. Exemple un écran en 16/9, avec moins de hauteur verra les images être replacé plus bas que l'écran visible...
Or, ActiveWindow.VisibleRange.Bottom n'existant pas, comment pourrais-je faire ?
J'ai créé tout un projet à l'aide de vba (assez long ^^)...
Et j'ai un problème qui me gène vraiment : j'ai inséré des images dans ma feuille excel qui me servent à lancer mes macros, et je souhaiterais les mettre en permanence en bas (au bottom) de ma feuille excel. j'ai déjà la macro suivante :
Sub resizePic()
'permet de replacer les boutons a leur place en bas
Dim rngCanSee As Range
Set ecran = ActiveWindow.VisibleRange
With ActiveSheet.Pictures(1)
.Left = ecran.Left
.Top = ecran.Top + 430
End With
With ActiveSheet.Pictures(2)
.Left = ecran.Left + 30
.Top = ecran.Top + 430
End With
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'appelle la fonction du dessus si l'utilisateur bouge la cellule active.
Call resizePic
End Sub
'Donc si l'utilisateur bouge via le clavier dans la feuille excel, on replace les boutons
Cependant cette macro ne marche que pour les écrans qui ont la même config que le mien. Exemple un écran en 16/9, avec moins de hauteur verra les images être replacé plus bas que l'écran visible...
Or, ActiveWindow.VisibleRange.Bottom n'existant pas, comment pourrais-je faire ?
A voir également:
- Mettre une image au bottom VBA -EXCEL
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Image iso - Guide
6 réponses
je n'ai pas de réponse directe mais un lien
https://silkyroad.developpez.com/VBA/UserForm/
note aussi que les paramètres de l'écran sont dans la base de registre de windows et SilkyRoad te montre tout ça.
bon week end
https://silkyroad.developpez.com/VBA/UserForm/
note aussi que les paramètres de l'écran sont dans la base de registre de windows et SilkyRoad te montre tout ça.
bon week end
J'ai essayé 2, 3 trucs du lien sans réel résultas.
Si on zoome ou dézoome la feuille excel, les images ne sont plus en bas non plus. pourtant la taille de l'écran n'a pas changé !
Donc comment faire ?
Si on zoome ou dézoome la feuille excel, les images ne sont plus en bas non plus. pourtant la taille de l'écran n'a pas changé !
Donc comment faire ?
Re,
je ne crois pas que ce soit possible, je vais essayer d'écrire un code sans garantie. mais ton Top peux faire référence à la dernière ligne visible d'un écran exemple en A1 si la dernière ligne est 33 tu saisis par exemple 30*10 soit 300
et dans ton code
.Top = ecran.Top + [A1]
je ne crois pas que ce soit possible, je vais essayer d'écrire un code sans garantie. mais ton Top peux faire référence à la dernière ligne visible d'un écran exemple en A1 si la dernière ligne est 33 tu saisis par exemple 30*10 soit 300
et dans ton code
.Top = ecran.Top + [A1]
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
teste ce code,
Sub resizePic()
'permet de replacer les boutons a leur place en bas
Dim rngCanSee As Range
Dim Valzoum As Integer
Valzoum = ActiveWindow.Zoom
Set ecran = ActiveWindow.VisibleRange
C2 = ActiveWindow.VisibleRange.Rows.Count
C4 = C2 * (10 - Valzoum / 100)
With ActiveSheet.Pictures(1)
.Left = ecran.Left
.Top = ecran.Top + C4
End With
With ActiveSheet.Pictures(2)
.Left = ecran.Left + 40
.Top = ecran.Top + C4
End With
End Sub
teste ce code,
Sub resizePic()
'permet de replacer les boutons a leur place en bas
Dim rngCanSee As Range
Dim Valzoum As Integer
Valzoum = ActiveWindow.Zoom
Set ecran = ActiveWindow.VisibleRange
C2 = ActiveWindow.VisibleRange.Rows.Count
C4 = C2 * (10 - Valzoum / 100)
With ActiveSheet.Pictures(1)
.Left = ecran.Left
.Top = ecran.Top + C4
End With
With ActiveSheet.Pictures(2)
.Left = ecran.Left + 40
.Top = ecran.Top + C4
End With
End Sub