Barre d'onglet avec photo
Fermé
Mika
-
31 oct. 2014 à 14:45
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 - 4 nov. 2014 à 21:26
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 - 4 nov. 2014 à 21:26
A voir également:
- Barre d'onglet avec photo
- Traduction photo gratuit - Guide
- Photo de profil - Guide
- Partage photo - Guide
- Photo aérienne de ma maison - Guide
- Photo filtre gratuit - Télécharger - Retouche d'image
6 réponses
via55
Messages postés
14405
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2024
2 703
31 oct. 2014 à 16:16
31 oct. 2014 à 16:16
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
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
31 oct. 2014 à 16:33
31 oct. 2014 à 16:33
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
Je vois le code sur 1 seul ligne c'est normal ?
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
3 nov. 2014 à 10:36
3 nov. 2014 à 10:36
Pas bonjour non plus,
et merci pour commencer ? Jamais ?
eric
et merci pour commencer ? Jamais ?
eric
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
3 nov. 2014 à 11:21
3 nov. 2014 à 11:21
de toute façon je ne comprend pas ta question.
Le code est lisible en entier ici, ainsi que sur le fichier dans thisworkbook.
eric
Le code est lisible en entier ici, ainsi que sur le fichier dans thisworkbook.
eric
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
3 nov. 2014 à 17:32
3 nov. 2014 à 17:32
dans le fichier ???
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
via55
Messages postés
14405
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2024
2 703
4 nov. 2014 à 16:14
4 nov. 2014 à 16:14
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 ?
via55
Messages postés
14405
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
25 avril 2024
2 703
4 nov. 2014 à 21:26
4 nov. 2014 à 21:26
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