Modifier uniquement ActiveCell.Row

molio - Modifié le 11 avril 2021 à 18:46
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 8 mai 2021 à 11:24
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

f894009 Messages postés 16940 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 2 juin 2023 2
1 mai 2021 à 09:32
Bonjour,

If ActiveCell.Value = "x" Then

Ce x est dans une seule colonne?
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 21
8 mai 2021 à 11:24
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.
0