Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

copie d'un objet dans un onglet non visible

14 réponses
Avatar
Bonjour

Voici la formule que j'utilise aujourd'hui pour copier une image dans
plusieurs onglets du même fichier.

Comment faire pour que l'image se copie même si la feuille n'est pas visible
?
Comment aussi controler l'existence de la feuille ?

Merci

Sheets("feuil1").Select
ActiveSheet.Shapes("Image 6").Select
Selection.Copy
Range("H131").Select
ActiveSheet.Paste

If Sheets("feuil2").Visible = True Then
Sheets("feuil2").Select
Range("I42").Select
ActiveSheet.Paste........................

10 réponses

1 2
Avatar
FFO
Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!
Avatar
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une feuille
?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!
Avatar
Jacky
Bonjour,

Cela pourrait ressembler à ceci
Créé la feuille si elle n'existe pas
A adapter
'-------------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("test", "test1", "test2", "test3")
For Each sh In fiches
On Error Resume Next
Sheets(sh).Activate
If Err <> 0 Then
Sheets.Add.Name = sh
End If
ActiveSheet.Paste
Next
End Sub
'-------------------
Nb:La feuille source n"a nullement besoin d"être visible

--
Salutations
JJ


a écrit dans le message de news: 4c908a02$0$12642$
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une feuille ?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!

Avatar
Merci tout d'abord , j'ai adapté votre proposition comme suit car je
souhaite que l'objet soit copié à un endroit précis. mais rien ne se produit
??

ou est mon erreur merci

Sheets("feuil1").Shapes("Image 6").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Activate
If Err = 0 Then
ActiveSheet.Range("H131").Paste
End If
Next


"Jacky" a écrit dans le message de news:
i6q5hn$j87$
Bonjour,

Cela pourrait ressembler à ceci
Créé la feuille si elle n'existe pas
A adapter
'-------------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("test", "test1", "test2", "test3")
For Each sh In fiches
On Error Resume Next
Sheets(sh).Activate
If Err <> 0 Then
Sheets.Add.Name = sh
End If
ActiveSheet.Paste
Next
End Sub
'-------------------
Nb:La feuille source n"a nullement besoin d"être visible

--
Salutations
JJ


a écrit dans le message de news:
4c908a02$0$12642$
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une
feuille ?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!





Avatar
Jacky
R...
Que se passe 't-il avec ceci
'--------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Paste
Next
End Sub
'----------------
Sinon copier la cellule plutot que l'image


Absent jusqu'a ce soir
--
Salutations
JJ


a écrit dans le message de news: 4c90aa82$0$578$
Merci tout d'abord , j'ai adapté votre proposition comme suit car je souhaite que l'objet soit copié à un
endroit précis. mais rien ne se produit ??

ou est mon erreur merci

Sheets("feuil1").Shapes("Image 6").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Activate
If Err = 0 Then
ActiveSheet.Range("H131").Paste
End If
Next


"Jacky" a écrit dans le message de news: i6q5hn$j87$
Bonjour,

Cela pourrait ressembler à ceci
Créé la feuille si elle n'existe pas
A adapter
'-------------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("test", "test1", "test2", "test3")
For Each sh In fiches
On Error Resume Next
Sheets(sh).Activate
If Err <> 0 Then
Sheets.Add.Name = sh
End If
ActiveSheet.Paste
Next
End Sub
'-------------------
Nb:La feuille source n"a nullement besoin d"être visible

--
Salutations
JJ


a écrit dans le message de news: 4c908a02$0$12642$
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une feuille ?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!









Avatar
Désolé j'ai du m'absenter

La copie se fait correctement mais sans précision de la cellule de
destination


"Jacky" a écrit dans le message de news:
i6qahu$3qr$
R...
Que se passe 't-il avec ceci
'--------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Paste
Next
End Sub
'----------------
Sinon copier la cellule plutot que l'image


Absent jusqu'a ce soir
--
Salutations
JJ


a écrit dans le message de news:
4c90aa82$0$578$
Merci tout d'abord , j'ai adapté votre proposition comme suit car je
souhaite que l'objet soit copié à un endroit précis. mais rien ne se
produit ??

ou est mon erreur merci

Sheets("feuil1").Shapes("Image 6").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Activate
If Err = 0 Then
ActiveSheet.Range("H131").Paste
End If
Next


"Jacky" a écrit dans le message de news:
i6q5hn$j87$
Bonjour,

Cela pourrait ressembler à ceci
Créé la feuille si elle n'existe pas
A adapter
'-------------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("test", "test1", "test2", "test3")
For Each sh In fiches
On Error Resume Next
Sheets(sh).Activate
If Err <> 0 Then
Sheets.Add.Name = sh
End If
ActiveSheet.Paste
Next
End Sub
'-------------------
Nb:La feuille source n"a nullement besoin d"être visible

--
Salutations
JJ


a écrit dans le message de news:
4c908a02$0$12642$
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une
feuille ?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!













Avatar
isabelle
bonjour stef,

Sub jj()
Sheets("Feuil1").Shapes("Picture 1").Copy
fiches = Array("Feuil2", "Feuil3", "Feuil4")
For Each Sh In fiches
Application.Goto Sheets(Sh).Range("F2")
Sheets(Sh).Paste
Next
End Sub

isabelle

Le 2010-09-15 07:55, a écrit :
Désolé j'ai du m'absenter

La copie se fait correctement mais sans précision de la cellule de
destination


"Jacky" a écrit dans le message de news:
i6qahu$3qr$
R...
Que se passe 't-il avec ceci
'--------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Paste
Next
End Sub
'----------------
Sinon copier la cellule plutot que l'image


