OVH Cloud OVH Cloud

Fonction ActiveSheet.Paste qui donne une "erreur Automation" !

5 réponses
Avatar
Antoine
Bonjour à tous

Je ne comprend pas ce qui se passe avec une fonction aussi basique que
couper / coller un bloc de 2 cellules, qui me donne une erreur de macro sur
ActiveSheet.Paste : Erreur Automation (erreur 470).
L'insertion de "On error resume next" n'apporte aucune solution.
Serait-ce mon Excel qui débloque ? Ou...?
Le code contenu est pourtant très simple !
Range("T10:T11").Select
Selection.Cut
Range("BA6:BA7").Select
ActiveSheet.Paste
Range("lg8:lg3").Select
Selection.ClearContents
Range("BA6:BA7").Select
Selection.Cut
Range("T10:T11").Select
ActiveSheet.Paste

Pour le cas ou certains voudraient tester le fichier en Cjoint :
http://cjoint.com/?dztecgfFbo

Merci à tous

Antoine

Range("T10:T11").Select
Selection.Cut
Range("BA6:BA7").Select
ActiveSheet.Paste

5 réponses

Avatar
michdenis
Bonjour Antoine,

As-tu essayé ceci comme syntaxe :

En supposant que l'action se passe entièrement sur la feuille
don le nom de l'onglet est "Salariés"

'--------------------------------------
Sub reduction()

With Worksheets("Salariés")
' déplace la formule de calcul de l'âge
.Range("T10:T11").Cut Range("BA67")
.Range("lg8:lg3").ClearContents
' remet la formule de calcul de l'âge
.Range("BA6:BA7").Cut .Range("T10")
End With

End Sub
'--------------------------------------

P.S. Je ne comprends pas pourquoi tu veux copier le contenu
de T10:T11 vers BA67 pour copier par la suite le contenu de
BA6:BA7 ver T10:T11 ????


Salutations!


"Antoine" a écrit dans le message de news:
Bonjour à tous

Je ne comprend pas ce qui se passe avec une fonction aussi basique que
couper / coller un bloc de 2 cellules, qui me donne une erreur de macro sur
ActiveSheet.Paste : Erreur Automation (erreur 470).
L'insertion de "On error resume next" n'apporte aucune solution.
Serait-ce mon Excel qui débloque ? Ou...?
Le code contenu est pourtant très simple !
Range("T10:T11").Select
Selection.Cut
Range("BA6:BA7").Select
ActiveSheet.Paste
Range("lg8:lg3").Select
Selection.ClearContents
Range("BA6:BA7").Select
Selection.Cut
Range("T10:T11").Select
ActiveSheet.Paste

Pour le cas ou certains voudraient tester le fichier en Cjoint :
http://cjoint.com/?dztecgfFbo

Merci à tous

Antoine

Range("T10:T11").Select
Selection.Cut
Range("BA6:BA7").Select
ActiveSheet.Paste
Avatar
Antoine
(Re)bonjour Michdenis

J'ai intégré le code que tu m'as renvoyé, mais il génère le même blocage ...

Le fichier avec le nouveau code est en Cjoint :
http://cjoint.com/?dzxKfNLyMF

Quant à ta question sur le pourquoi de ce copier /coller de T10:T11 pour si
peu : c'est en fait parce que cela fait parti d'une macro beaucoup plus
longue, mais que par souci de concision, j'ai éliminé tout ce qui n'était
pas au coeur du problème, c'est à dire avec le code réduit transmis, le
problème perdure...
Ce que je ne comprend pas, c'est pourquoi il y a ce problème ? Est-ce dû au
fait que ces cellules ont un nom, ou que ces cellules sont correlées avec
d'autres cellules adjacentes, au niveau de l'exploitation du résultat,
ou...?
"michdenis" a écrit dans le message de news:
%
Bonjour Antoine,

As-tu essayé ceci comme syntaxe :

En supposant que l'action se passe entièrement sur la feuille
don le nom de l'onglet est "Salariés"

'--------------------------------------
Sub reduction()

With Worksheets("Salariés")
' déplace la formule de calcul de l'âge
.Range("T10:T11").Cut Range("BA67")
.Range("lg8:lg3").ClearContents
' remet la formule de calcul de l'âge
.Range("BA6:BA7").Cut .Range("T10")
End With

End Sub
'--------------------------------------

P.S. Je ne comprends pas pourquoi tu veux copier le contenu
de T10:T11 vers BA67 pour copier par la suite le contenu de
BA6:BA7 ver T10:T11 ????


Salutations!


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

Bonjour à tous

Je ne comprend pas ce qui se passe avec une fonction aussi basique que
couper / coller un bloc de 2 cellules, qui me donne une erreur de macro
sur
ActiveSheet.Paste : Erreur Automation (erreur 470).
L'insertion de "On error resume next" n'apporte aucune solution.
Serait-ce mon Excel qui débloque ? Ou...?
Le code contenu est pourtant très simple !
Range("T10:T11").Select
Selection.Cut
Range("BA6:BA7").Select
ActiveSheet.Paste
Range("lg8:lg3").Select
Selection.ClearContents
Range("BA6:BA7").Select
Selection.Cut
Range("T10:T11").Select
ActiveSheet.Paste

Pour le cas ou certains voudraient tester le fichier en Cjoint :
http://cjoint.com/?dztecgfFbo

Merci à tous

Antoine

Range("T10:T11").Select
Selection.Cut
Range("BA6:BA7").Select
ActiveSheet.Paste





Avatar
AV
| Ce que je ne comprend pas, c'est pourquoi il y a ce problème ?

Problème de syntaxe :
La feuille de destination n'est pas définie car il manque un point avant
Range("BA6:BA7")

Tu pourrais aussi abréger le code en :
[Salariés!T10:T11].Cut [Salariés!BA6:BA7]

AV
Avatar
Antoine
Bonjour AV

J'ai remplacé par ton code , mais cela bloque toujours sur la 1ère ligne
avec pour message d'erreur : "Erreur d'exécution 1004 La méthode cut de la
classe range a échoué".

Est-ce parce que la cellule T11 a une formule (qui calcule l'âge à partir de
la date de naissance ou du N° SS) qui en l'absence de date de naissance et
de N° SS ne renvoit aucune donnée et est donc vide en affichage? (N.B. la
colonne "calcul de l'âge" calcule l'âge avec décimal, alors que la colonne
"âge" fait en fait l'arrondi inférieur en années). Cette valeur calculée en
T11 est ensuite exploitée en U11...

Je ne vois pas d'où peut venir le problème, sauf à ce que soit ma version de
XP (SP2) ou Excel (2000 venant de office 2000 PME) !

Antoine

"AV" a écrit dans le message de news:
emUk$
| Ce que je ne comprend pas, c'est pourquoi il y a ce problème ?

Problème de syntaxe :
La feuille de destination n'est pas définie car il manque un point avant
Range("BA6:BA7")

Tu pourrais aussi abréger le code en :
[Salariés!T10:T11].Cut [Salariés!BA6:BA7]

AV




Avatar
AV
Bien qu'ayant du mal à comprendre le pourquoi de "cet aller-retour", si
j'exécute ces instructions dans ton fichier exemple, il n'y a aucun problème :

[Salariés!T10:T11].Cut [Salariés!BA6:BA7]
[Salariés!BA6:BA7].Cut [Salariés!T10:T11]

AV