Bonjour,
Voici mon problème, je souhaite modifier uniquement les cellules de la ligne contenant la cellule active. Tous mes essais se sont soldé spar un échec. Voici le code.
Sub Macro1()
Taux = Worksheets("Feuil2").Cells(2, 6).Value
For Each Cell In Range("E5:AH30")
If WorksheetFunction.IsNumber(Cell) = True Then
If ActiveCell.Value = "x" Then
Cell.Value = Cell.Value * Taux
Cell.Font.Bold = True
ElseIf ActiveCell.Value = "" Then
Cell.Value = Cell.Value / Taux
Cell.Font.Bold = False
End If
End If
Next Cell
End Sub
L'utilisation des objets actifs (comme ActiveCell) est très fortement déconseillée car dangereuse lorsqu'on qu'on ne maitrise pas parfaitement toutes les implications.
On peut s'en passer dans 99.99% des cas ....
Dans une procédure (ou fonction) d'un module standard, il est préférable, soit de définir clairement la cellule, soit de lui transmettre en argument.
Plutôt qu'ActiveCell, il vaut mieux utiliser le Target renvoyé par les procédures évènementielles de la feuille concernée (par exemple l'évènement Worksheet_Change) et éventuellement l'envoyer à une procédure dans un module standard.