VBA - selection d'onglets des n1ers onglets

Résolu/Fermé
pseudo_polo - Modifié par pseudo_polo le 6/09/2011 à 12:33
 pseudo_polo - 8 sept. 2011 à 12:40
Bonjour,

voici ma macro = je ne comprends pas pourquoi elle ne marche pas!!!

je veux juste selectionner tous les onglets actifs du premier au n-4 puis les copier dans un nouveau classeur!!

merci à vous tous!!


Sub Macro1()

n = Sheets.Count - 4
For i = 1 To n
Sheets(i).Select
ActiveWindow.SelectedSheets.Copy
Next i



End Sub

4 réponses

cousinhub29
Messages postés
581
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
19 juillet 2022
314
6 sept. 2011 à 14:12
Bonjour,

Essaie ainsi :

Sub Macro1()
Dim N As Byte, I As Byte
Dim ThWbk As Workbook, OtherWbk As Workbook
Application.ScreenUpdating = False
Set ThWbk = ThisWorkbook
Set OtherWbk = Workbooks("Classeur1.xls")
N = Sheets.Count - 4
For I = 1 To N
    ThWbk.Sheets(I).Copy After:=OtherWbk.Sheets(OtherWbk.Sheets.Count)
Next I
End Sub


Le nom du classeur de destination à adapter (ici, classeur1.xls)

Bonne journée
0
merci beaucoup pour ton aide cher cousinhub! par contre, je viens d'essayer en copiant ton code et cela ne marche pas!!!??

Bonne soirée
0
cousinhub29
Messages postés
581
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
19 juillet 2022
314
6 sept. 2011 à 19:15
Re-,

Que met-il comme message d'erreur?

Ou alors, rien ne se passe?

Peux-tu mettre le code entier que tu as mis?
0
yes: erreur = l'indice n'appartient pas à la selection - Erreur d'éxécution '9'
le code que j'ai mis =

Sub Macro1()
Dim N As Byte, I As Byte
Dim ThWbk As Workbook, OtherWbk As Workbook
Application.ScreenUpdating = False
Set ThWbk = ThisWorkbook
Set OtherWbk = Workbooks("Classeur1.xls")
N = Sheets.Count - 4
For I = 1 To N
ThWbk.Sheets(I).Copy After:=OtherWbk.Sheets(OtherWbk.Sheets.Count)
Next I
End Sub
0
cousinhub29
Messages postés
581
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
19 juillet 2022
314
7 sept. 2011 à 13:48
Bonjour,

Es-tu sûr du nom de l'autre classeur?

Set OtherWbk = Workbooks("Classeur1.xls") 


Si oui, est-il ouvert?

A te relire
0
Hello!
en fait, je souhaite recréer un autre classeur peu importe le nom (ensuite une autre macro l'enregistre et le mets directement sur un fichier) . donc, non, l'autre fichier n'est pas ouvert!

a+ et merci pr ton aide!
0
cousinhub29
Messages postés
581
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
19 juillet 2022
314
7 sept. 2011 à 14:28
Re-,

Et en prenant le problème par l'autre bout?

Le principe, tu supprimes les 4 derniers onglets, tu enregistres sous un autre nom, ainsi ton fichier initial n'est pas modifié....

Exemple :

Sub macro()
Dim NbFeuil As Integer, I As Integer
NbFeuil = Sheets.Count
Application.DisplayAlerts = False
For I = NbFeuil To NbFeuil - 3 Step -1
    Sheets(I).Delete
Next I
ActiveWorkbook.SaveAs "classeur_x.xls"
End Sub


Peut-être?
0
impeccable, ça marche top.
merci, cousin hub!

a te relire...
0