XL 2019 Curseur actif

Mapat

XLDnaute Occasionnel
Bonjour

Dans une macro de tout ce qu'il y a de plus simple, faite pour éviter d'écrire une petite
phrase qui revient souvent, peut-on garder le curseur actif pour éviter le repositionnement
avec la souris. Une manip en moins.

Merci
 

Pièces jointes

  • Classeur1.xlsm
    14.1 KB · Affichages: 9
Solution
Re, mapat, bonjour Fred0o

voila un exemple, cela fonctionne indépendamment avec ton bouton, le double clic ou le choix du premier critère dans le menu contextuel du bouton droit de la souris

Bien cordialement, @+
code dans le module de la feuille 1
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.FormulaR1C1 = Val_Ecriture
End Sub
Private Sub Worksheet_Activate()
    
        With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, Before:=1)
            .OnAction = "Ecrit"
            .FaceId = 31
            .Caption = "Ecriture"
        End With
        Application.CommandBars("Cell").Controls(2).BeginGroup = True
End Sub
Private Sub Worksheet_Deactivate()...

Mapat

XLDnaute Occasionnel
Re
Merci de cette réponse
Partant de quelque chose de très simple la suite parait compliquée voire impossible
C'est dommage car pour écrire la suite de la phrase de cette macro, ça aurait été super pratique.
Pas de retour avec la souris
Bonne soirée
 

Fred0o

XLDnaute Barbatruc
Bonjour a tous

Voici une macro évènementielle a mettre en Feuil1. Ensuite, a toi de définir dans la macro, la plage de cellules sur laquelle tu veux appliquer cette macro. Plus besoin de cliquer sur le bouton <Ecris>

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Target = "" Then Exit Sub
    Application.EnableEvents = False
    Target = [D3] & Target
    Application.EnableEvents = True
End Sub
 

Pièces jointes

  • Mapat_V1.xlsm
    17.2 KB · Affichages: 1

Yeahou

XLDnaute Accro
Supporter XLD
Re, mapat, bonjour Fred0o

voila un exemple, cela fonctionne indépendamment avec ton bouton, le double clic ou le choix du premier critère dans le menu contextuel du bouton droit de la souris

Bien cordialement, @+
code dans le module de la feuille 1
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Target.FormulaR1C1 = Val_Ecriture
End Sub
Private Sub Worksheet_Activate()
    
        With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, Before:=1)
            .OnAction = "Ecrit"
            .FaceId = 31
            .Caption = "Ecriture"
        End With
        Application.CommandBars("Cell").Controls(2).BeginGroup = True
End Sub
Private Sub Worksheet_Deactivate()
Application.CommandBars("Cell").Reset
End Sub
ton code du module 1 modifié, j'ai fait une constante mais tu peux utiliser une variable texte publique
Code:
Public Const Val_Ecriture = "Il faut écrire "
Sub Ecrit()
'
' Macro3 Macro
'
' Touche de raccourci du clavier: Ctrl+q
'
    ActiveCell.FormulaR1C1 = Val_Ecriture

End Sub
 

Pièces jointes

  • Exemples Mapat.xlsm
    18.9 KB · Affichages: 3

Yeahou

XLDnaute Accro
Supporter XLD
je ne l'ai pas précisé mais pour que cela fonctionne pour toutes les feuilles de ton classeur, il faut mettre les événementielles dans Thisworkbook, par principe je préfère désactiver à chaque désactivation de feuille tout ce qui modifie les menus contextuels
Code:
Private Sub Workbook_Open()
    With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, Before:=1)
        .OnAction = "Ecrit"
        .FaceId = 31
        .Caption = "Ecriture"
    End With
    Application.CommandBars("Cell").Controls(2).BeginGroup = True

End Sub
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    With Application.CommandBars("Cell").Controls.Add(Type:=msoControlButton, Before:=1)
        .OnAction = "Ecrit"
        .FaceId = 31
        .Caption = "Ecriture"
    End With
    Application.CommandBars("Cell").Controls(2).BeginGroup = True
End Sub
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Target.FormulaR1C1 = Val_Ecriture
End Sub
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
    Application.CommandBars("Cell").Reset
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.CommandBars("Cell").Reset
End Sub
 

Pièces jointes

  • Exemples Mapat.xlsm
    18.9 KB · Affichages: 2
Dernière édition:

Mapat

XLDnaute Occasionnel
Bonjour
Je n'ai pas réussi avec la solution de FredOo que je remercie d'avoir donné de son temps
La solution de Yeahou fonctionne bien
Merci à vous deux d'avoir cogité pour cette question "de confort d'écriture"
Bien cordialement
 

Discussions similaires

Réponses
6
Affichages
253
Réponses
10
Affichages
139
Haut Bas