Résolu case à cocher et VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

un internaute

XLDnaute Impliqué
Bonjour le forum,
Je voudrais barré du texte, lignes A4 à A19 successivement (Ligne 4, 5, 6, jusqu'à 19 ect...)
Colonnes de A à D. En colonne E par exemple on met les cases à cocher avec macro.
On coche ça barre le texte et inversement.
Mais alors quelle macro?
Qu'en pensait vous?
Mais alors moi je ne connais pas du tout la case à cocher et la macro qui va avec.
Merci d'avance pour vos retours.
Bien cordialement.
 
Dernière édition:
bonjour
avec ceci......
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 5 Then
        With Target.Offset(0, -4).Resize(1, 4).Font
            .Strikethrough = Not (.Strikethrough)
            Target = .Strikethrough
        End With
    End If
End Sub
 
bonjour
avec ceci......
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 5 Then
        With Target.Offset(0, -4).Resize(1, 4).Font
            .Strikethrough = Not (.Strikethrough)
            Target = .Strikethrough
        End With
    End If
End Sub
Bonjour vgendron,
Peux-tu STP me dire comment on fait pour faire la case à cocher.
On mettra la macro dans la feuille ou un module?
Merci à toi
 
Hello un internaute,

Pour insérer une checkbox dans Excel

  • Activer le mode Développeur : Fichier > Options > Customisation du ruban > Cocher la case Développeur
    1.PNG
  • Insérer une checkbox : Onglet Développeur > Insérer > Choisir le petit carré blanc coché
    2.png


Mais si j'ai bien compris comment marchait sa macro, pas besoin de case à cocher.
@vgendron Comment marche (ou quelle est la différence avec Range) de Target ?
 
Supprime la macro. elle ne sert à rien. c'était pour un essai

pour éviter d'avoir à selectionner une autre cellule avant de recliquer sur la cellule (en cas d'erreur)
utilise ce code.

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 5 And Target.Row >= 4 And Target.Row <= 19 Then
        With Target.Offset(0, -4).Resize(1, 4).Font
            .Strikethrough = Not (.Strikethrough)
            If .Strikethrough Then
                Target = "x"
            Else
                Target = "o"
            End If
        End With
    End If
    Target.Offset(0, 1).Select
    Application.EnableEvents = True
End Sub
 
autre écriture avec IIF pour remplacer if then else
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 5 And Target.Row >= 4 And Target.Row <= 19 Then
        With Target.Offset(0, -4).Resize(1, 4).Font
            .Strikethrough = Not (.Strikethrough)
            Target = IIf(.Strikethrough, "x", "o")
        End With
    End If
    Target.Offset(0, 1).Select
    Application.EnableEvents = True
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
202
Réponses
18
Affichages
1 K
Retour