Microsoft 365 Macro ou VBA pour automatisser les actions sur Excel

DAVH

XLDnaute Nouveau
Bonjour tout le monde,

J'aimerais faire les actions suivantes mais je ny arrive pas.
- Mettre automatiquement une bordure sous forme de croix (en couleur rouge) à une cellule lorsqu'elle est sélectionnée en cliquant sur un bouton
-Annuler l'action précédante (enlever la croix pour revenir à une cellule normale).
- Insérer automatiquement un texte et une couleur de fond dans une cellule en cliquant sur un bouton.
-Annuler l'action précédant.

J'ai essayé de le faire avec un macro mais excel me ramène toujours à la cellule sélectionnée au départ pour pour enrégistrer le macro.

Je vous mets en PJ le fichier excel. Merci d'avance :)
 

Pièces jointes

  • Planning chantiers.xlsm
    59.1 KB · Affichages: 5

Lolote83

XLDnaute Barbatruc
Bonjour,
Dans ta macro Sub Annuler(), remplacer simplement la ligne
Range("D7:E9").Select
par
ActiveCell.Select
voir code ci-dessous
VB:
Sub Annuler()
'
' Annuler Macro
' Chantier annulé
'
' Touche de raccourci du clavier: Ctrl+h
'
    'Range("D7:E9").Select
    ActiveCell.Select
    With Selection.Borders(xlDiagonalDown)
        .LineStyle = xlContinuous
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Color = -16776961
        .TintAndShade = 0
        .Weight = xlMedium
    End With
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
       
        etc etc etc

et de même sur la macro2 pour l'effacement
Code:
Sub Macro2()
'
' Macro2 Macro
'

'
    'Range("D7:E9").Select
    ActiveCell.Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
En espérant avoir compris la problématique
@+ Lolote83
 

Phil69970

XLDnaute Barbatruc
Bonjour @DAVH, @Lolote83, le forum

Je vous propose ceci beaucoup plus court :

VB:
Sub Annuler()
' Annuler Macro
' Chantier annulé
' Touche de raccourci du clavier: Ctrl+h

With ActiveCell
    .Borders(xlDiagonalDown).Weight = xlMedium
    .Borders(xlDiagonalUp).Weight = xlMedium
    .Borders(xlDiagonalDown).Color = vbRed
End With

End Sub

Sub Macro2() 'Tu devrais mettre un nom plus significatif
'Sub SupCroix() ' par exemple
With ActiveCell
    .Borders(xlDiagonalDown).LineStyle = xlNone
    .Borders(xlDiagonalUp).LineStyle = xlNone
End With

End Sub

@Phil69970
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 349
Membres
102 869
dernier inscrit
radyreth