Redimensionner une image à la taille écran

mifetmaf

XLDnaute Nouveau
Bonjour,
j'ai crée un tableau de bord d'indicateurs sous Excel 2007. Ce tableau de bord est partagé entre plusieurs utilisateurs
Je me heurte à deux problèmes:
1- J'ai inséré un logo (image) en arrière plan. Ce logo devrait prendre la taille de l'écran. Le problème réside dans le fait que les utilisateurs n'ont pas les mêmes écrans (taille, résolution). Le logo peut donc faire la taille de l'écran pour un utilisateur, et la moitié de l'écran pour un autre. Y a t il possibilité de programmer l'image afin qu'ells s'adapte automatiquement à la taille et résolution des différents écran?
2- Second soucis, peut on positionner des macros avec des valeurs relatives (en fonction des bord de l'écran) afin qu'elles se trouve toujours au même endroit (par rapport à l'image d'arrière plan), quelque soit l'écran utilisé
Merci d'avance

PS: Je suis néophyte en VBA
 

job75

XLDnaute Barbatruc
Re : Redimensionner une image à la taille écran

Bonjour mifetmaf, bienvenue sur XLD.

Je comprends que vous avez 2 images, Image 1 à adapter à la taille de la fenêtre (pas de l'écran), Image 2 à dimensionner et positionner.

Clic droit sur chacune des images => Format de l'image => onglet Dimension et vérifier que les cases "Proportionnel" sont bien cochées.

Aller dans VBA (Alt+F11), double-clic sur ThisWorkbook et y coller le code suivant :

Code:
Private Sub Workbook_Open() 'déclanchement de la macro à l'ouverture du fichier
Dim k1, k2, k3
'rapports à déterminer préalablement
k1 = 0.5
k2 = 0.18
k3 = 0.25
With Sheets("Feuil1").Shapes("Image 1") 'noms à adapter
  .Width = ActiveWindow.Width 'Ajustement de la taille de "Image 1"
End With
With Sheets("Feuil1").Shapes("Image 2") 'noms à adapter
  .Width = k1 * ActiveWindow.Width 'Ajustement de la taille de "Image 2"
  .Top = k2 * ActiveWindow.Width 'position relative du bord supérieur
  .Left = k3 * ActiveWindow.Width 'position relative du bord gauche
End With
End Sub

Comme indiqué, les coefficients k1 k2 k3 sont à déterminer préalablement par tâtonnements ou mesures.

A+
 
Dernière édition:

mifetmaf

XLDnaute Nouveau
Re : Redimensionner une image à la taille écran

Bonjour Job75 et merci pour votre réponse.
Malheureusement je pense avoir mal formulé mon soucis.
Je tente d'être plus clair:

- Le tableau de bord est un fichier Excel 2007 partagé en réseau entre différents utilisateurs.
- Les 5 premières feuilles du fichier sont des menus et sous menus auxquels on accède à l'aide de boutons (macros)

Exemple:
- Ouverture systématiquement à la première feuille où figure deux boutons.
Le bouton 1 redirige à la feuille 2
Le bouton 2 redirige à la feuille 3
- La feuille 2 (sous menu de la feuille 1) possède différents boutons qui redirigent vers d'autres feuilles (où figurent les tableaux de saisie de statistiques)
- Idem pour la feuille 3

Mon soucis est le suivant.
-J'ai collé une image en fond d'écran sur les 5 premières feuilles et j'aimerai que, quelquesoit l'utilisateur, cette image apparaisse sur la fenêtre entière quelque soit la résolution de l'utilisateur.
Deuxième soucis, j'aimerai que les boutons gardent leur taille et place d'origine sur le fond d'écran

Merci pour votre aide
 

mifetmaf

XLDnaute Nouveau
Re : Redimensionner une image à la taille écran

Bonjour Jokair,

Essayons de résoudre notre problème ensemble (et avec l'aide de la communauté bien sur!).
J'ai copié/collé l'image en fond d'écran. Dans ton message tu dis l'avoir inséré via macro. Peux tu me dire comment tu as fais et quels sont selon toi les avantages de cette méthode.
J'ai utilisé le code de Job75 (que je remercie au passage pour son aide) et cela est très interessant pour adapter l'image à la largeur de la fenêtre. Je recherche maintenant le même code pour adapter l'image à la hauteur de la fenêtre (le résultat avec la case "proportionnelle" cochée n'est pas satisfaisante)

Au plaisir à tous...
 

jokair

XLDnaute Nouveau
Re : Redimensionner une image à la taille écran

J'ai utilisé cette macro:

Code:
Sub cmd_micro_inserer_Click()
MaHauteur = 140
Range("photo_micro").Select
Call selectionner_image
End Sub

Code:
Sub selectionner_image()

If MsgBox("Parcourir pour sélectionner la photo à insérer?", vbYesNo, "Insertion de la photo") = vbYes Then
reponse = Application.Dialogs(xlDialogInsertPicture).Show
            If reponse = True Then
            With Selection.ShapeRange
            .LockAspectRatio = msoTrue
            .ScaleHeight 1, False
            .ScaleWidth 1, False
            .Height = MaHauteur
           '.Width = MaLargeur
            .LockAspectRatio = msoTrue
            .IncrementTop 0
            .IncrementLeft 0
            .ZOrder msoBringToFront

            End With
            End If
End If
End Sub

Voilou
 

Discussions similaires

Statistiques des forums

Discussions
312 932
Messages
2 093 727
Membres
105 801
dernier inscrit
ilitch