Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

la méthode activate de la classe range à échouée

  • Initiateur de la discussion Initiateur de la discussion pascal21
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascal21

XLDnaute Barbatruc
bonsoir à tous
j'ai un bouton sur la feuille "Totaux du mois" qui active entre-autre la macro suivante
Code:
Sheets("Totaux du mois").SelectRange("a53:p53").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("analyse").Select
    Range("a65536").End(xlUp).Offset(1, 0).Activate
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

y a en un truc que je ne comprends pas dans ce code qui habituellement fonctionne très bien pour recopier des lignes dans un tableau
j'ai l'erreur:
la méthode activate de la classe range à échouée
😕
qu'est-ce qui cloche?
y a pas de protection sur les 2 feuilles
faut-il continuer à mettre pour excel 2007 "a65536" ou le nombre de lignes réelles (que je ne connais pas exactement)
merci

edit:
je viens de mettre le code dans un module (c'est mieux puisque le code gère 2 feuilles différentes)
maintenant ça copie bien dans la feuille analyse mais j'ai l'erreur 1004
la méthode select de la classe range à échouée
 
Dernière édition:
Re : la méthode activate de la classe range à échouée

Bonsoir Pascal21

Tu peux également, éviter les Select et autre Activate par
Code:
Sheets("Totaux du mois").Range("a53:p53").Copy
Sheets("analyse").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, _
    Operation:=xlNone, SkipBlanks:=False, Transpose:=False

A+
 
Re : la méthode activate de la classe range à échouée

bonjour Bruno
merci pour cette précision
mais qu'apporte réellement la suppression des select et des activate dans un code?
rapidité? moins de risque d'erreurs?
petite question
sur ce genre de ligne de code assez longue
on voit très souvent pour ne pas dire tout le temps le _ qui permet le retour à la ligne du code
est-ce uniquement pour un confort de lecture? ou alors le VBA l'impose t'il?
si c'est comme je le pense, pour un confort de lecture, peut-on le mettre où l'on veut dans le code ou est-ce imposé?
merci
 
Re : la méthode activate de la classe range à échouée

Re,

qu'apporte réellement la suppression des select et des activate dans un code?
rapidité? moins de risque d'erreurs?
La rapidité, c'est indéniable
Moins de risque d'erreurs, c'est certain, si le codage est fait comme il faut
A savoir : ObjetConteneur.ClasseObjet.Méthode

petite question, sur ce genre de ligne de code assez longue
on voit très souvent pour ne pas dire tout le temps le _ qui permet le retour à la ligne du code
est-ce uniquement pour un confort de lecture? ou alors le VBA l'impose t'il?
VBA n'impose pas me semble t'il ce genre de chose
C'est simplement pour une meilleure lisibilité à l'écran, donc tout dépend de la taille de l'écran

Ceci n'est que mon avis 😉
 
Re : la méthode activate de la classe range à échouée

Bonjour pascal21, BrunoM45 🙂
Si il s'agit de transférer uniquement des valeurs, il est peut être préférable, et plus rapide, de ne pas copier.
VB:
Sheets("analyse").Range("a65536").End(xlUp).Offset(1, 0).Resize(, 16).Value = _
Sheets("Totaux du mois").Range("A53:P53").Value
Cordialement
 
Re : la méthode activate de la classe range à échouée

bonjour efgé
il me semble, mais je peux me tromper, que ton code recopie aussi le format de la feuille source
ce qui n'est pas toujours désiré
j'ai voulu mettre ton code Bruno
mais je me suis heurté à un "activesheet unprotect" pour la feuille("totaux du mois") (qui n'apparait pas sur mon 1er post) que je ne sais pas où mettre, du coup!!
 
Re : la méthode activate de la classe range à échouée

Re
il me semble, mais je peux me tromper, que ton code recopie aussi le format de la feuille source ce qui n'est pas toujours désiré
Non, non.
Le code ne transfert que les valeurs (Les valeurs de la plage d'arrivée sont égales aux valeurs de la plage de départ)
Cordialement
 
Re : la méthode activate de la classe range à échouée

re Efgé
je ne sais pas si il est plus rapide à l'exécution en tout cas c'est plus rapide à écrire et à rectifier si besoin est
j'adopte
merci
j'ai trouvé pour la protection des feuilles
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…