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

XL 2019 La méthode select de la classe range a échoué

bambi

XLDnaute Occasionnel
Bonjour à tous

J'ai un bout de macro qui a toujours très bien fonctionné mais qui aujourd'hui
me renvoie une erreur "1004 la méthode select de la classe range a échoué"

J'ai essayé tout ce que je suis capable de faire mais je n'arrive pas à résoudre ni à comprendre ce bug "spontané"

Difficile de vous joindre mon fichier aussi j'espère que vous aurez des suggestions avec le code vba qui bloque
C'est la ligne ci-dessous qui ressort JAUNE au débogage
Sheets("CDeT").Range("B" & Range("B65536").End(xlUp).Row + 1).Select

VB:
'Copie dans le presse papier l'ensemble des données nettoyées de Clean Feuille Txn
    Workbooks("Clean.xlsm").Activate
    Sheets("Txn").Range("A1").CurrentRegion.Copy


 'Ouvre le fichier T et colle le résultat à partir de la première case vide colonne B, feuille CDeT
     Workbooks.Open Filename:="D:\Mon Dossier de T\Racine\T.xlsm"
     Sheets("CDeT").Range("B" & Range("B65536").End(xlUp).Row + 1).Select
     ActiveSheet.Paste
     Workbooks("T.xlsm").Sheets("CDeT").Range("A1").Select

Merci de vos suggestions
 
Solution
bonjour
essayes
mais sans fichier pour tester....
Sheets("CDeT").Range("B" & Sheets("CDeT").Range("B65536").End(xlUp).Row + 1).Select


ou plutôt
Sheets("CDeT").Select
Range("B" & Range("B65536").End(xlUp).Row + 1).Select

JM27

XLDnaute Barbatruc
bonjour
essayes
mais sans fichier pour tester....
Sheets("CDeT").Range("B" & Sheets("CDeT").Range("B65536").End(xlUp).Row + 1).Select


ou plutôt
Sheets("CDeT").Select
Range("B" & Range("B65536").End(xlUp).Row + 1).Select
 

bambi

XLDnaute Occasionnel
Merci énormément @JM27
Cela fonctionne.
J'ai buté tout le week-end sur ce problème alors je suis bien contente d'avoir enfin une solution.
C'est tout de même un mystère car la macro précedente a fonctionné des années
Bonne journée
 

soan

XLDnaute Barbatruc
Inactif
Bonjour bambi, JM27,

je te propose aussi ce code VBA :

VB:
Sub Essai()
  'Copie dans le presse papier l'ensemble des données nettoyées de Clean Feuille Txn
  Workbooks("Clean.xlsm").Activate: [Txn!A1].CurrentRegion.Copy

  'Ouvre le fichier T et colle le résultat à partir de la première case vide colonne B, feuille CDeT
  Dim lig&: Workbooks.Open "D:\Mon Dossier de T\Racine\T.xlsm"
  Worksheets("CDeT").Select: lig = Cells(Rows.Count, 2).End(xlUp).Row + 1
  Cells(lig, 2).PasteSpecial xlPasteAll: [A1].Select
End Sub

si t'as besoin que des valeurs, tu peux remplacer xlPasteAll par xlPasteValues



note que pour ta ligne Workbooks("T.xlsm").Sheets("CDeT").Range("A1").Select

* inutile de sélectionner le classeur T.xlsm, car depuis le .Open tu es déjà dessus

* j'ai sélectionné la feuille "CDeT" au cas où y'en aurait d'autres dans le classeur,
et à cause du [A1].Select, cette feuille doit obligatoirement être sélectionnée.

soan
 
Dernière édition:

soan

XLDnaute Barbatruc
Inactif
@bambi

désolé, on s'est croisés, et j'ai corrigé un petit bug dans mon code VBA précédent ; donc je te laisse relire entièrement mon post #4, y compris la 2ème partie avec la note. au cas où tu n'aurais pas besoin de sélectionner A1, tu pourrais faire un coller sans devoir sélectionner la feuille "CDeT" ; mon code VBA aurait alors été celui-ci :​

VB:
Sub Essai()
  'Copie dans le presse papier l'ensemble des données nettoyées de Clean Feuille Txn
  Workbooks("Clean.xlsm").Activate: [Txn!A1].CurrentRegion.Copy

  'Ouvre le fichier T et colle le résultat à partir de la première case vide colonne B, feuille CDeT
  Dim lig&: Workbooks.Open "D:\Mon Dossier de T\Racine\T.xlsm"
  With Worksheets("CDeT")
    lig = .Cells(Rows.Count, 2).End(xlUp).Row + 1
    .Cells(lig, 2).PasteSpecial xlPasteAll
  End With
End Sub

(ou avec xlPasteValues si seules les valeurs suffisent)

soan
 
Dernière édition:

bambi

XLDnaute Occasionnel
@soan
Tes deux macros fonctionnent parfaitement .
Je selectionne le A1 car j'ai besoin de voir le résultat une fois collé et d'être sur cette feuille CDeT
Merci beaucoup de t'être donné la peine de regarder
Je garde toutes tes macros de côté
Bonne journée

PS: j'ai mis xlPastValues
 

Discussions similaires

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