Excel - VBA - Photo sous condition
Fermé
Misterbean1
Messages postés
53
Date d'inscription
vendredi 13 mai 2011
Statut
Membre
Dernière intervention
22 août 2017
-
15 janv. 2015 à 11:07
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 15 janv. 2015 à 18:20
cs_Le Pivert Messages postés 7904 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 14 août 2024 - 15 janv. 2015 à 18:20
A voir également:
- Excel - VBA - Photo sous condition
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Si et excel - Guide
- Partage photo - Guide
- Photo aérienne de ma maison - Guide
8 réponses
bonjour
je vois un truc comme ca
A+
Maurice
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
Misterbean1
Messages postés
53
Date d'inscription
vendredi 13 mai 2011
Statut
Membre
Dernière intervention
22 août 2017
1
15 janv. 2015 à 15:26
15 janv. 2015 à 15:26
merci Maurice mais cette Macro ne fonctionne pas;....une autre idée ?
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 janv. 2015 à 15:37
15 janv. 2015 à 15:37
Bonjour,
Il faut connaitre le numéro du shape comme ceci:
Ensuite mettre ceci:
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
Misterbean1
Messages postés
53
Date d'inscription
vendredi 13 mai 2011
Statut
Membre
Dernière intervention
22 août 2017
1
Modifié par Misterbean1 le 15/01/2015 à 15:58
Modifié par Misterbean1 le 15/01/2015 à 15:58
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 janv. 2015 à 17:09
15 janv. 2015 à 17:09
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:
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 janv. 2015 à 17:11
15 janv. 2015 à 17:11
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
Misterbean1
Messages postés
53
Date d'inscription
vendredi 13 mai 2011
Statut
Membre
Dernière intervention
22 août 2017
1
15 janv. 2015 à 17:23
15 janv. 2015 à 17:23
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
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
15 janv. 2015 à 18:20
15 janv. 2015 à 18:20
Tu lance cette macro:
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
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