Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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: 16
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
 

Mapat

XLDnaute Occasionnel
Bonjour
En essayant le double clic, ou F2, la macro ne prend pa du tout en comte la commande.
Quant au clic droit du menu contextuel... je ne vois pas
Merci pour ces propositions et bonne journé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: 2
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: 5
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: 4
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…