OVH Cloud OVH Cloud

Encore des problèmes de copie

3 réponses
Avatar
Swoap
Bonjour a tous et merci a tous ceux qui m'aident!!

JB, Isteph (merci j'ai compris comment faire pour la copie value et fomat),
et j'en passe m'ont permis d'aller plus loin.
A ce stade j'ai une macro qui copie des cellules vers un endroit precis sur
une autre feuille.

Mais j'ai rencontré des problemes de copier-coller avec le code suivant. En
effet si la premire cellule offset(1, 0) (voir tout en bas du code)de la
feuille "recap" est remplie(apres collage) avec une cellule vide, lors du
copier-coller suivant toute la ligne est ecarsée.
Comment faire pour eviter cela?

merci
emeric

For i = 0 To Sheets(1).ListeFeuilles.ListCount - 1
If Sheets(1).ListeFeuilles.Selected(i) = True Then
nf = Sheets(1).ListeFeuilles.List(i)

'nf est le n° de la feuille detenant les informations a copier

'si formules
Sheets(nf).[A4].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 1).PasteSpecial
Paste:=xlPasteValues
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[A8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 2).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 3).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 4).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 5).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 6).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E13].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 7).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E71].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 8).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

For X = 9 To 21 Step 2
Sheets("recap").[A65000].End(xlUp).Offset(1, X).Value =
"=RC[-2]*RC[-1]"
Next X
'si formules
Sheets(nf).[E51].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 10).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E52].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 12).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E54].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 14).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E55].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 16).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E68].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 18).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E69].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 20).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

Sheets("recap").[A65000].End(xlUp).Offset(1, 22).Value =
"=RC[-1]+RC[-3]+RC[-5]+RC[-7]+RC[-9]+RC[-11]+RC[-13]"


'Validation a mettre en dernier
Sheets(nf).[E4].Copy 'A4 est la cellule de départ
' offset va selectionner une autre cellule a partir de A3
Sheets("recap").[A65000].End(xlUp).Offset(1, 0).PasteSpecial
(xlPasteValues)


End If

3 réponses

Avatar
lSteph
Bonsoir,
Si je peux me permettre, pourquoi tous ces copier coller disparates par
macro?
Il semblerait un rien plus simple de créeer une ligne de synthèse de
toutes ces
cellules éparses par formule dans ta feuille d'origine
et que la macro n'ait plus à attribuer que les valeurs d'une ligne en
destination.

Cordialement.

lSteph
"Swoap" a écrit dans le message de news:

Bonjour a tous et merci a tous ceux qui m'aident!!

JB, Isteph (merci j'ai compris comment faire pour la copie value et
fomat), et j'en passe m'ont permis d'aller plus loin.
A ce stade j'ai une macro qui copie des cellules vers un endroit precis
sur une autre feuille.

Mais j'ai rencontré des problemes de copier-coller avec le code suivant.
En effet si la premire cellule offset(1, 0) (voir tout en bas du code)de
la feuille "recap" est remplie(apres collage) avec une cellule vide, lors
du copier-coller suivant toute la ligne est ecarsée.
Comment faire pour eviter cela?

merci
emeric

For i = 0 To Sheets(1).ListeFeuilles.ListCount - 1
If Sheets(1).ListeFeuilles.Selected(i) = True Then
nf = Sheets(1).ListeFeuilles.List(i)

'nf est le n° de la feuille detenant les informations a copier

'si formules
Sheets(nf).[A4].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 1).PasteSpecial
Paste:=xlPasteValues
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[A8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 2).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 3).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 4).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 5).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 6).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E13].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 7).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E71].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 8).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

For X = 9 To 21 Step 2
Sheets("recap").[A65000].End(xlUp).Offset(1, X).Value =
"=RC[-2]*RC[-1]"
Next X
'si formules
Sheets(nf).[E51].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 10).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E52].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 12).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E54].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 14).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E55].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 16).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E68].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 18).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E69].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 20).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

Sheets("recap").[A65000].End(xlUp).Offset(1, 22).Value =
"=RC[-1]+RC[-3]+RC[-5]+RC[-7]+RC[-9]+RC[-11]+RC[-13]"


'Validation a mettre en dernier
Sheets(nf).[E4].Copy 'A4 est la cellule de départ
' offset va selectionner une autre cellule a partir de A3
Sheets("recap").[A65000].End(xlUp).Offset(1, 0).PasteSpecial
(xlPasteValues)


End If





Avatar
Swoap
bonjour Isteph!!

Alors ton explication a l'air d'etre surper mais a vrai dire, j'aurais
vraiment du mal a la mettre en place . Si tu peux m'eguiller.

Merci
Emeric
"lSteph" a écrit dans le message de news:
eWGc%
Bonsoir,
Si je peux me permettre, pourquoi tous ces copier coller disparates par
macro?
Il semblerait un rien plus simple de créeer une ligne de synthèse de
toutes ces
cellules éparses par formule dans ta feuille d'origine
et que la macro n'ait plus à attribuer que les valeurs d'une ligne en
destination.

Cordialement.

lSteph
"Swoap" a écrit dans le message de news:

