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 onglet avec condition en VBA [XL-2007]


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    SANS
    Inscrit en
    Juillet 2014
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : SANS
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 69
    Par défaut Création onglet avec condition en VBA
    Bonjour
    Pour créer des onglets à partir de deux modèles (QUANTI ou QUALI)

    J'ai mis ce code pour l'onglet rapport

    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
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    Private Sub Worksheet_Change(ByVal Target As Range)
        Trouv = False
        'Test si la cellule est bien en colonne P (colonne 16 )
        If Target.Column = 16 Then
            'Test si la cellule est bien avant la ligne (pas de génération de feuille dont le nom est : " ")
            If Target.Row < 283 Then
                Onglet = Cells(Target.Row, 1).Value
                'Test si la cellule contient "quanti" (Lcase met obligatoirement en minuscule toute chaine de caractère)
                If LCase(Target.Value) = "quanti" Then
                    'on test le nom des feuilles et si on la trouve alors Trouv = True
                    For Each Sheet In Sheets
                        If Sheet.Name = Onglet Then
                            Trouv = True
                            Exit For
                        End If
                    Next
                    'Si on l'a trouvé on l'affiche sinon il faut la créer
                    If Trouv = True Then
                        Sheets(Onglet).Visible = True
                    Else
     
                        'on copie la feuille Model en dernier
                        Sheets("MODELCOMPQUANTI").Visible = True
                        Sheets("MODELCOMPQUANTI").Copy After:=Sheets(Sheets.Count)
                        Sheets("MODELCOMPQUANTI").Visible = False
                        'on renomme cette derniere
                        Sheets(Sheets.Count).Name = Onglet
                        Sheets(Sheets.Count).Visible = True
                    End If
                 Else
                    For Each Sheet In Sheets
                        If Sheet.Name = Onglet Then
                            Trouv = True
                            Exit For
                        End If
                    Next
                    'Si on l'a trouvé on l'affiche sinon il faut la créer
                    If Trouv = True Then
                     Sheets(Sheets.Count).Visible = True
                    End If
                 End If
            End If
        End If
     Trouv = False
        'Test si la cellule est bien en colonne Q (colonne 17 )
        If Target.Column = 17 Then
            'Test si la cellule est bien avant la ligne (pas de génération de feuille dont le nom est : " ")
            If Target.Row < 283 Then
     
                Onglet = Cells(Target.Row, 1).Value
                'Test si la cellule contient "quali" (Lcase met obligatoirement en minuscule toute chaine de caractère)
                If LCase(Target.Value) = "quali" Then
                    'on test le nom des feuilles et si on la trouve alors Trouv = True
                    For Each Sheet In Sheets
                        If Sheet.Name = Onglet Then
                            Trouv = True
                            Exit For
                        End If
                    Next
                    'Si on l'a trouvé on l'affiche sinon il faut la créer
                    If Trouv = True Then
                        Sheets(Onglet).Visible = True
                    Else
     
                        'on copie la feuille Model en dernier
                        Sheets("MODELCOMPQUALI").Visible = True
                        Sheets("MODELCOMPQUALI").Copy After:=Sheets(Sheets.Count)
                        Sheets("MODELCOMPQUALI").Visible = False
                        'on renomme cette derniere
                        Sheets(Sheets.Count).Name = Onglet
                        Sheets(Sheets.Count).Visible = True
                    End If
                 Else
                    For Each Sheet In Sheets
                        If Sheet.Name = Onglet Then
                            Trouv = True
                            Exit For
                        End If
                    Next
                    'Si on l'a trouvé on l'affiche sinon il faut la créer
                    If Trouv = True Then
                     Sheets(Sheets.Count).Visible = True
                    End If
                 End If
            End If
        End If
    End Sub
    Il fonctionne si au départ de l'utilisation les onglets MODELCOMPA QUANTI ET MODELCOMPAQUALI ne sont pas cachés , mais je souhaiterai pouvoir les cacher dès le début mais dans ce cas les onglets créés ne sont pas bons . Création du dernier onglet et non pas des onglets qui intéressement .
    Je ne trouve pas l'erreur, mais je ne suis pas très douée...
    Si quelqu'un peut m'aider
    Je vous joins en pj mon tableur
    Fichiers attachés Fichiers attachés

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

Discussions similaires

  1. Création tableau avec conditions date
    Par souris123 dans le forum Excel
    Réponses: 1
    Dernier message: 29/03/2015, 03h05
  2. [XL-2010] supprimer des onglets avec condition
    Par jkiii dans le forum Excel
    Réponses: 4
    Dernier message: 24/12/2013, 12h02
  3. Réponses: 1
    Dernier message: 29/10/2012, 15h23
  4. Pb vlookUp avec condition en VBA
    Par PJ_VBA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/08/2012, 20h12
  5. création variable avec condition
    Par nawal59 dans le forum SAS Base
    Réponses: 2
    Dernier message: 06/08/2008, 07h34

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