IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Insertion automatique de feuille [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Insertion automatique de feuille
    Bonjour à tous,

    Pourriez-vous m'indiquer comment je peux insérer 36 feuilles dans un fichier par un code Vba ?
    Je vous en remercie par avance

  2. #2
    Membre éclairé Avatar de babybell
    Homme Profil pro
    Retraité Bancaire
    Inscrit en
    Septembre 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité Bancaire
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2008
    Messages : 495
    Par défaut
    Bonjour,
    une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 36
    Sheets.Add
    Next

  3. #3
    Membre averti
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Bonjour,

    tu peut aussi préciser l'endroit ou tu veut les inserer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Sub Ajouter_feuilles()
    'Declaration des variables
    Dim no_sheets As Integer
    Dim nb_add As Integer
    Dim i As Integer
     
    nb_add = 36 'Nombre de feuilles au total
    no_sheets = 2 'Numéro de la feuille après laquelle l'injection sera faite
     
    'Ajout des feuilles apres la feuille choisie
    'pour atteindre un total de 36 feuilles
    For i = no_sheets To no_sheets + (nb_add -1)
    Sheets.Add After:=Sheets(i)
    Next i
    End Sub
    Cordialement.
    Darki03

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour nec babybell Darki03 on peut aussi les nommer!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Option Explicit
    Sub tableau()
    Dim i As Byte
    Application.ScreenUpdating = False
    For i = 1 To 36
    ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
    ActiveSheet.Name = "tableau_" & Format(Sheets(i).Index, "0")
    Next i
    End Sub

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Pour créer un nouveau classeur avec 36 onglets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub ajoute_36()
        Dim res As Long: res = Application.SheetsInNewWorkbook
        Application.SheetsInNewWorkbook = 36
        Workbooks.Add
        Application.SheetsInNewWorkbook = res
    End Sub

  6. #6
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Et pourquoi pas une fonction a appeler 36 fois (utilisée sans affichage des alertes).

    Une fonction perso (a ameliorer ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Function Add_sheet(ByVal MySheet As String, Optional Mydel As Boolean) As Boolean
    ' ----------------------------------------------------------------------------------'
    ' Ajout d'une feuille en fin de classeur
    ' ----------------------------------------------------------------------------------'
    ' En entree :
    '               MySheet : Nom de la nouvelle feuille
    '               MyDel   : True pour suppression si existe déja
    ' ----------------------------------------------------------------------------------'
    ' Exemple de test :
    ' ----------------------------------------------------------------------------------'
    ' Dim NewSheet As String: NewSheet = "toto": desactive
    ' Add_sheet NewSheet, True '=> Pas de demande de confirmation de suppression
    ' Add_sheet NewSheet, False '=> Demande de confirmation de suppression
    ' active
    ' ----------------------------------------------------------------------------------'
    Dim F1 As Worksheet
     
    ' ------------------------------- '
    ' Existence de l'onglet
    ' ------------------------------- '
    For Each F1 In Sheets
        If F1.Name = MySheet Then
            If Mydel Then
                F1.Delete
                Exit For
            Else
                MsgBox "La feuille " & F1.Name & " existe déja", vbInformation, "Classeur " & ThisWorkbook.Name
                Exit Function
            End If
        End If
    Next
    ' ------------------------------- '
    ' Ajout de l'onglet
    ' ------------------------------- '
    Set F1 = Sheets.Add(After:=Sheets(Sheets.Count))
    F1.Name = MySheet
     
    Ajout_sheet = True
     
    End Function

  7. #7
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Merci à tous pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Insertion automatique de ligne à chaque ajout de feuille
    Par choup67 dans le forum Macros et VBA Excel
    Réponses: 95
    Dernier message: 03/07/2009, 10h42
  2. insertion automatique
    Par vduhaze dans le forum Access
    Réponses: 2
    Dernier message: 01/02/2006, 18h19
  3. Réponses: 1
    Dernier message: 10/01/2006, 18h50
  4. Powerpoint et insertions automatiques
    Par rapathonyk dans le forum Powerpoint
    Réponses: 2
    Dernier message: 24/06/2005, 13h50
  5. insertion automatique de code et d import
    Par benohite dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 17/11/2003, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo