OVH Cloud OVH Cloud

Manipuler objet sur feuille non active

4 réponses
Avatar
Georges Schell
Bonjour les travailleurs du samedi !

J'ai besoin de votre aide précieuse, car je voudrais effectuer les actions
suivantes sans avoir à sélectionner la feuille :
feuille = ActiveSheet.Name
ActiveWorkbook.Sheets("2058A").Activate
ActiveSheet.Unprotect
ActiveSheet.Shapes(nom_objet).Delete
ActiveSheet.Paste
Selection.Top = 60
Selection.Left = 449
Selection.Name = nom_objet
ActiveSheet.Protect
ActiveWorkbook.Sheets(feuille).Activate
Un enfantillage pour beaucoup d'entre vous, mais de l'hébreu pour moi...
Comment écrire le code sans cet Activate ?

Merci d'avance et bien cordialement,

Georges

L'amour tue le temps, mais le temps tue l'amour...

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !

4 réponses

Avatar
anonymousA
Bonjour

set sh¬tiveworkbook.sheets("2058A")
ou set sh=workbooks("toto.xls").sheets("2058A")

with sh
.unprotect
.Shapes(nom_objet).Delete
.paste
with .shapes("nom en cours") 'nom de l'objet copié
.Top = 60
.Left = 449
.Name = nom_objet
end with
.protect
end with

A+

Bonjour les travailleurs du samedi !

J'ai besoin de votre aide précieuse, car je voudrais effectuer les actions
suivantes sans avoir à sélectionner la feuille :
feuille = ActiveSheet.Name
ActiveWorkbook.Sheets("2058A").Activate
ActiveSheet.Unprotect
ActiveSheet.Shapes(nom_objet).Delete
ActiveSheet.Paste
Selection.Top = 60
Selection.Left = 449
Selection.Name = nom_objet
ActiveSheet.Protect
ActiveWorkbook.Sheets(feuille).Activate
Un enfantillage pour beaucoup d'entre vous, mais de l'hébreu pour moi...
Comment écrire le code sans cet Activate ?

Merci d'avance et bien cordialement,

Georges

L'amour tue le temps, mais le temps tue l'amour...

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !




Avatar
Georges Schell
Merci AnonymousA pour cette réponse rapide !

Une chose n'est pas claire, c'est le nom de l'objet que l'on vient de coller
; or, ce que j'ai dans le presse-papier, c'est une image copiée à partir de
cellules, sans nom particulier.
Je ne sais donc pas très bien comment accéder à cet objet que tu appelles
"nom en cours".
Peut-être conviendrait-il de faire une copie de l'image dans la feuille en
cours, lui donner le nom nom_objet, copier cet objet, le supprimer et
effectuer le reste des opérations.
Ou bien existe-t-il qq chose de plus pro ?
J'espère que ce que je dis est compréhensible...

Bien cordialement,

Georges

dans l'article 43e4ca5d$0$18336$, anonymousA à
a écrit le 4/02/06 16:38 :

Bonjour

set sh¬tiveworkbook.sheets("2058A")
ou set sh=workbooks("toto.xls").sheets("2058A")

with sh
.unprotect
.Shapes(nom_objet).Delete
.paste
with .shapes("nom en cours") 'nom de l'objet copié
.Top = 60
.Left = 449
.Name = nom_objet
end with
.protect
end with

A+

Bonjour les travailleurs du samedi !

J'ai besoin de votre aide précieuse, car je voudrais effectuer les actions
suivantes sans avoir à sélectionner la feuille :
feuille = ActiveSheet.Name
ActiveWorkbook.Sheets("2058A").Activate
ActiveSheet.Unprotect
ActiveSheet.Shapes(nom_objet).Delete
ActiveSheet.Paste
Selection.Top = 60
Selection.Left = 449
Selection.Name = nom_objet
ActiveSheet.Protect
ActiveWorkbook.Sheets(feuille).Activate
Un enfantillage pour beaucoup d'entre vous, mais de l'hébreu pour moi...
Comment écrire le code sans cet Activate ?

Merci d'avance et bien cordialement,

Georges

L'amour tue le temps, mais le temps tue l'amour...

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !





Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !


Avatar
Alain CROS
Bonjour,

Sub CopieShape()
Dim sh As Worksheet
Set sh = ActiveWorkbook.Sheets("2058A")
With sh
.Unprotect
.Shapes("nom_objet").Delete
.Paste
With .Shapes(.Shapes.Count)
.Top = 60
.Left = 449
.Name = "nom_objet"
End With
.Protect
End With
End Sub

Alain CROS

