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 :

VBA création feuilles nommées numerotés


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut VBA création feuilles nommées numerotés
    Bonjour,

    Je souhaite crée une macro qui me crée 1 nouvelle feuille j'ai cherché et trouvé ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim shtoto As Worksheet
    Set shtoto = Sheets.Add(After:=Sheets(Sheets.Count))
    shtoto.Name = "Sem"
    Set shtoto = Nothing

    2 petits pb

    1. Quand il me crée la feuille "Sem" il en crée toujours une autre (du genre feuil20) comment faire pour n'avoir que la feuille "Sem" de crée.

    2. Dans l'absolu je voudrai pouvoir les numérotés Sem1 Sem2 Sem3. Quand je clic sur le bouton associé à ma macro si Sem1 existe je voudrai qu'il crée Sem2 si Sem2 existe je voudrai qu'il crée Sem3 ect...

    Merci pour vos réponse j’espère que j'ai été assez clair et que les réponses n'existe pas déjà (pas trouvé).

    Bonne journée à tous

    Rq: je débute sur VBA avec Excel 2010 prof plus

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    une proposition à adapter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    Dim Ws As Worksheet, NomFl As String, x As Integer
    x = 1
    For Each Ws In Worksheets
      If Ws.Name = "sem" & x Then
        x = x + 1
      End If
    Next Ws
    NomFl = "sem" & x
    Sheets.Add After:=Sheets("sem" & x - 1)
        ActiveSheet.Name = NomFl
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut
    Merci pour cette réponse casefayere

    Pour l'instant j'ai une erreur : "Erreur d'exécution 9, l'indice n'appartient pas à la sélection

    Le débogueur pointe la ligne 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub Macro1()
    Dim Ws As Worksheet, NomFl As String, x As Integer
    x = 1
    For Each Ws In Worksheets
      If Ws.Name = "sem" & x Then
        x = x + 1
      End If
    Next Ws
    NomFl = "sem" & x
    Sheets.Add After:=Sheets("sem" & x - 1)
        ActiveSheet.Name = NomFl
    End Sub
    Etant novice en VBA je ne comprend pas tout du code que tu as mis alors je vais étudier ça de mon coté afin de comprendre les termes qui me sont inconnu et de l'adapter à ce que je veux faire.

    si je bloque je reviendrais vers vous

    encore merci

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,

    au premier tour de boucle tu n'as pas de feuille semx-1

    si tu n'as pas de problème pour l’ordre des feuilles tu peu remplacer ta ligne 10


  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut
    Salut bbil,

    Ça marche !!!

    Bon je vais creuser de mon coté pour comprendre tous le code mais c'est parfait.

    Merci à vous deux vous êtes trop fort !!!!!

    Rq: ce sujet peut être marqué Résolu

    Eddy

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour Bbil, re le forum, DixFire
    tu peux adapter si ta feuille "sem1" n'existe pas encore :
    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
    Sub Macro1()
    Dim Ws As Worksheet, NomFl As String, x As Integer
    x = 1
    For Each Ws In Worksheets'recherche si la feuile sem existe
      If Ws.Name = "sem" & x Then
        x = x + 1 'et incrémente x si elle existe "sem1, sem2, etc"
      End If
    Next Ws
    NomFl = "sem" & x'nom de la nouvelle feuille
    If x >1 then
       Sheets.Add After:=Sheets("sem" & x - 1)
       ActiveSheet.Name = NomFl
    Else
       Sheets.Add After:=Sheets(Sheets.count)
       ActiveSheet.Name = NomFl
    End If
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 4
    Par défaut
    Rebonjour casefayere,

    En effet ça marche aussi et merci pour les commentaires sur les ligne de code ça m'aide à y voir plus claire.

    Il manque juste un "End If" que j'ai rajouter ligne 16
    (je le note juste pour ceux qui serai intéressé par la manip)

    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
    Sub Macro1()
    Dim Ws As Worksheet, NomFl As String, x As Integer
    x = 1
    For Each Ws In Worksheets 'recherche si la feuile sem existe
      If Ws.Name = "sem" & x Then
        x = x + 1 'et incrémente x si elle existe "sem1, sem2, etc"
      End If
    Next Ws
    NomFl = "sem" & x 'nom de la nouvelle feuille
    If x > 1 Then
       Sheets.Add After:=Sheets("sem" & x - 1)
       ActiveSheet.Name = NomFl
    Else
    Sheets.Add After:=Sheets(Sheets.Count)
       ActiveSheet.Name = NomFl
      End If
    End Sub
    Encore merci pour votre aide

    Bonne journée à tous

    Eddy

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Rq: ce sujet peut être marqué Résolu
    alors penses-y
    Il manque juste un "End If" que j'ai rajouter ligne 16
    C'est un oubli, je l'ai corrigé

    bonne journée également
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. [XL-2010] Création champ nommé en VBA
    Par Handlordz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/06/2012, 22h03
  2. exel-VBA - création copie de feuille
    Par zebulon81 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 12/06/2007, 12h18
  3. [VBA-E]feuille créée sous condition
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2006, 16h11
  4. [VBA-E]création feuille en fonction données d'1 col.
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/02/2006, 15h16
  5. [VBA] [Excel] feuille masquée = pas de macro?
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 30/01/2006, 13h58

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