PB code vba Ouverture Classeur

barth66

XLDnaute Junior
Bonjour à tous,

Voila je suis en train de créer une macro en VBA, seulement je rencontre un probléme: en fait la macro ouvre un nouveau classeur1, puis colle un tableau dans ce nouveau classeur1. Jusqu'ici tout va bien...

Mais lorseque je recommence la procédure pour un nouveau tableau, il ouvre un nouveau classeur mais qui se nomme classeur2 et du coup la macro beug !!!!

Une aide ?? Svp

Sheets("Modele").Select
Workbooks.Add
Windows("TABLEAU MARGE AUTO.xls").Activate
Columns("A:G").Select
Selection.SpecialCells(xlCellTypeVisible).Select
Selection.Copy
Windows("Classeur1").Activate ActiveSheet.Paste
 

Dranreb

XLDnaute Barbatruc
Re : PB code vba Ouverture Classeur

Bonjour.
Évitez d'activer et de sélectionner, comme ça le classeur créé restera actif.
Essayez comme ça par exemple :
VB:
Workbooks.Add
ThisWorkbook.Worksheets("Modele").Columns("A:G").SpecialCells(xlCellTypeVisible).Copy
ActiveSheet.Paste
Ou décomposez et plusieurs Set si ça va mieux.
À +
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Re : PB code vba Ouverture Classeur

Une suggestion au post précédent, modifié avant d'avoir vu votre réponse.
On n'a pour ainsi dire jamais besoin de Select. Mieux vaut affecter les expressions par des Set à des variables objet du type approprié pour éviter des redites que de travailler avec Selection
À +
 

Dranreb

XLDnaute Barbatruc
Re : PB code vba Ouverture Classeur

Rien compris à votre dernier post.
Vous pouvez aussi écrire comme ça selon le contexte de départ que je ne connais pas :
VB:
Dim Plage As Range
Set Plage = ActiveSheet.AutoFilter.Range
Set Plage = Plage.SpecialCells(xlCellTypeVisible)
Workbooks.Add
Plage.Copy Destination:=ActiveSheet.[A1]
Juste après Workbooks.Add vous n'avez pas besoin de l'activer: il est actif.
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
1 K
Réponses
4
Affichages
1 K
Réponses
8
Affichages
666

Statistiques des forums

Discussions
312 321
Messages
2 087 251
Membres
103 497
dernier inscrit
FAHDE