Excel - VBA - Photo sous condition

Misterbean1 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   -  
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'essaye de finaliser une macro permettant de rendre visible une photo d'une série de Cellules sous conditions, je m'explique:
Si la cellule "L2" de la FEUILLE1 contient "X", dans ce cas l'IMAGE5 sera visible sur laFEUILLE2, sinon l'image ne doit pas être visible sur la FEUILLE2. Voici le code créé à base de source diverses, mais cela ne fonctionne pas (le mode Debug s'active)

Quelqu'un pourrait m'aider ? Merciiiii

Sub Photo()
If ActiveSheet.Range("L2") = "X" Then Sheets ("FEUILLE2") .Shapes("Picture5").Visible = True Else Sheets ("FEUILLE2") .Shapes("Picture5").Visible = False
End If
End Sub
A voir également:

8 réponses

Maurice
 
bonjour

je vois un truc comme ca
Sub Photo()
   If UCase(Range("L2").Value) = "X" Then
         Sheets("FEUILLE2").ActiveSheet.Shapes("Picture5").Visible = True
      Else
         Sheets("FEUILLE2").ActiveSheet.Shapes("Picture5").Visible = False
   End If
End Sub

A+
Maurice
0
Misterbean1 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   1
 
merci Maurice mais cette Macro ne fonctionne pas;....une autre idée ?
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

Il faut connaitre le numéro du shape comme ceci:

Sub shapes_count()
   Dim intCounter As Integer
    Dim intShapeCount As Integer
    Dim img As Object
  Set img = Worksheets(1).Shapes ' feuille a adapter
   intShapeCount = img.Count
  If intShapeCount > 0 Then
        For intCounter = 1 To intShapeCount
            MsgBox img.Item(intCounter).Name
             MsgBox "Shape n° " & (intCounter)
 Next intCounter
    Else
         MsgBox "No Shapes"
    End If
 End Sub


Ensuite mettre ceci:

Dim  myDocument 
Set myDocument = Worksheets(1) ' feuille a adapter
myDocument.Shapes(26).Visible = True 'N° shape a adapter 

0
Misterbean1 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci "Le Pivert",
Il y a certainement une bonne idée mais certaines choses m'échappe (je ne suis pas spécialiste VBA)

* Je ne vois rien qui lie le code à la condition mentionnée (coller l'image SI la cellule L2 contient "X") ?

* Qu'entendez-vous par " Ensuite mettre ceci:" Les trois lignes de codes doivent elles être mise dans le même module que les 15 précédentes ? Si oui, pourquoi après le End Sub ?

* Concernant le Shape: s'agit-il de l'image ? si oui, je connais la référence c'est "Picture5" sinon, de quoi s'agit-il exactement ?

Désolé si questions basiques, mais suis en apprentissage.....


d'avance merci pour votre support.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Il faut mettre un numéro de shape!!!

Avec la 1ère macro tu as ton numéro de shape, ensuite tu mets ton code:


Sub Photo()
Dim  myDocument 
  If UCase(Range("L2").Value) = "X" Then
     Set myDocument = Worksheets(2) ' feuille a adapter
myDocument.Shapes(26).Visible = True 'N° shape a adapter     
 Else
         Set myDocument = Worksheets(2) ' feuille a adapter
myDocument.Shapes(26).Visible = False'N° shape a adapter   End If
End Sub
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Le End If est mal positionné

Sub Photo()
Dim  myDocument 
  If UCase(Range("L2").Value) = "X" Then
     Set myDocument = Worksheets(2) ' feuille a adapter
myDocument.Shapes(26).Visible = True 'N° shape a adapter     
 Else
         Set myDocument = Worksheets(2) ' feuille a adapter
myDocument.Shapes(26).Visible = False'N° shape a adapter  
 End If
End Sub

0
Misterbean1 Messages postés 53 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci Le Pivert.
Concernant le nr de Shape, vu que j'ai une photo variable (collée en "linked picture" - dont l'image se met automatiquement àjour en fonction du contenu des cellules) et cette image est référencée comme Picture8 par Excel, dois-je écrire le code comme suit ?

Si non, comment dois-je procéder afin d'obtenir/déterminer quel est le Nr de Shape lié à cette photo ?

D'avance merci

Sub Photo()
Dim myDocument
If UCase(Range("L2").Value) = "X" Then
Set myDocument = Worksheets("FEUILLE2") ' feuille a adapter
myDocument.Shapes(Picture8).Visible = True 'N° shape a adapter
Else
Set myDocument = Worksheets("FEUILLE2") ' feuille a adapter
myDocument.Shapes(Picture8).Visible = False'N° shape a adapter
End If
End Sub
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Tu lance cette macro:

Sub shapes_count()
   Dim intCounter As Integer
    Dim intShapeCount As Integer
    Dim img As Object
  Set img = Worksheets(2).Shapes ' feuille a adapter
   intShapeCount = img.Count
  If intShapeCount > 0 Then
        For intCounter = 1 To intShapeCount
            MsgBox img.Item(intCounter).Name
             MsgBox "Shape n° " & (intCounter)
 Next intCounter
    Else
         MsgBox "No Shapes"
    End If
 End Sub


Tu vas avoir un MsgBox t'indiquant le nom de la Picture et toute de suite après un MsgBox avec le N° de la shape

Tu mets ce N° dans le code que je t'ai donné.

Tu as bien vu qu'avec ton code avec Picture8 cela ne fonctionnait pas
0