vérifier si shapes existe

andrekn13

XLDnaute Occasionnel
bonjour
Soit les réponses que je trouve m 'aident pas, ou c' est franchement trop compliqué
je cherche simplement à vérifier sur ma feuille si j' ai tel shapes , si oui, alors
la seule syntaxe que je connaisse sur mon objet est :
ActiveSheet.Shapes.Range(Array("plaque transfert devis")).Select
sur mon fichier test , 1ère feuille, 1er bouton
pour celui qui peut me répondre sans voir le fichier
Dim sHape As Shapes
On Error Resume Next
Set sHape = Sheets(1).Shapes("plaque transfert devis").Name
On Error GoTo 0

If sHape Is Nothing Then
MsgBox "ma plaque n'y est pas" & Sheets(1).Name
Exit Sub
Else
MsgBox "zut " & Sheets(1).Name
End If

Merci pour votre aide
 

Pièces jointes

  • plaques refaites noms.xlsm
    107.6 KB · Affichages: 60

Roland_M

XLDnaute Barbatruc
Re : vérifier si shapes existe

bonsoir,

voir ce code qui peut t'aider à voir et comprendre !?
mettre dans un module et taper F5 !

Code:
Private Sub AffichShapes()
Dim F As Worksheet, S As Shape
For Each F In ThisWorkbook.Worksheets
For Each S In F.Shapes
 MsgBox F.Name & " > " & S.Name & vbLf & "Type = " & S.Type
Next: Next
Set F = Nothing: Set S = Nothing
End Sub
 

Roland_M

XLDnaute Barbatruc
Re : vérifier si shapes existe

re:

ben faut croire que oui :confused::confused::confused: ;)

allez, soyons plus sérieux, tu colles ce code en haut dans ton Module1
tu clis dessus pour placer ton curseur dessus et tu Tapes F5
tu verras s'afficher les feuilles et les objets qu'il y a dedans !
apparemment il y en a une flopée !
 

andrekn13

XLDnaute Occasionnel
Re : vérifier si shapes existe

je viens de lire ta réponse, etne pansais qu'il fallait sortir , et seulement sur la feuille faire F5 ;................
en tout cas ton code marche nickel( en sub normal par bouton, entre temps)
alors dans la foulée, mon but est donc de vérifier que je n'ai pas un shape spécifique , j'ai essayé en adaptant........
et évidement je cumule .....
For Each S In ActiveSheet.Shapes
If S.Name = "plaque transfert devis" Then

MsgBox ActiveSheet.Name & " > " & S.Name & vbLf & "Type = " & S.Type
Next

encore un petit coup de pouce ? hier j'ai posté mon gros soucis sur un if , j'en nage encore, ou plutôt je coule
 

Roland_M

XLDnaute Barbatruc
Re : vérifier si shapes existe

re

le problème c'est qu'on ne comprends pas très bien la question !?
peut être !?

Code:
Dim S As Shape, Trouve As Boolean
Trouve = False
For Each S In ActiveSheet.Shapes
 If S.Name = "plaque transfert devis" Then Trouve = True: Exit For
Next
If Trouve Then
 'ici action de ce que tu souhaites si existe !? ou pas !?
End If
 

andrekn13

XLDnaute Occasionnel
Re : vérifier si shapes existe

voilà j'ai pondu ça, mais ça marche à l'envers ! je comprends pas , SI....condition OK..alors.....instruction
Sub AffichShapes3()
Dim S As sHape

For Each S In ActiveSheet.Shapes
If S.Name = "plaque validation N° facture" Then
MsgBox S.Name
Else
MsgBox "rien"
End If
Next:
Set S = Nothing
End Sub

???? merci
 

andrekn13

XLDnaute Occasionnel
Re : vérifier si shapes existe

C'est ça !!!!
mais juste une question, juste après "exit for
j'ai mis MsgBox "enfin trouvé !"
et il m'a répété plein de fois le msgbox, pourtant , j'ai cru comprendre que ça servait à sortir de la boucle dès que l'on trouve un bonne réponse ?
 

andrekn13

XLDnaute Occasionnel
Re : vérifier si shapes existe

NICKEL
je te suis trop reconnaissant
Sub AffichShapes5()
Dim S As sHape, Trouve As Boolean
Trouve = False
For Each S In ActiveSheet.Shapes
If S.Name = "plaque facture validée" Then Trouve = True: Exit For
Range("I5") = "ZUT"
'MsgBox "enfin trouvé !"
Next
If Trouve Then
MsgBox "enfin trouvé !"
Range("I5") = "OK" 'ici action de ce que tu souhaites si existe !? ou pas !?
End If
End Sub
merci
 

Roland_M

XLDnaute Barbatruc
Re : vérifier si shapes existe

re

Code:
'recherche si exite
Dim S As Shape, Trouve As Boolean
Trouve = False
For Each S In ActiveSheet.Shapes
 'si trouvé sortir de For
 If S.Name = "plaque transfert devis" Then Trouve = True: Exit For
Next

'une fois sortie je test si trouvé ou pas
If Trouve Then
   'ici trouvé suite de ce que tu souhaites si existe !?
Else
   'ici non trouvé suite de ce que tu souhaites si n'existe pas !?
End If
 

Discussions similaires

Réponses
6
Affichages
367

Statistiques des forums

Discussions
314 667
Messages
2 111 701
Membres
111 264
dernier inscrit
Monnoye