"Georges Schell" a écrit dans le message de news: C00A97BC.448B0%
| Merci AnonymousA pour cette réponse rapide !
|
| Une chose n'est pas claire, c'est le nom de l'objet que l'on vient de coller
| ; or, ce que j'ai dans le presse-papier, c'est une image copiée à partir de
| cellules, sans nom particulier.
| Je ne sais donc pas très bien comment accéder à cet objet que tu appelles
| "nom en cours".
| Peut-être conviendrait-il de faire une copie de l'image dans la feuille en
| cours, lui donner le nom nom_objet, copier cet objet, le supprimer et
| effectuer le reste des opérations.
| Ou bien existe-t-il qq chose de plus pro ?
| J'espère que ce que je dis est compréhensible...
|
| Bien cordialement,
|
| Georges
|
| dans l'article 43e4ca5d$0$18336$, anonymousA à
| a écrit le 4/02/06 16:38 :
|
| > Bonjour
| >
| > set sh¬tiveworkbook.sheets("2058A")
| > ou set sh=workbooks("toto.xls").sheets("2058A")
| >
| > with sh
| > .unprotect
| > .Shapes(nom_objet).Delete
| > .paste
| > with .shapes("nom en cours") 'nom de l'objet copié
| > .Top = 60
| > .Left = 449
| > .Name = nom_objet
| > end with
| > .protect
| > end with
| >
| > A+
| >
| >> Bonjour les travailleurs du samedi !
| >>
| >> J'ai besoin de votre aide précieuse, car je voudrais effectuer les actions
| >> suivantes sans avoir à sélectionner la feuille :
| >> feuille = ActiveSheet.Name
| >> ActiveWorkbook.Sheets("2058A").Activate
| >> ActiveSheet.Unprotect
| >> ActiveSheet.Shapes(nom_objet).Delete
| >> ActiveSheet.Paste
| >> Selection.Top = 60
| >> Selection.Left = 449
| >> Selection.Name = nom_objet
| >> ActiveSheet.Protect
| >> ActiveWorkbook.Sheets(feuille).Activate
| >> Un enfantillage pour beaucoup d'entre vous, mais de l'hébreu pour moi...
| >> Comment écrire le code sans cet Activate ?
| >>
| >> Merci d'avance et bien cordialement,
| >>
| >> Georges
| >>
| >> L'amour tue le temps, mais le temps tue l'amour...
| >>
| >> Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
| >> adresse !
| >>
| >>
|
| Georges
|
| Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
| adresse !
|
|
Avatar
Georges Schell
Bravo Alain, excellente idée !
Ça marche au poil !
Merci aussi à AnonymousA.

Georges


dans l'article #, Alain CROS à
a écrit le 4/02/06 22:55 :

Bonjour,

Sub CopieShape()
Dim sh As Worksheet
Set sh = ActiveWorkbook.Sheets("2058A")
With sh
.Unprotect
.Shapes("nom_objet").Delete
.Paste
With .Shapes(.Shapes.Count)
.Top = 60
.Left = 449
.Name = "nom_objet"
End With
.Protect
End With
End Sub

Alain CROS

"Georges Schell" a écrit dans le message de news:
C00A97BC.448B0%
| Merci AnonymousA pour cette réponse rapide !
|
| Une chose n'est pas claire, c'est le nom de l'objet que l'on vient de coller
| ; or, ce que j'ai dans le presse-papier, c'est une image copiée à partir de
| cellules, sans nom particulier.
| Je ne sais donc pas très bien comment accéder à cet objet que tu appelles
| "nom en cours".
| Peut-être conviendrait-il de faire une copie de l'image dans la feuille en
| cours, lui donner le nom nom_objet, copier cet objet, le supprimer et
| effectuer le reste des opérations.
| Ou bien existe-t-il qq chose de plus pro ?
| J'espère que ce que je dis est compréhensible...
|
| Bien cordialement,
|
| Georges
|
| dans l'article 43e4ca5d$0$18336$, anonymousA à
| a écrit le 4/02/06 16:38 :
|
| > Bonjour
| >
| > set sh¬tiveworkbook.sheets("2058A")
| > ou set sh=workbooks("toto.xls").sheets("2058A")
| >
| > with sh
| > .unprotect
| > .Shapes(nom_objet).Delete
| > .paste
| > with .shapes("nom en cours") 'nom de l'objet copié
| > .Top = 60
| > .Left = 449
| > .Name = nom_objet
| > end with
| > .protect
| > end with
| >
| > A+
| >
| >> Bonjour les travailleurs du samedi !
| >>
| >> J'ai besoin de votre aide précieuse, car je voudrais effectuer les
actions
| >> suivantes sans avoir à sélectionner la feuille :
| >> feuille = ActiveSheet.Name
| >> ActiveWorkbook.Sheets("2058A").Activate
| >> ActiveSheet.Unprotect
| >> ActiveSheet.Shapes(nom_objet).Delete
| >> ActiveSheet.Paste
| >> Selection.Top = 60
| >> Selection.Left = 449
| >> Selection.Name = nom_objet
| >> ActiveSheet.Protect
| >> ActiveWorkbook.Sheets(feuille).Activate
| >> Un enfantillage pour beaucoup d'entre vous, mais de l'hébreu pour moi...
| >> Comment écrire le code sans cet Activate ?
| >>
| >> Merci d'avance et bien cordialement,
| >>
| >> Georges
| >>
| >> L'amour tue le temps, mais le temps tue l'amour...
| >>
| >> Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
| >> adresse !
| >>
| >>
|
| Georges
|
| Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
| adresse !
|
|




Georges

Note : Pour m¹écrire directement, supprimer un des deux tirets dans mon
adresse !