Barre d'onglet avec photo
Mika
-
via55 Messages postés 14730 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14730 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour,
Existe -il un moyen d'insérer une barre d'onglet (en haut des lignes) de facon à cliquer sur des images qui se reportent à des onglets (qui sont en bas).
J'ai 4 feuilles et j'ai réussis à créer des images avec des liens hypertexte sur le Ligne1 (4 images= 1 par feuille). Mais la barre n'est jamais pareil car elle est plus ou moins grande en fonction du zoom en % de la feuille.
J'aurais aimé avoir une barre d'onglet FIGéE sur mes 4 feuilles
Un idée
Bonjour,
Existe -il un moyen d'insérer une barre d'onglet (en haut des lignes) de facon à cliquer sur des images qui se reportent à des onglets (qui sont en bas).
J'ai 4 feuilles et j'ai réussis à créer des images avec des liens hypertexte sur le Ligne1 (4 images= 1 par feuille). Mais la barre n'est jamais pareil car elle est plus ou moins grande en fonction du zoom en % de la feuille.
J'aurais aimé avoir une barre d'onglet FIGéE sur mes 4 feuilles
Un idée
A voir également:
- Barre d'onglet avec photo
- Google photo - Télécharger - Albums photo
- Rouvrir onglet fermé chrome - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
- Windows 11 barre des taches a gauche - Guide
- Google maps photo maison - Guide
6 réponses
Bonjour
Créer une barre d'onglet je ne sais pas mais tu peux réaliser quelque chose en VBA :
1) tu crées un Userform dans lequel tu insères 4 contrôles images, pou chacun dans la propriété Picture tu choisis l'image à afficher
Tu mets la propriété Show modal de l'UF à False
Tu mets sa propriété StartUpPosition sur Manual, sa propriété Left à 0 et tu règles sa propriété Top poru qu'elle apparraisse enhaut de la feuille (environ 110, mais tout dépend ce que tu laisses afficher au dessus : barre d'outils, barre de formule ..)
2) Pour chaque contrôle image tu attribues à sa macro Private sub Image_Click un code selectionnant la feuille voulue (par exemple Feuil1.Select)
3) Dans This Worbook tu mets l'instruction :
Private Sub Workbook_Open()
Userform1.show
End Sub
afin que l'UF s'affiche à l'ouverture du classeur
Tu peux réduire ou augmenter le zoom l'UF restera identique
Cdlmnt
Créer une barre d'onglet je ne sais pas mais tu peux réaliser quelque chose en VBA :
1) tu crées un Userform dans lequel tu insères 4 contrôles images, pou chacun dans la propriété Picture tu choisis l'image à afficher
Tu mets la propriété Show modal de l'UF à False
Tu mets sa propriété StartUpPosition sur Manual, sa propriété Left à 0 et tu règles sa propriété Top poru qu'elle apparraisse enhaut de la feuille (environ 110, mais tout dépend ce que tu laisses afficher au dessus : barre d'outils, barre de formule ..)
2) Pour chaque contrôle image tu attribues à sa macro Private sub Image_Click un code selectionnant la feuille voulue (par exemple Feuil1.Select)
3) Dans This Worbook tu mets l'instruction :
Private Sub Workbook_Open()
Userform1.show
End Sub
afin que l'UF s'affiche à l'ouverture du classeur
Tu peux réduire ou augmenter le zoom l'UF restera identique
Cdlmnt
Bonjour,
L'idée de via n'est pas mal.
Moi je me suis embêté à jouer avec le zoom.
Seulement ce n'est pas détectable par vba. Les images s'ajustent sur recalcul de la feuille (F9 ou revalider une formule), ou bien en allant sur une autre feuille et en revenant dessus.
Les images doivent s'appeler "Image 1" à "Image 4". Sinon les renommer ou adapter le code.
A mettre dans ThisWorkBook :
https://www.cjoint.com/?DJFqKzWiIkB
eric
L'idée de via n'est pas mal.
Moi je me suis embêté à jouer avec le zoom.
Seulement ce n'est pas détectable par vba. Les images s'ajustent sur recalcul de la feuille (F9 ou revalider une formule), ou bien en allant sur une autre feuille et en revenant dessus.
Les images doivent s'appeler "Image 1" à "Image 4". Sinon les renommer ou adapter le code.
A mettre dans ThisWorkBook :
Option Explicit
Dim varOk As Boolean
Dim memoZoom As Long, memoLeft(1 To 4) As Long, memoTop(1 To 4) As Long
Private Sub Workbook_Open()
Dim Sh As Worksheet, i As Long
Set Sh = ActiveSheet
With Sheets("Feuil1")
.Activate
memoZoom = ActiveWindow.Zoom
For i = 1 To 4
memoLeft(i) = .Shapes("Image " & i).Left
memoTop(i) = .Shapes("Image " & i).Top
Next i
End With
Sh.Activate
varOk = True
End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "Feuil1" Then majZoom
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Sh.Name = "Feuil1" Then majZoom
End Sub
Sub majZoom()
Dim s As Shape, i As Long
If ActiveWindow.Zoom <> memoZoom And varOk Then
For i = 1 To 4
ActiveSheet.Shapes("Image " & i).Select
Selection.ShapeRange.ScaleWidth memoZoom / ActiveWindow.Zoom, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight memoZoom / ActiveWindow.Zoom, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.Left = memoLeft(i) * memoZoom / ActiveWindow.Zoom
memoLeft(i) = Selection.ShapeRange.Left
Selection.ShapeRange.Top = memoTop(i) * memoZoom / ActiveWindow.Zoom
memoTop(i) = Selection.ShapeRange.Top
Next i
memoZoom = ActiveWindow.Zoom
End If
End Sub
https://www.cjoint.com/?DJFqKzWiIkB
eric
Bonjour,
Merci via55, j'ai réussis l'idée est pas mal. Savez vous s'il est possible de changer d'image lorsqu'on choisit l'onglet correspondant, histoire de savoir dans quel onglet on se trouve (changer la couleur du logo par exemple).
Merci
Merci via55, j'ai réussis l'idée est pas mal. Savez vous s'il est possible de changer d'image lorsqu'on choisit l'onglet correspondant, histoire de savoir dans quel onglet on se trouve (changer la couleur du logo par exemple).
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Mika
oui c'est possible de charger une autre image avec l'instruction :
Image1.Picture = LoadPicture(chemin complet du fichier)
le chemin complet étant par exemple "C:\Mes documents\Mes images\logoABC.jpg"
L'instruction est à mettre dans Private sub Image_Click avant celle selectionnant la feuille mais il faut en même temps remettre en normal les autres images (puisque celle qui a été cliqué avant a été modifiée) donc en fait il faut mettre 4 instructions (si tu as 4 images)
Image1.Picture = LoadPicture(chemin complet du fichier de l'image 1 modifiée au clic)
Image2.Picture = LoadPicture(chemin complet du fichier de l'image 2 normale)
Image3.Picture = LoadPicture(chemin complet du fichier de l'image 3normale)
Image4.Picture = LoadPicture(chemin complet du fichier de l'image 4normale)
Cdlmnt
oui c'est possible de charger une autre image avec l'instruction :
Image1.Picture = LoadPicture(chemin complet du fichier)
le chemin complet étant par exemple "C:\Mes documents\Mes images\logoABC.jpg"
L'instruction est à mettre dans Private sub Image_Click avant celle selectionnant la feuille mais il faut en même temps remettre en normal les autres images (puisque celle qui a été cliqué avant a été modifiée) donc en fait il faut mettre 4 instructions (si tu as 4 images)
Image1.Picture = LoadPicture(chemin complet du fichier de l'image 1 modifiée au clic)
Image2.Picture = LoadPicture(chemin complet du fichier de l'image 2 normale)
Image3.Picture = LoadPicture(chemin complet du fichier de l'image 3normale)
Image4.Picture = LoadPicture(chemin complet du fichier de l'image 4normale)
Cdlmnt
D'accord merci,
Il n'y aura pas de soucis si j'ouvre mon fichier sur un autre PC où il ne trouvera pas la photo ?
Il n'y aura pas de soucis si j'ouvre mon fichier sur un autre PC où il ne trouvera pas la photo ?
Si !!
A partir du moment où tu utilise des images (qu'elles soient modifiées ou non) elles doivent être disponibles
Tu peux avoir le fichier excel et les images dans le même dossier sur une clé USB par exemple et l'utiliser sur un autre PC
Dans la macro récupère le chemin du fichier avec Activeworkbook.path
chem=Activeworkbook.path
ensuite tu l'utilises pour trouver l'image en y ajoutant le nom et l'extension de l'image :
Image1.Picture = LoadPicture(chem & "\logoABC1.jpg")
Cdlmnt
A partir du moment où tu utilise des images (qu'elles soient modifiées ou non) elles doivent être disponibles
Tu peux avoir le fichier excel et les images dans le même dossier sur une clé USB par exemple et l'utiliser sur un autre PC
Dans la macro récupère le chemin du fichier avec Activeworkbook.path
chem=Activeworkbook.path
ensuite tu l'utilises pour trouver l'image en y ajoutant le nom et l'extension de l'image :
Image1.Picture = LoadPicture(chem & "\logoABC1.jpg")
Cdlmnt