Afficher/masquer le menu
Liens Ecyseo
  • Tags cloud
  • Daily
  • Pictures wall
  • Search
  • Display options
    • Links per page :
    • 20 links
    • 50 links
    • 100 links
  • RSS Feed
  • Login

J'ai besoin d'intimité. Non pas parce que mes actions sont douteuses, mais parce que votre jugement et vos intentions le sont.

5165 links 

page 1 / 1

Liste des liens

1 results tagged casse x
VBA : Modifier la casse à l'aide du clic droit
2018-06-8 16:50 - permalink -

Première étape : Modifier le menu contextuel des cellules.

Les procédures sont évidement stockées dans le module ThisWorkbook du projet VBA, j'ai ici choisi d'utiliser mon classeur (.xlsb) de macros personnelles.

Sub resetmenu()
          Application.CommandBars("cell").Reset
 End Sub
'**********************************************************
Private Sub Workbook_Open()
resetmenu
'appel la macro qui effacera la commande du menu contextuel
'crée lors de la session précédente

    Dim Cpop1 As CommandBarPopup
    Dim Cbut As CommandBarButton
    Dim MaBarre As CommandBar
    Set MaBarre = Application.CommandBars("cell")
    Set Cpop1 = MaBarre.Controls.Add(msoControlPopup)
    'on ajoute le popup qui va comporté tout les boutons
    With Cpop1
        .Caption = "Modifier la casse"    'label du sous-menu
    End With
    'on ajoute un bouton au sous-menu contextuel
    Set Cbut = Cpop1.Controls.Add(Type:=msoControlButton)
    With Cbut
        .FaceId = 403    ' bouton avec icône (référence à une table)
        .Caption = "MAJUSCLE"    ' label du bouton
        .OnAction = "majuscule"    'appel de la macro associée
    End With
    'on répéte l'opération pour les deux autres boutons
    Set Cbut = Cpop1.Controls.Add(Type:=msoControlButton)
    With Cbut
        .FaceId = 404
        .Caption = "minuscule"
        .OnAction = "minuscule"
    End With
    Set Cbut = Cpop1.Controls.Add(Type:=msoControlButton)
    With Cbut
        .FaceId = 306
        .Caption = "Nom Propre"
        .OnAction = "nompropre"
    End With
End Sub

Etape 2 : Écrire les trois macros pour la gestion de la casse

Les procédures sont stockées dans une feuille de module de code du projet VBA, du même classeur (.xlsb) de macros personnelles.

Dim Ch As Range
Sub majuscule()
  For Each Ch In Selection
  'Pour chaque cellule Ch de ma sélection Selection
  'Selection permet de renvoyer l'objet sélectionné dans la fenêtre active
    If Not Ch.HasFormula Then
    'la propriété HasFormula de l'objet range permet de tester qu'aucune
    ' cellules de la plage ne contiennent de formule, dans ce cas la conversion est ignorée
      Ch.Value = UCase(Ch.Value) 'Upper Case = MAJUSCULE
    End If
  Next Ch
End Sub
'*************************************************************
Sub minuscule()
  For Each Ch In Selection
    If Not Ch.HasFormula Then
      Ch.Value = LCase(Ch.Value) 'Lower Case = minuscule
    End If
  Next Ch
End Sub

'*************************************************************
 Sub nompropre()
  For Each Ch In Selection
    If Not Ch.HasFormula Then
      Ch.Value = Application.Proper(Ch.Value)
      'si une fonction Excel n'a pas d'équivalent en VBA
      'utiliser le la fonction Excel (anglais) comme une méthode de l'objet application
    End If
  Next Ch
End Sub
casse excel macros
- https://olivier-bureautique.blogspot.com/2016/01/vba-modifier-la-casse-laide-du-clic.html
page 1 / 1


Tags


  • shaarli
  • wikipedia

Tags cloud

Shaarli - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community - Help/documentation
Affiches "loi aviva" créées par Geoffrey Dorne le 13 Mai, 2020 - Mastodon 1 - Mastodon 2