Erreur execution '1004'

bochacl

XLDnaute Nouveau
Bonsoir au forum,
Qui peut me donner la solution à cette macro qui plante avec une erreur d'execution '1004', la méthode Select de la classe Range a échoué.

Voilà cette macro :
Private Sub CommandButton1_Click()
' MacroMAJ Macro
'
Range('A4').Select
Range('A4:J258').Select
Selection.ClearContents
Workbooks.Open Filename:='C:\\TRAVAIL\\ClasseurMAJ clients.xls'
ActiveWindow.SmallScroll Down:=159
Range('A1:J260').Select
Selection.Copy
ActiveWindow.Close
Range('A232').Select
ActiveSheet.Paste
With Selection.Font
.Name = 'Arial'
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range('A3').Select
End Sub

Merci pour votre réponse
 

Jacou

XLDnaute Impliqué
Bonsoir bochacl

peux-tu préciser sur quelle ligne de ta macro il y a le plantage?

Dans certain cas, surtout si on utilise plusieurs classeurs ou plusieurs feuilles, il est nécessaire d'écrire :
ActiveWorkbook.ActiveSheet.Range('A4').Select

sinon je te conseillerais de ne pas fermer la fenêtre du classeur où tu copies les lignes avant de les avoir collées dans l'autre classeur. ça pourrait donner :

Private Sub CommandButton1_Click()
' MacroMAJ Macro
'
Range('A4').Select
Range('A4:J258').Select
Selection.ClearContents
Workbooks.Open Filename:='C:TRAVAILClasseurMAJ clients.xls'
ActiveWindow.SmallScroll Down:=159
Range('A1:J260').Select
Selection.Copy
Windows(2).Activate
Range('A232').Select
ActiveSheet.Paste
Windows(1).Activate
ActiveWindow.Close
With Selection.Font
.Name = 'Arial'
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = xlAutomatic
End With
Range('A3').Select
End Sub

Je ne sais pas si cela résoudra ton problème.

bonne fin de soirée

Message édité par: jacou, à: 24/07/2005 23:39
 

Gibson94

Nous a quitté
Repose en paix
Bonjour Bochacl, Jacou, _Thierry, le forum,

Etrange cette plante de sélection, il s'avère que la ligne 'Range('A1:J260').Select' fait référence non pas au nouveau classeur que tu viens d'ouvrir, mais au 1er.

Si tu remplaces tes 2 lignes par 'Range('A1:J260').Copy', on s'aperçoit que ce sont les cellules de ton 1er classeur qui ont été copiées.

Donc Sélectionne le bon classeur et çà devrait fonctionner.
 

Jacou

XLDnaute Impliqué
Bonsoir Bochacl, bonsoir le forum
chez moi ton instruction Range('A1:J260').Select fonctionne
je ne peux que te conseiller de tenter de mettre en oeuvre mon premier conseil à savoir de remplacer toutes les instructions Range('xx') par ActiveSheet.Range('xx') et si ça ne marche encore pas par ActiveWorkbook.ActiveSheet.Range('xx').

Avec quel version d'excel travailles-tu?
As-tu essayer de voir ce qui se passe si tu fais du pas à pas?
Peux-tu envoyer un extrait zippé de ton fichier avec sa macro?

bonne soirée et bon courage
 

Discussions similaires

Statistiques des forums

Discussions
312 677
Messages
2 090 836
Membres
104 677
dernier inscrit
soufiane12