Bonjour a tous et merci a tous ceux qui m'aident!!

JB, Isteph (merci j'ai compris comment faire pour la copie value et
fomat), et j'en passe m'ont permis d'aller plus loin.
A ce stade j'ai une macro qui copie des cellules vers un endroit precis
sur une autre feuille.

Mais j'ai rencontré des problemes de copier-coller avec le code suivant.
En effet si la premire cellule offset(1, 0) (voir tout en bas du code)de
la feuille "recap" est remplie(apres collage) avec une cellule vide, lors
du copier-coller suivant toute la ligne est ecarsée.
Comment faire pour eviter cela?

merci
emeric

For i = 0 To Sheets(1).ListeFeuilles.ListCount - 1
If Sheets(1).ListeFeuilles.Selected(i) = True Then
nf = Sheets(1).ListeFeuilles.List(i)

'nf est le n° de la feuille detenant les informations a copier

'si formules
Sheets(nf).[A4].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 1).PasteSpecial
Paste:=xlPasteValues
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[A8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 2).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 3).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 4).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 5).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 6).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E13].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 7).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E71].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 8).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

For X = 9 To 21 Step 2
Sheets("recap").[A65000].End(xlUp).Offset(1, X).Value =
"=RC[-2]*RC[-1]"
Next X
'si formules
Sheets(nf).[E51].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 10).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E52].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 12).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E54].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 14).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E55].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 16).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E68].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 18).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E69].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 20).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

Sheets("recap").[A65000].End(xlUp).Offset(1, 22).Value =
"=RC[-1]+RC[-3]+RC[-5]+RC[-7]+RC[-9]+RC[-11]+RC[-13]"


'Validation a mettre en dernier
Sheets(nf).[E4].Copy 'A4 est la cellule de départ
' offset va selectionner une autre cellule a partir de A3
Sheets("recap").[A65000].End(xlUp).Offset(1, 0).PasteSpecial
(xlPasteValues)


End If









Avatar
lSteph
Bonsoir Emeric,

Dans tes feuilles crée une ligne matrice avec toutes
tes refs ¤ ¨ ¸ ... etc
Cela ne fait plus qu'une ligne à récupèrer par macro dans ta boucle sur les
feuilles.

Cordialement.

LSteph

"Swoap" a écrit dans le message de news:
eCV6vD$
bonjour Isteph!!

Alors ton explication a l'air d'etre surper mais a vrai dire, j'aurais
vraiment du mal a la mettre en place . Si tu peux m'eguiller.

Merci
Emeric
"lSteph" a écrit dans le message de news:
eWGc%
Bonsoir,
Si je peux me permettre, pourquoi tous ces copier coller disparates par
macro?
Il semblerait un rien plus simple de créeer une ligne de synthèse de
toutes ces
cellules éparses par formule dans ta feuille d'origine
et que la macro n'ait plus à attribuer que les valeurs d'une ligne en
destination.

Cordialement.

lSteph
"Swoap" a écrit dans le message de news:

Bonjour a tous et merci a tous ceux qui m'aident!!

JB, Isteph (merci j'ai compris comment faire pour la copie value et
fomat), et j'en passe m'ont permis d'aller plus loin.
A ce stade j'ai une macro qui copie des cellules vers un endroit precis
sur une autre feuille.

Mais j'ai rencontré des problemes de copier-coller avec le code suivant.
En effet si la premire cellule offset(1, 0) (voir tout en bas du code)de
la feuille "recap" est remplie(apres collage) avec une cellule vide,
lors du copier-coller suivant toute la ligne est ecarsée.
Comment faire pour eviter cela?

merci
emeric

For i = 0 To Sheets(1).ListeFeuilles.ListCount - 1
If Sheets(1).ListeFeuilles.Selected(i) = True Then
nf = Sheets(1).ListeFeuilles.List(i)

'nf est le n° de la feuille detenant les informations a copier

'si formules
Sheets(nf).[A4].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 1).PasteSpecial
Paste:=xlPasteValues
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[A8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 2).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 3).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D8].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 4).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[B10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 5).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[D10].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 6).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E13].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 7).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E71].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 8).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

For X = 9 To 21 Step 2
Sheets("recap").[A65000].End(xlUp).Offset(1, X).Value =
"=RC[-2]*RC[-1]"
Next X
'si formules
Sheets(nf).[E51].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 10).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E52].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 12).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E54].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 14).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E55].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 16).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E68].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 18).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)
'si formules
Sheets(nf).[E69].Copy
Sheets("recap").[A65000].End(xlUp).Offset(1, 20).PasteSpecial
(xlPasteValues)
ActiveCell.PasteSpecial (xlPasteFormats)

Sheets("recap").[A65000].End(xlUp).Offset(1, 22).Value =
"=RC[-1]+RC[-3]+RC[-5]+RC[-7]+RC[-9]+RC[-11]+RC[-13]"


'Validation a mettre en dernier
Sheets(nf).[E4].Copy 'A4 est la cellule de départ
' offset va selectionner une autre cellule a partir de A3
Sheets("recap").[A65000].End(xlUp).Offset(1, 0).PasteSpecial
(xlPasteValues)


End If