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

XL 2016 VBA soustraire un chiffre à la valeur de la cellule

AHK

XLDnaute Nouveau
Bonjour,

J'ai un petit soucis.
J'ai en colonne C des chiffres dans ces cellules
et je voudrais grâce a un code VBA soustraire 7 (a chaque chiffre) a chaque fois que la valeur de la cellule C change.

J'ai essayé :

Sub HS()

Dim DernLigne As Long

For ligne = 6 To 42

Cells(ligne, 4).Value = Cells(ligne, 3).Value - 7


Next ligne

End Sub

J'ai un message d'erreur "Incompatibilité de type"
 

Pièces jointes

  • Gestion du personnel.xlsm
    95.4 KB · Affichages: 7
C

Compte Supprimé 979

Guest
Bonsoir AHK,

Bien plus simple, directement dans la feuille
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("C6:C42")) Is Nothing Then
    Application.EnableEvents = False
    Target.Value = Target.Value - 7
    Application.EnableEvents = True
  End If
End Sub

On peut même supprimer le code de la feuille et en mettre un dans ThisWorkbook
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  ' Vérifier que ce ne soit pas le calendrier ou les travaux, sinon on sort
  If InStr(1, Sh.Name, "Calendrier") > 0 Or InStr(1, Sh.Name, "Travbaux") > 0 Then Exit Sub
  ' Vérifier ou est modifié la valeur
  If Not Intersect(Target, Sh.Range("C6:C42")) Is Nothing Then
    Application.EnableEvents = False
    Target.Value = Target.Value - 7
    Application.EnableEvents = True
  End If
End Sub

A+
 

Discussions similaires

Réponses
2
Affichages
329
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…