Discussion:
erreur effacer image
Add Reply
domicol
2020-06-06 15:42:42 UTC
Réponse
Permalink
Bonjour,
quand je lance cette macro il y a une erreur
"erreur d execution 1004
erreur definie par l application ou par l objet"e;
clic sur "debogage"
je rentre dans la macro
"debogage"
la macro à effacer la plage de cellule
Sub effacerimagepoint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("e;Q1:X32"e;)) Is Nothing Then 'Valeu
cadre'
s.Delete
End If
Next s
End Sub
merci
MichD
2020-06-06 18:36:41 UTC
Réponse
Permalink
Post by domicol
Bonjour,
quand je lance cette macro il y a une erreur
"erreur d execution 1004
erreur definie par l application ou par l objet"e;
clic sur "debogage"
je rentre dans la macro
"debogage"
la macro à effacer la plage de cellule
Sub effacerimagepoint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("e;Q1:X32"e;)) Is Nothing Then 'Valeur
cadre'
s.Delete
End If
Next s
End Sub
merci
Bonjour,

Essaie comme ceci :

A ) Si cette macro doit s'exécuter sur une feuille particulière,
moi, je préfère faire référence directement à cette feuille
Worksheets("Feuil1") plutôt que d'utiliser "ActiveSheet"

B ) La "Shape" doit avoir le coin supérieur gauche à l'intérieur de la
cellule Q1 et non empiéter sur la cellule P1

'-------------------------------------
Sub effacerimagepoint()
Dim S As Shape

With ActiveSheet
For Each S In .Shapes
If Not Intersect(S.TopLeftCell, .Range("Q1")) Is Nothing Then
S.Delete
End If
Next S
End With
End Sub
'-------------------------------------

MichD
domicol
2020-06-07 11:48:39 UTC
Réponse
Permalink
Post by domicol
Bonjour,
quand je lance cette macro il y a une erreur
"erreur d execution 1004
erreur definie par l application ou par l objet"e;
clic sur "debogage"
je rentre dans la macro
"debogage"
la macro à effacer la plage de cellule
Sub effacerimagepoint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("e;Q1:X32"e;)) Is Nothing Then
'Valeur cadre'
s.Delete
End If
Next s
End Sub
merci
merci pour la reponse
je voudrais esseille un autre truc
je voudrais renomme toute les images avec le même nom cela plus simple pou
effacer
j ai une boule qui copie les points a leur place prédéfini
j ai posé une condition pour renomme les images
il passe plusieurs foie dans la boucle (controlé avec la "MsgBox")
par contre il ne renomme que la premiere image qui passe par la boucle


If C <> "" Then
ShSource.Shapes(C.Value).Copy
With ShDest
.Paste .Range(C.Offset(, 2))
.Shapes(C.Value).IncrementLeft C.Offset(, 3)
.Shapes(C.Value).IncrementTop C.Offset(, 4)
MsgBox ("a")
'''''''''''' renomme image
Selection.Name = "lolo"
MsgBox ("b")
End With
ou est mon erreur
merci pour l info précedante je ne suis pas arrive a la mettre en forme
MichD
2020-06-07 12:51:40 UTC
Réponse
Permalink
Post by domicol
With ShDest
.Paste .Range(C.Offset(, 2))
.Shapes(C.Value).IncrementLeft C.Offset(, 3)
.Shapes(C.Value).IncrementTop C.Offset(, 4)
Bonjour,

L'utilisation du terme "Selection" en vba peut devenir problématique,
car il représente tantôt une cellule, une plage de cellules, une image
ou un graphe où n'importe quel objet sélectionné dans la feuille de calcul.

De plus, si tu écris la macro dans le module d'une feuille de calcul,
"Selection" désigne toujours un objet dans cette feuille et pas
nécessairement un objet dans la feuille active (celle à l'écran), celle
qui est à l'écran comparativement à une macro dans un module standard
dont l'expression "Selection" désigne un objet dans la feuille active.
Par conséquent, il faut faire très attention quant à l'usage de cette
expression "Selection". L'enregistreur de macro l'utilise de manière
systématique parce qu'il ne peut pas faire autrement!


Le nom des objets doit être différent pour chacun des objets de la
feuille. Tu peux cependant utiliser un nom générique pour chacune des
images suivi d'un index.

Dim LeNom As string, A As Long
LeNom = "toto " 'Nom générique des images

With ShDest
.Paste .Range(C.Offset(, 2))
.Shapes(C.Value).IncrementLeft C.Offset(, 3)
.Shapes(C.Value).IncrementTop C.Offset(, 4)
A = A + 1
.Shapes(C.Value).name = LeNom & A '<==== ligne ajoutée


MichD
domicol
2020-06-07 17:41:42 UTC
Réponse
Permalink
Post by domicol
Bonjour,
quand je lance cette macro il y a une erreur
"erreur d execution 1004
erreur definie par l application ou par l objet"e;
clic sur "debogage"
je rentre dans la macro
"debogage"
la macro à effacer la plage de cellule
Sub effacerimagepoint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("e;Q1:X32"e;)) Is Nothing Then
'Valeur cadre'
s.Delete
End If
Next s
End Sub
merci
ok ça marche
je n arrive pas a faire une boucle pour effacer toutes les images
toto1 effacer
toto2
toto3 etc ne
s efface pas
je suis décourage je n arrive pas a faire une boucle qui marche
un dimanche aprés midi de bidouille pour rein
MichD
2020-06-07 18:23:51 UTC
Réponse
Permalink
Bonjour,

Macrosupprimant toutes les images sont les 4 premières lettres de leur
nom débute par le générique "toto".

'---------------------------
Sub Efface_Toutes_Les_Imagees_De_La_Feuille()
Dim Sh As Shape
For Each Sh In Worksheets("Feuil1").Shapes
'Teste la shape pour savoir si c'est une image
If TypeName(Sh.OLEFormat.Object) = "Picture" Then
'Si oui, teste le nom qui doit débuter par "toto"
If LCase(Left(Sh.Name, 4)) = LCase("toto") Then
Sh.Delete
End If
End If
Next
End Sub
'---------------------------

MichD
domicol
2020-06-07 20:05:27 UTC
Réponse
Permalink
Post by domicol
Bonjour,
quand je lance cette macro il y a une erreur
"erreur d execution 1004
erreur definie par l application ou par l objet"e;
clic sur "debogage"
je rentre dans la macro
"debogage"
la macro à effacer la plage de cellule
Sub effacerimagepoint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("e;Q1:X32"e;)) Is Nothing Then
'Valeur cadre'
s.Delete
End If
Next s
End Sub
merci
génial ça marche
connaissez vous un cite ou je pourrais aquérir des connaissance en vba
vous etez trop fort
merci encore
bonne soirée
MichD
2020-06-07 20:20:33 UTC
Réponse
Permalink
Post by domicol
connaissez vous un cite ou je pourrais aquérir des connaissance en vba
À cette adresse, tu as une liste de personne connaissant très bien Excel
et qui ont un site web sur Excel, pas seulement VBA, mais tout ce qui
touche à Excel y compris les formules. Certains de ces individus ont
commis un livre sur le sujet. La majeure partie des sites sont en
anglais, mais il y en a quelque un en français.

http://www.exceluser.com/excel_help/excel-mvp-web-sites.htm

Au besoin, il te reste Google où c'est possible de trouver presque tout
surtout si tu utilises l'anglais comme langue de recherche.

MichD
domicol
2020-06-10 16:31:41 UTC
Réponse
Permalink
Post by domicol
Bonjour,
quand je lance cette macro il y a une erreur
"erreur d execution 1004
erreur definie par l application ou par l objet"e;
clic sur "debogage"
je rentre dans la macro
"debogage"
la macro à effacer la plage de cellule
Sub effacerimagepoint()
Dim s As Shape
For Each s In ActiveSheet.Shapes
If Not Intersect(s.TopLeftCell, Range("e;Q1:X32"e;)) Is Nothing Then
'Valeur cadre'
s.Delete
End If
Next s
End Sub
merci
merci pour les infos

Loading...