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 :

controler checkBox à partir d'un autre classeur


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut controler checkBox à partir d'un autre classeur
    Salut tlm,
    J'ai un petit pb qui est le suivant.
    - Je dispose d'un classeur sur lequel j'ai mis 3 checkbox et un bouton. Le clic entraîne (suivant les cases cochées) des mises en forme sur un autre classeur.
    (Le code est ecrit sur la feuille sous VBA et non pas en module, parce que j'utilise des checkbox du menu "boite à outils de controles". Autrement ça marche pas )

    - J'ai ensuite crée un module qui en fonction des checkbox crées précédemment lance une autre mise en forme. MAIS là ça marche pas .

    J'ai l'impression qu'il ne reconnait pas le fait qu'une checkbox soit cochée .

    Comment faire SVP ?

    Merci

  2. #2
    Membre régulier
    Inscrit en
    Mai 2006
    Messages
    151
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 151
    Points : 83
    Points
    83
    Par défaut
    salut
    J'ai ensuite crée un module qui en fonction des checkbox lance une autre mise en forme
    commence par nous donner qq lignes de code de ton modul

  3. #3
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Effectivement, ce serait plus simple

    - Je crée mes 3 checkbox et mon bouton.

    Procédure utilisée dans le code (création classeur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'Créer un nouveau classeur
    Sub ajoutClasseur(Chemin, NomFichier As String)
        Workbooks.Add
        Workbooks(Workbooks.Count).SaveAs Chemin & NomFichier
    End Sub
    - J'appelle ma première procédure de mise en forme :

    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 CommandButton1_Click()     'Code crée dans la feuille même sous VBA
    Chemin = "C:\Toto\"
    ajoutClasseur Chemin, "test.xls"
    
    If CheckBox1 Then 
     Call Mise_en_forme1 ' ligne verte
    End If
    
    If CheckBox2 Then 
     Call Mise_en_forme2 ' ligne rose
    End If
    
    If CheckBox3 Then 
     Call Mise_en_forme1 ' ligne jaune
    End If
    
    End sub
    - Création d'un autre bouton dont le code lui est "stocké" dans un module :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Bouton2_QuandClic()
    
    Windows("test.xls").Activate
    Sheet("a").select
    
    If CheckBox1 and CheckBox2 and CheckBox3 then  'il reconnait pas cette condition, du coup il ne fait rien :s
    Call Mise_en_forme_FINALE
    End If
    
    End Sub

  4. #4
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Salut,
    J'ai réfléchis à une alternative pour ne pas avoir à trop modifier le code. (Même si je pense qu'il suffit de dire à VBA que les checkbox doivent être visible sur tout le projet).

    Comment vérifier que ds un nouveau classeur il y a l'onglet (ong1) ?

  5. #5
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    avec la gestion d'erreur...

  6. #6
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Salut,
    Désolé, je n'ai pas tout compris

  7. #7
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    oui j'ai été un peu cours tiens un peu de code exemple:
    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
     
    '
    'Vérifie existence feuille
    Function FeuilleExiste(Wk As Workbook, stNomFeuille As String) As Boolean
     On Error GoTo Fin
     'La ligne suivante provoque une erreur si feuille n'existe pas
     FeuilleExiste = Wk.Sheets(stNomFeuille).Name <> ""
     Exit Function
    Fin:
    FeuilleExiste = False
    End Function
    '
    ' Juste pour le test
    '
    Sub Test()
      If FeuilleExiste(ThisWorkbook, "Feuil1") Then MsgBox "Feuille 1 existe" _
      Else MsgBox "Manque Feuille 1"
     
      If FeuilleExiste(ThisWorkbook, "Feuil122") Then MsgBox "Feuille 122 existe" _
      Else: MsgBox "Manque Feuille 122"
     
    End Sub

  8. #8
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Génial.
    Je comprends mieux là . Je teste ça demain au boulot. et je passe le topic en résolu si ça marche !
    Merci beaucoup.

  9. #9
    Membre du Club Avatar de Echizen1
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 80
    Points : 44
    Points
    44
    Par défaut
    Impeccable !
    ça marche pas mal du tout ^_^

    Ps.
    Je passe le topic en résolu

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

Discussions similaires

  1. Recherche à partir d'un autre classeur.
    Par mart_val dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/12/2011, 19h13
  2. [XL-2007] Créer du code dans le classeur A à partir d'un autre classeur B
    Par geo909 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2009, 17h36
  3. Ouvrir un classeur à partir d'un autre classeur
    Par nomade333 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 08/03/2008, 15h55
  4. [VBA-E]Fermer un classeur en réseau à partir d'un autre classeur
    Par Pietro_L dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 10/05/2007, 10h08
  5. Checker un checkbox à partir d'un autre
    Par Damned Poc dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 23/02/2007, 14h08

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