OVH Cloud OVH Cloud

Copier une zone nommée

2 réponses
Avatar
Daniel
Bonjour à toutes et tous,

C'est l'printemps... Quel bonheur...

Ma question est la suivante : J'ai un classeur reprenant dans différentes
feuilles les index (anciens et nouveaux) des compteurs d'une cinquantaine de
machines différentes.
Chacune des feuilles à sa forme propre. J'aimerais qu'un macro me permette
de recopier tous les 15 jours le contenu des cellule "nouveaux index" dans
les cellules "anciens index". Les cellules n'étant pas contigües ni au même
emplacement d'une feuille à l'autre, j'ai essayé de nommer une zone par
feuille et de la copier avec ce code-ci :

Private Sub CommandButton1_Click()
Dim A As Range
'INDPOK = la zone nommée reprenant les nouveaux index
For Each A In Range("INDPOK")
Selection.Copy
A.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
'Efface l'ancien index qui se trouve dans la cellule juste en dessous du
nouveau
Selection.Offset(-1, 0).Select
Application.CutCopyMode = False
Selection.ClearContents
Next
End Sub

Le résultat est que les cellules sont mises à zéro mais que les nouveaux
index ne sont pas transférés dans les cellules "anciens index.

Si quelqu'un a une solution (même complètement différente), je serai ravi.

Merci d'avance à toutes et tous.

Daniel S.

2 réponses

Avatar
anonymousA
For Each c In Range("INDPOK")
With c
.Copy .Offset(1, 0)
.ClearContents
End With

ou
For Each c In Range("INDPOK")
With c
.Copy
.Offset(1, 0).PasteSpecial xlValues
.ClearContents
End With
si on ne veut vraiment que copier les valeurs seulement

A+


Bonjour à toutes et tous,

C'est l'printemps... Quel bonheur...

Ma question est la suivante : J'ai un classeur reprenant dans différentes
feuilles les index (anciens et nouveaux) des compteurs d'une cinquantaine de
machines différentes.
Chacune des feuilles à sa forme propre. J'aimerais qu'un macro me permette
de recopier tous les 15 jours le contenu des cellule "nouveaux index" dans
les cellules "anciens index". Les cellules n'étant pas contigües ni au même
emplacement d'une feuille à l'autre, j'ai essayé de nommer une zone par
feuille et de la copier avec ce code-ci :

Private Sub CommandButton1_Click()
Dim A As Range
'INDPOK = la zone nommée reprenant les nouveaux index
For Each A In Range("INDPOK")
Selection.Copy
A.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse
'Efface l'ancien index qui se trouve dans la cellule juste en dessous du
nouveau
Selection.Offset(-1, 0).Select
Application.CutCopyMode = False
Selection.ClearContents
Next
End Sub

Le résultat est que les cellules sont mises à zéro mais que les nouveaux
index ne sont pas transférés dans les cellules "anciens index.

Si quelqu'un a une solution (même complètement différente), je serai ravi.

Merci d'avance à toutes et tous.

Daniel S.




Avatar
Daniel
Merci beaucoup,
Ca fonctionne impeccablement bien.

Daniel S

"anonymousA" a écrit dans le message de
news:423eec13$0$823$
For Each c In Range("INDPOK")
With c
.Copy .Offset(1, 0)
.ClearContents
End With

ou
For Each c In Range("INDPOK")
With c
.Copy
.Offset(1, 0).PasteSpecial xlValues
.ClearContents
End With
si on ne veut vraiment que copier les valeurs seulement

A+


Bonjour à toutes et tous,

C'est l'printemps... Quel bonheur...

Ma question est la suivante : J'ai un classeur reprenant dans
différentes


feuilles les index (anciens et nouveaux) des compteurs d'une
cinquantaine de


machines différentes.
Chacune des feuilles à sa forme propre. J'aimerais qu'un macro me
permette


de recopier tous les 15 jours le contenu des cellule "nouveaux index"
dans


les cellules "anciens index". Les cellules n'étant pas contigües ni au
même


emplacement d'une feuille à l'autre, j'ai essayé de nommer une zone par
feuille et de la copier avec ce code-ci :

Private Sub CommandButton1_Click()
Dim A As Range
'INDPOK = la zone nommée reprenant les nouveaux index
For Each A In Range("INDPOK")
Selection.Copy
A.Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone,
SkipBlanks:úlse, Transpose:úlse
'Efface l'ancien index qui se trouve dans la cellule juste en dessous du
nouveau
Selection.Offset(-1, 0).Select
Application.CutCopyMode = False
Selection.ClearContents
Next
End Sub

Le résultat est que les cellules sont mises à zéro mais que les nouveaux
index ne sont pas transférés dans les cellules "anciens index.

Si quelqu'un a une solution (même complètement différente), je serai
ravi.



Merci d'avance à toutes et tous.

Daniel S.