[VBA] Création d'un nouveau classeur Excel...

Résolu
Neverend Messages postés 21 Statut Membre -  
 ll -
Bonjour,

J'aimerai savoir si depuis un classeur Excel, on peut créer un autre classeur avec 5 onglets, chaque onglets ayant un nom spécifique, et le sauvegarder.

Merci pour vos réponses et de votre aide ... je suis nul en programmation.

A bientôt de vous lire
Configuration: Windows XP
Internet Explorer 6.0

3 réponses

  1. Neverend Messages postés 21 Statut Membre 81
     
    Bonjour,

    J'ai progressé en VBA. Je laisse ici le code que j'ai employé. Pas forcément le top, mais répond au besoin :

    Sub AddNewWorkbook()
    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook
    Dim xlSheet As Excel.Worksheet
    
        'On créer l'objet Excel
        Set xlApp = CreateObject("Excel.Application")
        'On défini le nombre d'onglets (ici 5)
        xlApp.SheetsInNewWorkbook = 5
        'On ajoute un classeur
        Set xlBook = xlApp.Workbooks.Add
        'On donne un nom au classeur
        xlBook.SaveAs ("Mon Classeur.xls")
        'On rend le classeur visible
        xlApp.Visible = True
        'On créer l'objet onglet dans le nouveau classeur créé
        Set xlSheet = xlBook.Worksheets(1)
        'On affecte un nom aux l'onglets
        xlSheet.Name = "Janvier"
        'on libère l'objet onglet pour pouvoir en créer un nouveau ... etc
        Set xlSheet = Nothing
        '
        '
        Set xlSheet = xlBook.Worksheets(2)
        xlSheet.Name = "Février"
        '
        '....... On donne un nom à chaque onglets
        '
        '
        'On remet la propriété de l'application à 3 (par défaut)
        xlApp.SheetsInNewWorkbook = 3
        'On ferme l'application
        xlApp.Quit
        
    End Sub
    


    Cdlt.

    PS: Phil, si tu repasses par là, tu as le bonjour du paresseux.
    88
    1. Sosodefff
       
      Bonjour,
      Comment tu fais pour choisir le chemin de la sauvegarde de ton fichier ceer
      0
    2. therealeaea
       
      pour choisir le chemin ou tu vas sauvegarder ton fichier, tu remplace :
      xlBook.SaveAs ("Mon Classeur.xls") par xlBook.SaveAs ("C:\...\Mon Classeur.xls")
      0
    3. Aymen BAM
       
      Bonjour
      Comment je peux travailler sur le nouveau fichier par exemple j'ai essayer avec ça :
      "Workbooks("Mon Classeur").Worksheets("Sheet1").Range("G").Value = ActiveWorkbooK.ActiveSheet.Range("G").Value"
      Dans le meme script de creation , on fait je veux créer un nouveau fichier "Mon Classeur" et je veux transférer des informations de ActiveWorkbook vers Workbooks("Mon Classeur").

      Mais toujours il m'afficher une erreur " subscript out of range "
      0
    4. Nouveau
       
      Comment je peux choisir le chemin où je veux enregistrer mon classeur ?
      0
      1. Rak1111 > Nouveau
         
        pour choisir le chemin.

        Function PrendreChemin() As String
        Dim repertoir As FileDialog
        Dim sItem As String
        Set repertoir = Application.FileDialog(msoFileDialogFolderPicker)
        With repertoir
        .Title = "choisissez la bonne répertoire"
        .AllowMultiSelect = False
        If .Show <> -1 Then GoTo NextCode
        sItem = .SelectedItems(1)
        End With
        NextCode:
        PrendreChemin = sItem
        Set repertoir = Nothing
        End Function

        Function PrendreFichiers() As String
        Dim fd As FileDialog
        Dim fichiers As String
        Dim fichier As Variant

        Set fd = Application.FileDialog(msoFileDialogFilePicker)
        fichiers = ""
        With fd
        .Filters.Clear
        .Filters.Add "All files", "*.*"
        .Filters.Add "Images", "*.gif; *.jpg; *.jpeg", 1
        .Filters.Add "Excel", "*.xls; *.xlsx; *.xlsm", 2
        .Filters.Add "Word", "*.doc; *.docx; *.docs", 3
        If .Show = -1 Then
        For Each fichier In .SelectedItems
        If fichiers <> "" Then
        fichiers = fichiers + ";" + fichier
        Else
        fichiers = fichier
        End If
        Next fichier
        End If
        End With
        Set fd = Nothing
        PrendreFichiers = fichiers
        End Function
        0