Aide Excel
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

Aide Excel

Forum d'aide et d'entraide sur Excel : cours, astuces, tutoriaux...
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment : -29%
PC portable Gamer ERAZER DEPUTY P60 – ...
Voir le deal
999.99 €

 

 Lister les barres d'outils et contrôles d'Excel

Aller en bas 
3 participants
AuteurMessage
KiWin
Administrateur
KiWin


Nombre de messages : 155
Localisation : Isère - France
Date d'inscription : 16/08/2005

Lister les barres d'outils et contrôles d'Excel Empty
MessageSujet: Lister les barres d'outils et contrôles d'Excel   Lister les barres d'outils et contrôles d'Excel EmptyMar 23 Aoû à 0:17

Lister les barres d'outils et contrôles d'Excel


Auteur(s) : KiWin
Première publication le : 22/08/05
Dernière modification le : 05/09/05
Fichier associé : command_bars.zip
Testé et réalisé sous Excel 2002



Elements abordés : CommandBars / Controls / NameLocal / Visible / Count

Il est possible via des macros de modifier l'interface d'Excel, c'est à dire agir sur les menus et barres d'outils d'Excel. Nous allons ici nous contenter d'établir une liste des barre d'outils d'Excel et des contrôles qu'elle contiennent.

Avant de songer à modifier, ajouter, interagir avec les barres d'outils et les contrôles, il est nécessaire de savoir comment retrouver la barre d'outils ou le contrôle qui nous intéresse, indiquer quel élément modifier après avoir effectué les vérifications nécessaires.

C'est ce que nous allons apprendre ici.

Nous devons pour celà procéder par étapes :

    1) Etablir une liste des barres d'outils.
    2) Pour chaque barre d'outils, récupérer les propriétés le concernant qui nous intéresse.
    3) Pour chaque barre d'outils, établir une liste des contrôles qu'elle contient.
    4) Pour chaque contrôle, récupérer les propriétés qui nous intéressent et le concernant.

Sans oublier de reporter sur une feuille Excel les données ainsi obtenues.

La macro commence ainsi :

Code:
Dim Ligne As Integer, Colonne As Integer
Ligne = 3
Colonne = 1

Voir cours sur les types de données

- On récupère le nombre de barres d'outils contenues dans Excel :

Code:
Dim Nb_Barres As Byte
Nb_Barres = CommandBars.Count

CommandBars désigne l'ensemble des barre d'outils et Count le nombre d'éléments que contient cet ensemble.

- On créé deux variables qui vont servir à récupérer le nom de chaque barre ainsi que son état visible ou non :

Code:
Dim Nom_Barre As String
Dim Vue_Barre As Boolean

Voir cours sur les types de données

- On créé aussi une variable qui va prendre le nombre de contrôles que contient une barre :

Code:
Dim Nb_Controles_Barre As Byte

- On créé de même une variable qui va recevoir le nombre total de contrôles toutes barres confondues :

Code:
Dim Nb_Controles As Integer

- On créé un compteur qui va augmenter par la suite pour pouvoir changer de barre :

Code:
Dim Num_Barre As Byte
Num_Barre = 1

- On créé une boucle basée sur le nombre de barres pour pouvoir analyser toutes les barres une par une :

Code:
For Num_Barre = 1 To Nb_Barres

Une boucle commence par For et se termine par Next, qui se trouve à la fin des instructions devant être réalisées durant la boucle.

- On récupère le nom et l'état visible ou non de la barre :

Code:
Nom_Barre = CommandBars(Num_Barre).NameLocal
Vue_Barre = CommandBars(Num_Barre).Visible

CommandBars(Num_Barre) désigne la barre dont le numéro est contenu dans Num_Barre.
NameLocal est le nom de la barre. Il existe aussi Name qui est le nom d'origine de la barre, c'est-à-dire en anglais.
Visible est une proprité qui permet de savoir si un élément est visible ou non.

- On récupère aussi le nombre de contrôles contenus dans la barre :

Code:
Nb_Controles_Barre = CommandBars(Num_Barre).Controls.Count

- On ajoute ce nombre de contrôles au total de contrôles :

Code:
Nb_Controles = Nb_Controles + Nb_Controles_Barre

