Copier fichier Excel et suppression d'onglet

Résolu/Fermé
jackfred Messages postés 9 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 19 juin 2007 - 5 juin 2007 à 09:37
jackfred Messages postés 9 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 19 juin 2007 - 8 juin 2007 à 08:51
Bonjour,

Sur Excel, je cherche à copier un fichier et a suprimer les onglets dont le nom ne se trouve pas dans un tableau du fichier de base.
Le tout en VBA beinsur ;)

Est-ce possibel?
Qq'un aurait une idée?

Merci

Fred
A voir également:

6 réponses

irem Messages postés 164 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 9 octobre 2012 99
6 juin 2007 à 12:01
Application.DisplayAlerts = False
ThisWorkbook.Sheets(int_I).Delete
Application.DisplayAlerts = True

Irem
1
irem Messages postés 164 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 9 octobre 2012 99
5 juin 2007 à 11:09
bien sur que c'est possible, je le ferais de la manière suivante :

1- Création d'une liste des onglets autorisés
2- Parcours des onglets et test avec instr

en résumé

Sub suppr_Onglets()
dim int_I as integer
dim str_aut as string
For int_I= 1 to 10 (si 10 entrée)
str_aut=str_aut & "\" & ThisWorkbook.Worksheets("Summary").Cells(int_i, 2).value
next int_i
'ensuite on parcours les onglets
for int_i=ThisWorkbook.Worksheets.Count to 1 step -1
if instr(1,ThisWorkbook.Worksheets(int_i).name,str_aut)=0 then
ThisWorkbook.Worksheets(int_i).delete
end if

'attention a ne pas supprimer le worksheet "summary"

pour enregistrer sous :

Do
fName = Application.GetSaveAsFilename
Loop Until fName <> False
ThisWorkbook.SaveAs Filename:=fName

Irem

next int_i

end sub
0
jackfred Messages postés 9 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 19 juin 2007
5 juin 2007 à 14:23
Merci pour la réponse,

par contre les noms de onglets que je veux garder, je les mets dans "summary"?
A quel niveau?
Faut-il que je nome une plage de donnée?

le code ne concerne que le fichié créé?

Y-at-il un fichier qque part qui reprend ce type de code ?

Merci

fred
0
jackfred Messages postés 9 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 19 juin 2007
5 juin 2007 à 15:24
J'ai modifié un peut le code...

Pour moi ca marche..

Est-ce algorithmatiquement et programatiquement ;) logique..



Sub creer()
Dim Nom As String
Dim int_I As Integer
Dim str_aut As String

Worksheets("Summary").Select
ActiveWorkbook.Save
Nom = ActiveWorkbook.Path & "\" & ActiveWorkbook.Sheets("Summary").Range("G1") & ".xls"
Nom2 = ActiveWorkbook.Sheets("Summary").Range("G1") & ".xls"
Worksheets("Summary").Select
ActiveWorkbook.SaveCopyAs Filename:=Nom

Workbooks.Open Nom
Workbooks(Nom2).Activate

For int_I = 1 To 10 '(si 10 entrée)
str_aut = str_aut & "\" & Workbooks(Nom2).Worksheets("Summary").Cells(int_I, 2).Value
Next int_I
'ensuite on parcours les onglets
For int_I = Workbooks(Nom2).Worksheets.Count To 1 Step -1
If InStr(str_aut, Workbooks(Nom2).Worksheets(int_I).Name) = 0 Then
Workbooks(Nom2).Worksheets(int_I).Delete
End If
'attention a ne pas supprimer le worksheet "summary"
Next int_I

Workbooks(Nom2).Save
Workbooks(Nom2).Close
End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jackfred Messages postés 9 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 19 juin 2007
5 juin 2007 à 16:25
Re

Dans la suppression d'un onglets, j'ai une boite de dialogue qui demande si je veux bien suprimer l'onglet...
Est-il possible par code ou autre d'éviter que cette boite de dialogue ne s'affiche. (en gros d'accepter directement la suppression sans demander l'autorisation)???

Merci

Fred
0
jackfred Messages postés 9 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 19 juin 2007
8 juin 2007 à 08:51
Superbe merci bcp

En utilisant que la ligne

Application.DisplayAlerts = True

Ca marche tres bien..

Merci infiniement.

fred

-----------

Pour récapituler, il s'agissait au départ de créer un fichier avec seulement certains onglets définis ds un tableau du fichier source.
En testant un premier code, fonctionnant par copier coller, les macro du fichier source n'était pas gardées, la mise en forme des cellules non plus.
L'autre solution consistait à copier le fichier source sous un autre non et à suprimer les onglets ne figurant pas dans le tableau de ce fichier source.

Enfin, il s'avère qu'à la suppression d'un onglet, un message d'alerte s'affiche.
Se qui peut etre ennuyeux à devoir attendre que ces derniers apparaissent pour les valider.
Du coup il a fallu créer un code pour annuler ceci..


Un gd merci à IREM pour son aide et sa connaissance ;).

Fred
0