Modifier uniquement ActiveCell.Row

molio - Modifié le 11 avril 2021 à 18:46
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
- 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
16607
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
3 juillet 2022
2
1 mai 2021 à 09:32
Bonjour,

If ActiveCell.Value = "x" Then

Ce x est dans une seule colonne?
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
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