- Convertion de la valeur de Vue_Barre en texte :

Code:
Dim Etat_Barre As String
If Vue_Barre = True Then
  Etat_Barre = "Visible"
Else
  Etat_Barre = "Cachée"
End If

En fait on traduit l'état visible de la barre par un mot clairement lisible, à savoir "Visible" ou "Caché".

- On écrit dans la feuille de calcul les données de cette barre d'outils :
par exemple : Barre d'outils n° X : Unetelle (Visible) - X contrôles

Code:
Worksheets(2).Cells(Ligne, Colonne).Value = "Barre d'outils n° " _
& Num_Barre & " : " & Nom_Barre & " (" & Etat_Barre & ") - " _
& Nb_Controles_Barre & " contrôles"

(Je ne donne pas ici de détails quant à l'écriture de texte dans une cellule, il faut juste savoir que l'on créer une phrase complète en utilisant les valeurs récupérées ci-dessus.)

- Changement de cellule cible (pas de détails) :

Code:
Ligne = Ligne + 1
Colonne = Colonne + 1


On va maintenant s'occuper des contrôles contenus dans cette barre d'outils en suivant le même principe que ci-dessus.

- On créé deux variables qui vont servir à récupérer le nom de chaque contrôle ainsi que son état visible ou non :

Code:
Dim Nom_Controle As String
Dim Vue_Controle As Boolean

- On créé un compteur qui va augmenter par la suite pour pouvoir changer de contrôle :

Code:
Dim Num_Controle As Byte
Num_Controle = 1

- On créé une boucle basée sur le nombre de contrôles pour pouvoir analyser tous les contrôles un par un :

Code:
For Num_Controle = 1 To Nb_Controles_Barre

- On récupère le nom et l'état visible ou non du contrôle :

Code:
Nom_Controle = CommandBars(Num_Barre).Controls(Num_Controle).Caption
Vue_Controle = CommandBars(Num_Barre).Controls(Num_Controle).Visible

Ici comme nom on utilise la propriété Caption qui est le texte affiché par un contrôle, quand celui-ci doit l'afficher.

- Convertion de la valeur de Vue_Controle en texte :

Code:
Dim Etat_Controle As String
If Vue_Controle = True Then
  Etat_Controle = "Visible"
Else
  Etat_Controle = "Caché"
End If

- On écrit dans la feuille de calcul les données de ce contrôle :
par exemple : Contrôle n° X : Untel (Visible)

Code:
Worksheets(2).Cells(Ligne, Colonne).Value = "Contrôle n° " _
& Num_Controle & " : " & Nom_Controle & " (" & Etat_Controle & ")"

- Changement de cellule cible (pas de détails) :

Code:
Ligne = Ligne + 1

- Le traitement du contrôle étant terminé, on passe au suivant :

Code:
Next Num_Controle

- Changement de cellule cible (pas de détails) :

Code:
Ligne = Ligne + 1
Colonne = Colonne - 1

- Une fois que tous les contrôles ont été analysés, on change de barre d'outils :

Code:
Next Num_Barre

- Pour terminer, on écrit sur la feuille le nombre de barres trouvées ainsi que le total de contrôles :

Code:
Worksheets(2).Cells(1, 1).Value = Nb_Barres & _
" barres d'outils ont été recensées pour un total de " _
& Nb_Controles & " contrôles."


Dernière édition par le Lun 5 Sep à 11:47, édité 1 fois
Revenir en haut Aller en bas
https://aide-excel.forumactif.com
KiWin
Administrateur
KiWin


Nombre de messages : 155
Localisation : Isère - France
Date d'inscription : 16/08/2005

Lister les barres d'outils et contrôles d'Excel Empty
MessageSujet: Re: Lister les barres d'outils et contrôles d'Excel   Lister les barres d'outils et contrôles d'Excel EmptyMar 23 Aoû à 0:18

Et voici le code complet :

Code:
Sub List_CommandBars()

Dim Ligne As Integer, Colonne As Integer
  Ligne = 3
Colonne = 1

Dim Nb_Barres As Byte
Nb_Barres = CommandBars.Count

Dim Nom_Barre As String
Dim Vue_Barre As Boolean

