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 :

CheckBox pour ouvrir onglet


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut CheckBox pour ouvrir onglet
    Bonjour,

    Je recherche un code que si je coche mon CheckBox en cliquant sur une ville "Charpe" j'ouvre l'onglet qui correspond

    Je vous remercie d'avance de votre aide

    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir Max,

    Essaies d'affecter la macro ci-dessous à chacune des cartes de tes 4 départements :

    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
    Sub clic_sur_selection()
     
     Dim Pref As String
     Dim tabldep() As Variant
     Dim i As Integer
     
        [AD23] = Right$(Mid(Application.Caller, InStr(Application.Caller, "-") + 1), 2)
     
        'je repasse en bleu tous les départements
        tabldep = Array("FR-22", "FR-29", "FR-35", "FR-56")
        For i = 0 To UBound(tabldep)
            ActiveSheet.Shapes(tabldep(i)).Fill.ForeColor.SchemeColor = 4
        Next
     
        'et on colorie le dépt cliqué en vert
        ActiveSheet.Shapes("FR-" & Worksheets("France").Range("AD23").Value).Fill.ForeColor.SchemeColor = 3
     
        'si la CheckBox1 est cochée, on ouvre l'onglet de la ville concernée
        If Worksheets("France").CheckBox1 = True Then
            Select Case Worksheets("France").Range("AD23").Value
            Case 22: Worksheets("St Brieuc").Activate
            Case 29: Worksheets("Quimper").Activate
            Case 35: Worksheets("Rennes").Activate
            Case 56: Worksheets("Vannes").Activate
            End Select
        End If
     
    End Sub
    ça doit fonctionner.

    Bertrand

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Bertrand

    Sa fonctionne nickel en plus avec les commentaires je te remercie beaucoup de ton aide.

    Maintenant reste a voir avec toute la carte car il y a 98 départements a mettre en place !

    J'aimerais trouvé un code pour masquer les villes parce que 98 onglet sa fait beaucoup et qui s'ouvre que lorsque je clic dessus la ville correspondante.
    ex: si je clic sur Nice l'onglet de Nice s'ouvre mais si après je clic sur Lyon l'onglet de Nice se ferme et l'onglet de Lyon s'ouvre un petit comme sa !

    Bonne journée et merci encore

    Max

    Re,

    J'ai rajouté 6 départements il ne devrais pas avoir trop de problème ou peut être juste un! au niveau des couleurs je m'explique :

    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
    Sub clic_sur_selection()
     
     Dim Pref As String
     Dim tabldep() As Variant
     Dim i As Integer
     
        [AD23] = Right$(Mid(Application.Caller, InStr(Application.Caller, "-") + 1), 2)
     
        'je repasse en bleu tous les départements
        tabldep = Array("FR-22", "FR-29", "FR-35", "FR-56", "FR-50", "FR-14", "FR-61", "FR-53", "FR-49", "FR-85", "FR-44")
        For i = 0 To UBound(tabldep)
            ActiveSheet.Shapes(tabldep(i)).Fill.ForeColor.SchemeColor = 4
        Next
     
        'et on colorie le dépt cliqué en vert
        ActiveSheet.Shapes("FR-" & Worksheets("France").Range("AD23").Value).Fill.ForeColor.SchemeColor = 3
     
        'si la CheckBox1 est cochée, on ouvre l'onglet de la ville concernée
        If Worksheets("France").CheckBox1 = True Then
            Select Case Worksheets("France").Range("AD23").Value
            Case 22: Worksheets("St Brieuc").Activate
            Case 29: Worksheets("Quimper").Activate
            Case 35: Worksheets("Rennes").Activate
            Case 56: Worksheets("Vannes").Activate
            Case 50: Worksheets("Saint Lô").Activate
            Case 14: Worksheets("Caen").Activate
            Case 61: Worksheets("Alençon").Activate
            Case 53: Worksheets("Laval").Activate
            Case 49: Worksheets("Angres").Activate
            Case 85: Worksheets("LaRoche sur Yon").Activate
            Case 44: Worksheets("Nantes").Activate
     
            End Select
        End If
     
    End Sub
    Lorsque je clic sur un département il devient vert et la région devient bleu et le reste des département doit être Blanc ?

    @+

    Max

  4. #4
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir,

    Pour reformuler, tu veux :

    Le département sélectionné en vert
    La région du département sélectionné en bleu
    Le reste des départements sur la carte en blanc

    C'est bien ça ?

    Si c'est ça, mets moi ton dernier fichier en ligne (Celui où il y a plusieurs régions). Je te le modifie.

    Bertrand

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonsoir Bertrand,

    Voila mon fichier je te remercie beaucoup, et si le temps te le permet et si je n'abuse pas trop de ta gentillesse.
    J'aimerais trouvé un code pour masquer les onglets et qui s'ouvre que lorsque je clic dessus la ville correspondante. Parce que 98 département sa fait beaucoup
    ex: si je clic sur Nice l'onglet de Nice s'ouvre mais si après je clic sur Lyon, l'onglet de Nice se ferme et l'onglet de Lyon s'ouvre un petit comme sa.
    Je te souhaite une bonne soirée

    Cordialement

    Max
    Fichiers attachés Fichiers attachés

  6. #6
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir Max,

    Je voulais vérifier quelques choses... et j'ai pu le faire grâce à ton fichier. Je m'explique :

    A chaque fois que tu crées un shape sur ta feuille, Excel incrémente une numérotation +1.

    Si tu lances en mode pas à pas la macro suivante et en laissant apparaître ta carte (cela va la verdir progressivement) :

    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
    sub test()
     
    ActiveSheet.Shapes(1).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(2).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(3).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(4).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(5).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(6).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(7).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(8).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(9).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(10).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(11).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(12).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(13).Fill.ForeColor.SchemeColor = 50
    ActiveSheet.Shapes(14).Fill.ForeColor.SchemeColor = 50
     
    end sub
    Qu'observe-t-on ? Les shapes n°5 et n°6 ne sont pas des cartes... Hors nous identifions les shapes grâce à leur "index/numéro". ce "trou" dans la numérotation risque de tout fausser. On peut faire du bricolage mais ça va complexifier inutilement la chose.
    La solution de supprimer les shapes 5 et 6 ne solutionne rien puisque Excel ne renumérote pas.
    A priori, impossible de renuméroter manuellement.

    En conséquence et pour faire simple : il te faut supprimer ton onglet "France" et en recréer un après.
    Prendre bien soin d'insérer toutes tes cartes (garder une copie intermédiaire si nécessaire) puis rajouter tes autres shapes par la suite (pas avant !).
    Attention, l'ordre est super important : il faut que tu saches quel département tu as créé en premier, puis en second...

    Un truc dans le genre:
    - premier élément crée = département 44
    - deuxième élément crée = département 35
    ...etc

    Il fallait le savoir et tu le sauras désormais.
    Je te laisse re-créer "France" et remettre en ligne si tu veux aller plus loin.

    Bertrand

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Bertrand

    J'ai bien essayé ta méthode mais je ne suis pas arriver !

    Bonne journée

    Max

Discussions similaires

  1. cliquer deux fois pour ouvrir dans un nouvel onglet
    Par rosert dans le forum ASP.NET
    Réponses: 0
    Dernier message: 07/12/2012, 15h57
  2. Réponses: 3
    Dernier message: 31/05/2010, 17h58
  3. target="_blank" pour ouvrir dans une nouvelle fenêtre ou dans un nouvel onglet?
    Par Marc22 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 23/03/2010, 20h56
  4. Scripter IE7 pour ouvrir plusieurs url dans des onglets
    Par Ttienne dans le forum VBScript
    Réponses: 13
    Dernier message: 02/04/2008, 23h34

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