Mettre une image au bottom VBA -EXCEL

Joe -  
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 ?
A voir également:

6 réponses

Bidouilleu_R Messages postés 1181 Date d'inscription   Statut Membre Dernière intervention   295
 
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
0
Joe
 
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 ?
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
Salut,

Baisse la valeur Top

+20 par exemple
0
Joe
 
Non je voudrais que le programme fonctionne quelque soit l'ordinateur ! On ne va pas changer la valeur du top pour chaque ordinateur !
Faut donc donc trouver un truc permettant de se mettre en bas quelque soit l'écran, quelque soit le zoomage, sans rechanger le code vba à chaque fois !
0
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 18407 Date d'inscription   Statut Contributeur Dernière intervention   5 135
 
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
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour,

tu n'as pas .bottom mais tu as .height

eric
0

Discussions similaires