XL 2019 VBA soustraction sous condition

tikazor

XLDnaute Nouveau
bonjour,rebonjour pour ceux qui ont vu mon message précédemment résolu.

Sur le fichier ci-joint à la feuille "données"
Je souhaite soustraire par 8 les valeurs des colonnes C,D,E,F,G, SI sur leur ligne correspondante la cellule B est en couleur, en pratique cela ferait:

si je colore B6, alors 8-C6, 8-D6,8-E6,8-F6,8-G6.

a priori sur les formules possibles aucune ne prend en charge ce genre de fonction d'autant plus que les valeurs des colonnes doivent être mis à jour régulièrement sans formule.

si vous avez le temps de m'expliquer la démarche ce serait le +. ;)

cordialement
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, tikazor

•>tikazor
Préambule
Tu devrais supprimer ta PJ et la remplacer par une version anonymisée.
(mais il est déjà trop tard... 10 affichages)
(cf la charte du forum où il est question de RGPD)

Pour ta question, une possibilité "bancale" (avec la poussière de 2008 ;))
(voir ici)

Code VBA à mettre dans la feuille données
NB: Il faudra enregistrer le classeur en *.xlsm
La soustraction intervient, une fois la cellule "coloriée" mais uniquement quant tu sélectionnes ensuite une autre cellule de la colonne B.
VB:
Option Explicit

Dim Cx%, i%, T_arget$

Private Sub Worksheet_Activate()
Cx = ActiveCell.Interior.ColorIndex
T_arget = ActiveCell.Address
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Intersect(Target, [B:B]) Is Nothing Then Exit Sub
If Target.Row < 6 Then Exit Sub
On Error Resume Next
If IsEmpty(T_arget) Then
Cx = Target.Interior.ColorIndex
T_arget = Target.Address
Exit Sub
End If
        If Range(T_arget).Interior.ColorIndex <> Cx Then
            For i = 1 To 5
            Range(T_arget).Offset(, i).Value = 8 - Range(T_arget).Offset(, i).Value
            Next
        End If
    Cx = Target.Interior.ColorIndex: T_arget = Target.Address
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

Bancal, parce que détecter un changement de couleur, c'est pas dans la logique d'un tableur (changement de valeur oui)
Et bancal, tu verras à l'usage ;)

Et si je devais être tatillon, ce serait en te conseillant de ne pas baser ce changement de valeur sur un changement de couleur ;)
 

tikazor

XLDnaute Nouveau
Je trouvais la couleur cool! ;);)

À la base je pensais insérer des cases à cocher mais je trouvais la démarches fastidieuses (mettre une case a chaque ligne et lier chaque case) et pensais que le code vba couleur irait plus vite.
Sinon à ajouter une colonne à gauche des phrases et la remplir d'une "X" et donc si case rempli alors 8-..etc, mais je devais aussi passer par du vba.
Donc je suis revenu a mon idée de couleur.

Si tu as une idée par rapport ces propositions je suis preneur? Ou autre chose également !

Merci en tout cas de l'intérêt
 

tikazor

XLDnaute Nouveau
j'ai vu le lien, effectivement ça à l'air complet :);je suis à mes balbutiements dans la maîtrise d'excel, mais bon en cette période j'ai du temps j'irai jeter un oeil!!!

merci encore pour la solution bancale qui est une bonne idée en attendant mieux!!
 

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175