OVH Cloud OVH Cloud

Image et Excel

6 réponses
Avatar
Nadia.b
Bonjour a toutes et tous.

Je voudrais savoir s'il y a un moyen d'insérer une image à un endroit précis
d'Excel (sur plusieurs cellules en même temps) et par la suite interdire
l'accès (déplacement) de cette image aux autres utilisateurs potentiels.

Merci d'avance de vos réponses.

Nadia

P.S.
Je souhaite encore à vous tous de joyeuses fêtes de fin d'année

6 réponses

Avatar
michdenis
Bonjour Nadia,

Tu copies ce qui suit dans un module standard.
Pour la protection, tu dois protéger ta feuille mais
seulement les objets.

'--------------------------
Sub TestMonImage()

'InsérerImage "NomOngletDeLaFeuille", ÉtendueDeLaPlageCellule), _
'"CheminEtNomDeL'image"
InsérerImage "Feuil2", Range("b5:D6"), "C:WinntPlume.bmp"

End Sub
'--------------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'--------------------------


Salutations!






"Nadia.b" a écrit dans le message de news:
Bonjour a toutes et tous.

Je voudrais savoir s'il y a un moyen d'insérer une image à un endroit précis
d'Excel (sur plusieurs cellules en même temps) et par la suite interdire
l'accès (déplacement) de cette image aux autres utilisateurs potentiels.

Merci d'avance de vos réponses.

Nadia

P.S.
Je souhaite encore à vous tous de joyeuses fêtes de fin d'année
Avatar
Nadia.b
Bonjour Michdenis,
je te remercie pour ton aide. Ce code fonctionne bien.
J'aurais, si j'ose une seconde demande toujours dans le type avec des
images.
Comment faire apparaitre une image, selon une condition et qu'elle
disparaisse, si la condition n'est pas remplie. Donc, si j'ai dans la
cellule A1=> 12 (apparition d'une l'image)
si A1<12 (disparition d'une image)
Merci à toi encore
Nadia

"michdenis" a écrit dans le message de
news:%
Bonjour Nadia,

Tu copies ce qui suit dans un module standard.
Pour la protection, tu dois protéger ta feuille mais
seulement les objets.

'--------------------------
Sub TestMonImage()

'InsérerImage "NomOngletDeLaFeuille", ÉtendueDeLaPlageCellule), _
'"CheminEtNomDeL'image"
InsérerImage "Feuil2", Range("b5:D6"), "C:WinntPlume.bmp"

End Sub
'--------------------------

Sub InsérerImage(Feuille As String, Rg As Range, NomImage As String)

With Worksheets(Feuille)
Largeur = Rg.Offset(, 1)(, Rg.Columns.Count).Left - Rg.Left
Hauteur = Rg.Offset(Rg.Rows.Count).Top - Rg(1).Top
Set Image = .Pictures.Insert(NomImage)
End With
With Image
.Left = Rg.Left
.Top = Rg.Top
'Largeur de l'image
Image.Width = Largeur
'Hauteur de l'image
Image.Height = Hauteur
'Est-ce que l'image doit se déplacer avec les cellules
'voici les 3 constantes possibles
.Placement = xlFreeFloating 'or xlmove or xlMoveAndSize
'Verrouillé ou pas
.Locked = True 'or False
End With
Set Rg = Nothing

End Sub
'--------------------------


Salutations!






"Nadia.b" a écrit dans le message de news:


Bonjour a toutes et tous.

Je voudrais savoir s'il y a un moyen d'insérer une image à un endroit
précis

d'Excel (sur plusieurs cellules en même temps) et par la suite interdire
l'accès (déplacement) de cette image aux autres utilisateurs potentiels.

Merci d'avance de vos réponses.

Nadia

P.S.
Je souhaite encore à vous tous de joyeuses fêtes de fin d'année





Avatar
JB
Bonjour,


http://cjoint.com/?mAgh0pihjD

Solution1: saisie du nombre dans la cellule B1

A B
1 Nombre 15

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
If Target.Value >= 12 Then
ActiveSheet.Shapes("gidel").Visible = True
Else
ActiveSheet.Shapes("gidel").Visible = False
End If
End If
End Sub

Solution 2:

On appelle une fonction perso qui teste la valeur de B6 (somme d'autres
cellules).
Dès que la cellule depasse 100, l'image nommée Gidel apparait

¯fichecache(B6;100;"gidel")

Function AfficheCache(nb, seuil, image)
If nb > seuil Then
ActiveSheet.Shapes(image).Visible = True
Else
ActiveSheet.Shapes(image).Visible = False
End If
afffichecache = 0
End Function


Cordialement JB
Avatar
Nadia.b
Hello JB,
Merci pour ton aide. Ces deux façons de faire me conviennent très bien.
Salutations.
Nadia



"JB" a écrit dans le message de
news:
Bonjour,


http://cjoint.com/?mAgh0pihjD

Solution1: saisie du nombre dans la cellule B1

A B
1 Nombre 15

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$1" Then
If Target.Value >= 12 Then
ActiveSheet.Shapes("gidel").Visible = True
Else
ActiveSheet.Shapes("gidel").Visible = False
End If
End If
End Sub

Solution 2:

On appelle une fonction perso qui teste la valeur de B6 (somme d'autres
cellules).
Dès que la cellule depasse 100, l'image nommée Gidel apparait

¯fichecache(B6;100;"gidel")

Function AfficheCache(nb, seuil, image)
If nb > seuil Then
ActiveSheet.Shapes(image).Visible = True
Else
ActiveSheet.Shapes(image).Visible = False
End If
afffichecache = 0
End Function


Cordialement JB
Avatar
JB
Qq exemples de gestion d'images

http://cjoint.com/?mBgaElq7dA

Cordialement JB
Avatar
Nadia.b
Salut JB,
merci pour le fichier.
Super exemple.

Bonne année
Nadia


"JB" a écrit dans le message de
news:
Qq exemples de gestion d'images

http://cjoint.com/?mBgaElq7dA

Cordialement JB