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 :

Créer un nouvelle feuille avec bouton


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut Créer un nouvelle feuille avec bouton
    Bonjour,


    j'ai un code pour créer une feuille qui fonctionne très bien mais j'aimerais ajouter un bouton à la feuille et en ajoutant le code au bouton

    Code de la feuille créer

    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
    Sub creerFeuilles()
    Dim curCell As Range
    Set curCell = ThisWorkbook.Sheets("Accueil ").Range("B4")
    While curCell.Value <> vbNullString
        ThisWorkbook.Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = curCell.Value & " " & curCell.Offset(0, 1).Value
        ThisWorkbook.Sheets("Accueil ").Hyperlinks.Add Anchor:=curCell.Offset(0, 2), Address:="", SubAddress:= _
            "'" & ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name & "'!A1", TextToDisplay:="Acces à laFeuille"
        Set curCell = curCell.Offset(1, 0)
    Wend
    ThisWorkbook.Sheets("Accueil ").Select
     
     'Récuperer le nom de l'onglet
     Dim f As Worksheet
         For Each f In Worksheets
         If f.Name <> "Accueil" Then
         f.Range("K1") = f.Name
     
             With f.Range("k1")
                ' .Borders.Weight = 3
                 .Font.Bold = True
                 .Font.Size = 18
                 .Font.Italic = True
                 .Font.Name = "Arial"
             End With
             End If
         Next
     
    End Sub


    Code du bouton


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Save ()
    Application.DisplayAlerts = False
    ActiveWorkBook.Save

    Je vous remercie d'avance

    Cordialement

    Max

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour Max,

    Je pense que l'enregistreur de macro peut t'être très utile pour ce que tu cherches !

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Bonsoir Kimy

    Non j'ai essayé je ne suis pas arriver!

    Cordialement

    Max

  4. #4
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Hum...

    Avec l'enregistreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
        Sheets.Add After:=Sheets(Sheets.Count)
        ActiveSheet.Buttons.Add(84.75, 22.5, 105.75, 25.5).Select
        Selection.OnAction = "mamacro"
    End Sub
    Avec 2 modif' parce que je suis maniaque (et encore... je garde le .Select dont j'ai horreur) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub apdf1()
        Worksheets.Add After:=Worksheets(Worksheets.Count)
        With Worksheets(Worksheets.Count)
            .Buttons.Add(84.75, 22.5, 105.75, 25.5).Select
        End With
        Selection.OnAction = "mamacro"
    End Sub
    Ca fonctionne !

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  5. #5
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    re,


    Je te remercie de ton intervention rapide.

    J'ai du faire une boulette, j'ai un message d'erreur
    Impossible de définir la propriété OnAction de la classe Button j'ai fait ceci.

    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
    41
    42
    Sub creerFeuilles()
    Dim curCell As Range
    Set curCell = ThisWorkbook.Sheets("Accueil ").Range("B4")
    While curCell.Value <> vbNullString
        ThisWorkbook.Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = curCell.Value & " " & curCell.Offset(0, 1).Value
        ThisWorkbook.Sheets("Accueil ").Hyperlinks.Add Anchor:=curCell.Offset(0, 2), Address:="", SubAddress:= _
            "'" & ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name & "'!A1", TextToDisplay:="Acces à laFeuille"
        Set curCell = curCell.Offset(1, 0)
    Wend
     
     
     
        Worksheets.Add After:=Worksheets(Worksheets.Count)
        With Worksheets(Worksheets.Count)
            .Buttons.Add(84.75, 22.5, 105.75, 25.5).Select
        End With
        Selection.OnAction = Application.DisplayAlerts = False
    ActiveWorkBook.Save
     
     
     
     
    ThisWorkbook.Sheets("Accueil ").Select
     
     'Récuperer le nom de l'onglet
     Dim f As Worksheet
         For Each f In Worksheets
         If f.Name <> "Accueil" Then
         f.Range("K1") = f.Name
     
             With f.Range("k1")
                ' .Borders.Weight = 3
                 .Font.Bold = True
                 .Font.Size = 18
                 .Font.Italic = True
                 .Font.Name = "Arial"
             End With
             End If
         Next
     
    End Sub
    Cordialement

    Max

  6. #6
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, jette un œil ici : Visual Basic Editor ?

  7. #7
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Voici en "mieux" formalisé :
    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
    Dim curCell As Range
     
    With ThisWorkbook
        Set curCell = .Sheets("Accueil").Range("B4")
        While curCell.Value <> vbNullString
            .Sheets.Add After:=.Sheets(.Sheets.Count)
            .Sheets(.Sheets.Count).Name = curCell.Value & " " & curCell.Offset(0, 1).Value
    '        .Sheets("Accueil").Hyperlinks.Add Anchor:=curCell.Offset(0, 2), Address:="", SubAddress:= _
    '            "'" & ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name & "'!A1", TextToDisplay:="Acces à laFeuille"
            Set curCell = curCell.Offset(1, 0)
            With .Worksheets(.Worksheets.Count)
                .Buttons.Add(84.75, 22.5, 105.75, 25.5).Select
            End With
            Selection.OnAction = "mamacro"
        Wend
    End With
    Ton problème était là : Selection.OnAction = Application.DisplayAlerts = False. Ya du Suppr en trop je pense.

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    629
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 629
    Points : 47
    Points
    47
    Par défaut
    Re,

    Que marque tu a la place de "mamacro"

    Cordialement

    Max

  9. #9
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Euh?!
    Tu veux placer un bouton avec une macro associée ?

    C'est le nom de la macro en question...
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/05/2008, 12h44
  2. [C#] Créer une nouvelle feuille dans un classeur Excel
    Par amoiraud dans le forum Windows Forms
    Réponses: 4
    Dernier message: 12/03/2008, 08h53
  3. Réponses: 2
    Dernier message: 23/04/2007, 14h26
  4. Réponses: 1
    Dernier message: 22/11/2006, 20h49
  5. Nouvelle form avec bouton dans barre taches
    Par DarkChamallo dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/05/2004, 20h44

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