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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 06/06/20 à 11:42, domicol a écrit :
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
Le 06/06/20 à 11:42, domicol a écrit :
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
'-------------------------------------
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
Le samedi 06 Juin 2020 à 17:42 par 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 pour 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
Le samedi 06 Juin 2020 à 17:42 par 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 pour 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
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 pour 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
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
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
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
Le samedi 06 Juin 2020 à 17:42 par 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
Le samedi 06 Juin 2020 à 17:42 par 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
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
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
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
'---------------------------
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
Le samedi 06 Juin 2020 à 17:42 par 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
Le samedi 06 Juin 2020 à 17:42 par 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
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
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
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.
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
Le samedi 06 Juin 2020 à 17:42 par 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
Le samedi 06 Juin 2020 à 17:42 par 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
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