Absent jusqu'a ce soir
--
Salutations
JJ


a écrit dans le message de news:
4c90aa82$0$578$
Merci tout d'abord , j'ai adapté votre proposition comme suit car je
souhaite que l'objet soit copié à un endroit précis. mais rien ne se
produit ??

ou est mon erreur merci

Sheets("feuil1").Shapes("Image 6").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Activate
If Err = 0 Then
ActiveSheet.Range("H131").Paste
End If
Next


"Jacky" a écrit dans le message de news:
i6q5hn$j87$
Bonjour,

Cela pourrait ressembler à ceci
Créé la feuille si elle n'existe pas
A adapter
'-------------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("test", "test1", "test2", "test3")
For Each sh In fiches
On Error Resume Next
Sheets(sh).Activate
If Err<> 0 Then
Sheets.Add.Name = sh
End If
ActiveSheet.Paste
Next
End Sub
'-------------------
Nb:La feuille source n"a nullement besoin d"être visible

--
Salutations
JJ


a écrit dans le message de news:
4c908a02$0$12642$
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une
feuille ?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!

















Avatar
merci, j'avais commencé par modifié la procédure comme ci-dessous mais elle
était aléatoire dans l'onglet.

La votre semble fonctionner parfaitement

Sub ja()
Sheets("feui11").Shapes("Image 6").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
If Sheets(Sh).Name = "Feuil2" Then
Sheets(Sh).Range("H131").Activate
Sheets(Sh).Paste
ElseIf Sheets(Sh).Name = "Feuil3" Then...................


"isabelle" a écrit dans le message de news:
i6qfbe$ct4$
bonjour stef,

Sub jj()
Sheets("Feuil1").Shapes("Picture 1").Copy
fiches = Array("Feuil2", "Feuil3", "Feuil4")
For Each Sh In fiches
Application.Goto Sheets(Sh).Range("F2")
Sheets(Sh).Paste
Next
End Sub

isabelle

Le 2010-09-15 07:55, a écrit :
Désolé j'ai du m'absenter

La copie se fait correctement mais sans précision de la cellule de
destination


"Jacky" a écrit dans le message de news:
i6qahu$3qr$
R...
Que se passe 't-il avec ceci
'--------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Paste
Next
End Sub
'----------------
Sinon copier la cellule plutot que l'image


Absent jusqu'a ce soir
--
Salutations
JJ


a écrit dans le message de news:
4c90aa82$0$578$
Merci tout d'abord , j'ai adapté votre proposition comme suit car je
souhaite que l'objet soit copié à un endroit précis. mais rien ne se
produit ??

ou est mon erreur merci

Sheets("feuil1").Shapes("Image 6").Copy
fiches = Array("feuil2", "feuil3", "feuil4")
For Each Sh In fiches
On Error Resume Next
Sheets(Sh).Activate
If Err = 0 Then
ActiveSheet.Range("H131").Paste
End If
Next


"Jacky" a écrit dans le message de news:
i6q5hn$j87$
Bonjour,

Cela pourrait ressembler à ceci
Créé la feuille si elle n'existe pas
A adapter
'-------------------
Sub jj()
Sheets("Feuil1").Shapes("Image 1").Copy
fiches = Array("test", "test1", "test2", "test3")
For Each sh In fiches
On Error Resume Next
Sheets(sh).Activate
If Err<> 0 Then
Sheets.Add.Name = sh
End If
ActiveSheet.Paste
Next
End Sub
'-------------------
Nb:La feuille source n"a nullement besoin d"être visible

--
Salutations
JJ


a écrit dans le message de news:
4c908a02$0$12642$
Merci pour cette réponse

Rendre visible la feuille puis la recacher est une solution.
Par contre auriez vous une autre idée pour le test d'existence d'une
feuille ?

Merci


"FFO" a écrit dans le message de news:

Salut à toi
Tu pourrais utiliser une boucle ainsi :

For i = 1 to Sheets.Count
If Sheets(i).Name = "Mafeuille" Then
If Sheets(i).Visible = False Then
Sheets(i).Visible = True
Range("H131").Activate
ActiveSheet.Paste
Sheets(i).Visible = False
Else
Range("H131").Activate
ActiveSheet.Paste
End If
Exit For
End If
Next

Je vérifie la présence de "Mafeuille"
Si elle est masquée je la démasque, je colle et je la remasque sinon
je colle

Celà devrait fonctionner

Dis moi !!!!!

















Avatar
isabelle
bonjour stef,

si tu veut enlever le focus sur l'image,

Sub jj()
Sheets("Feuil1").Shapes("Picture 1").Copy
fiches = Array("Feuil2", "Feuil3", "Feuil4")
For Each Sh In fiches
Application.Goto Sheets(Sh).Range("F2")
Sheets(Sh).Paste
Application.Goto Sheets(Sh).Range("A1")
Next
End Sub

isabelle
Avatar
merci pour cette indication.
Je continue à profiter de votre gentillesse.

Seriez vous comment en gardant le focus ou non sur l'image comment je
pourrais modifier sa hauteur en la faisant varier de 70% à 30% par exemple

merci


"isabelle" a écrit dans le message de news:
i6qgk5$fp9$
bonjour stef,

si tu veut enlever le focus sur l'image,

Sub jj()
Sheets("Feuil1").Shapes("Picture 1").Copy
fiches = Array("Feuil2", "Feuil3", "Feuil4")
For Each Sh In fiches
Application.Goto Sheets(Sh).Range("F2")
Sheets(Sh).Paste
Application.Goto Sheets(Sh).Range("A1")
Next
End Sub

isabelle

1 2