Barre d'onglet avec photo
Mika
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 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
- Google maps photo maison - Guide
- Partage photo - 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