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éation de feuille sous condition [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 100
    Points
    100
    Par défaut Création de feuille sous condition
    Bonjour,


    je voudrais savoir comment lors d'un click sur un bouton(cmdAjouter)
    peut-on vérifier d'après une variable(sNumAts) si une feuille existe, si oui,
    l'ouvrir sinon la créer et la nommer(sNumAts)



    Dans vos sources(SilkyRoad) j'ai récupérer ceci et j'ai essayé de le transformer


    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
     
    Private Sub cmdAjouter_Click()
    Dim Ws As Worksheet
        'Boucle sur les feuilles du classeur.
         For Each Ws In ThisWorkbook.Worksheets
            'On sort de la boucle si le nom de la feuille est sNumAts.
            If Ws.Name = sNumAts Then
                Exit For
            Else
                'Crée la feuille
                Set Ws = Sheets.Add(After:=Sheets(Sheets.Count))
                Ws.Name = sNumAts
            End If
         Next Ws
     
    Sheets(sNumAts).Select
    End Sub
    il me renvoie une erreur
    "Erreur d'exécution '1004'"
    Impossible de renommer une feuille comme une autre feuille etc....

    On dirait qu'il ne veut pas sortir de la boucle lorsque
    la condition est remplie.


    une idée merci

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    Bonjour,
    J'ai l'impression que tu confond Variable et nom de la feuille.
    Si sNumAts est une varaible tu doit l'initialiser avec le nom de la feuille..
    Exemple,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        sNumAts = "NomDeLaFeuille"
    Mais si c'es le nom de la feuille tu doit mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        If Ws.Name = "sNumAts" Then
    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 100
    Points
    100
    Par défaut
    bonjour

    merci de ta réponse



    mais sNumAts est une variable qui reprend un n° de client
    donc je vérifie si une feuille avec ce N° de client existe sinon je la crée
    sNumAts est une variable global

    une feuille par n° de client


    merci de ton aide

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    OK, maintenant j'ai compris..
    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
    Private Sub cmdAjouter_Click()
    Dim Ws As Worksheet
    Dim B As Boolean
        'Boucle sur les feuilles du classeur.
         For Each Ws In ThisWorkbook.Worksheets
            'On sort de la boucle si le nom de la feuille est sNumAts.
            If Ws.Name = sNumAts Then
                B = True
                Exit For
            End If
         Next Ws
        If Not B Then
            'Crée la feuille
            ThisWorkbook.Sheets.Add After:=Sheets(Sheets.Count)
            ActiveSheet.Name = sNumAts
        End If
     
        Sheets(sNumAts).Select
    End Sub
    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    175
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2004
    Messages : 175
    Points : 100
    Points
    100
    Par défaut
    merci les gars ca marche

    mais une petite question pour ne pas mourir idiot
    pq? une double condition

    Ws.Name = sNumAts
    B = True
    merci

  6. #6
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Points : 2 416
    Points
    2 416
    Par défaut
    B=true est le drapeau qui permet ou non de créer une nouvelle feuille.
    Dans ton 1er code, si la première feuille testée n'était pas sNumAts, tu voulais directement en créer une nouvelle alors qu'elle était peut-être en 2èm.. 3èm.. position
    A+

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

Discussions similaires

  1. Copier/coller dans plusieurs feuilles sous condition
    Par lilou86 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/11/2009, 12h18
  2. [AC-2000] Interdire la création d'enregistrement sous condition
    Par Gabout dans le forum IHM
    Réponses: 3
    Dernier message: 02/07/2009, 22h08
  3. Requête SQL avec création de table sous condition
    Par misig dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 04/11/2007, 08h58
  4. Création d'une feuille sous condition
    Par PyMon dans le forum Excel
    Réponses: 1
    Dernier message: 24/07/2007, 12h22
  5. Création d'une feuille sous condition
    Par PyMon dans le forum Excel
    Réponses: 4
    Dernier message: 19/07/2007, 16h14

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