Modifier uniquement ActiveCell.Row

Signaler
-
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
-
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


Merci d'avance

2 réponses

Messages postés
15753
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
7 mai 2021
2
Bonjour,

If ActiveCell.Value = "x" Then

Ce x est dans une seule colonne?
Messages postés
8536
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
8 mai 2021
21
Bonjour,

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.