Dim Nb_Controles_Barre As Byte

Dim Nb_Controles As Integer

Dim Num_Barre As Byte
Num_Barre = 1

For Num_Barre = 1 To Nb_Barres

    Nom_Barre = CommandBars(Num_Barre).NameLocal
    Vue_Barre = CommandBars(Num_Barre).Visible
    Nb_Controles_Barre = CommandBars(Num_Barre).Controls.Count
    Nb_Controles = Nb_Controles + Nb_Controles_Barre

    Dim Etat_Barre As String
    If Vue_Barre = True Then
        Etat_Barre = "Visible"
    Else
        Etat_Barre = "Cachée"
    End If
   
    Worksheets(2).Cells(Ligne, Colonne).Value = "Barre d'outils n° " _
    & Num_Barre & " : " & Nom_Barre & " (" & Etat_Barre & ") - " _
    & Nb_Controles_Barre & " contrôles"
   
    Ligne = Ligne + 1
    Colonne = Colonne + 1

    Dim Nom_Controle As String
    Dim Vue_Controle As Boolean
   
    Dim Num_Controle As Byte
    Num_Controle = 1

    For Num_Controle = 1 To Nb_Controles_Barre
   
        Nom_Controle = CommandBars(Num_Barre).Controls(Num_Controle).Caption
        Vue_Controle = CommandBars(Num_Barre).Controls(Num_Controle).Visible
       
        Dim Etat_Controle As String
        If Vue_Controle = True Then
            Etat_Controle = "Visible"
        Else
            Etat_Controle = "Caché"
        End If

        Worksheets(2).Cells(Ligne, Colonne).Value = "Contrôle n° " _
        & Num_Controle & " : " & Nom_Controle & " (" & Etat_Controle & ")"
       
        Ligne = Ligne + 1
   
    Next Num_Controle

Ligne = Ligne + 1
Colonne = Colonne - 1

Next Num_Barre

Worksheets(2).Cells(1, 1).Value = Nb_Barres & _
" barres d'outils ont été recensées pour un total de " _
& Nb_Controles & " contrôles."

End Sub
Revenir en haut Aller en bas
https://aide-excel.forumactif.com
Hamyllana
Co-administratrice
Hamyllana


Nombre de messages : 16
Localisation : Reims (Marne)
Date d'inscription : 16/08/2005

Lister les barres d'outils et contrôles d'Excel Empty
MessageSujet: Re: Lister les barres d'outils et contrôles d'Excel   Lister les barres d'outils et contrôles d'Excel EmptyMer 24 Aoû à 1:48

Applaudi
Revenir en haut Aller en bas
http://www.progforum.net
Ramsès II
Co-administratrice
Ramsès II


Nombre de messages : 36
Localisation : Bruxelles
Date d'inscription : 21/08/2005

Lister les barres d'outils et contrôles d'Excel Empty
MessageSujet: Re: Lister les barres d'outils et contrôles d'Excel   Lister les barres d'outils et contrôles d'Excel EmptySam 27 Aoû à 14:30

Arf, je n'ai pas encore eu le temps de tester le code.
Revenir en haut Aller en bas
http://users.skynet.be/pharaon.ramses/sitedesdeuxramses/index.ht
KiWin
Administrateur
KiWin


Nombre de messages : 155
Localisation : Isère - France
Date d'inscription : 16/08/2005

Lister les barres d'outils et contrôles d'Excel Empty
MessageSujet: Re: Lister les barres d'outils et contrôles d'Excel   Lister les barres d'outils et contrôles d'Excel EmptyLun 5 Sep à 11:48

MAJ du 05/09/05 : ajout de liens vers le cours sur les types de données.
Revenir en haut Aller en bas
https://aide-excel.forumactif.com
Contenu sponsorisé





Lister les barres d'outils et contrôles d'Excel Empty
MessageSujet: Re: Lister les barres d'outils et contrôles d'Excel   Lister les barres d'outils et contrôles d'Excel Empty

Revenir en haut Aller en bas
 
Lister les barres d'outils et contrôles d'Excel
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Barres d'outils disparues

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Aide Excel :: Entraide & apprentissage :: Tutoriaux-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser