VBA - selection d'onglets des n1ers onglets
Résolu
pseudo_polo
-
pseudo_polo -
pseudo_polo -
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
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
A voir également:
- VBA - selection d'onglets des n1ers onglets
- Restaurer les onglets chrome - Guide
- Fusionner des onglets excel - Guide
- Ouvrir plusieurs onglets en même temps - Guide
- Onglets - Guide
- Incompatibilité de type vba ✓ - Forum Programmation
4 réponses
Bonjour,
Essaie ainsi :
Le nom du classeur de destination à adapter (ici, classeur1.xls)
Bonne journée
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
Re-,
Que met-il comme message d'erreur?
Ou alors, rien ne se passe?
Peux-tu mettre le code entier que tu as mis?
Que met-il comme message d'erreur?
Ou alors, rien ne se passe?
Peux-tu mettre le code entier que tu as mis?
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
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
Bonjour,
Es-tu sûr du nom de l'autre classeur?
Si oui, est-il ouvert?
A te relire
Es-tu sûr du nom de l'autre classeur?
Set OtherWbk = Workbooks("Classeur1.xls")
Si oui, est-il ouvert?
A te relire
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 :
Peut-être?
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?
Bonne soirée