Copier fichier Excel et suppression d'onglet

Résolu
jackfred Messages postés 9 Statut Membre -  
jackfred Messages postés 9 Statut Membre -
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
Configuration: Windows XP
Internet Explorer 7.0

6 réponses

  1. irem Messages postés 166 Statut Membre 99
     
    Application.DisplayAlerts = False
    ThisWorkbook.Sheets(int_I).Delete
    Application.DisplayAlerts = True

    Irem
    1
  2. irem Messages postés 166 Statut Membre 99
     
    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
  3. jackfred Messages postés 9 Statut Membre
     
    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
  4. jackfred Messages postés 9 Statut Membre
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. jackfred Messages postés 9 Statut Membre
     
    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
  7. jackfred Messages postés 9 Statut Membre
     
    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