Bonjour le forum,
je test les valeurs des cellules d'une colonne N-1 pour renseigner la valeur de la cellule de la colonne N. La position de la colonne N est variable.
Pour cela j'utilise le code suivant qui fonctionne ;
maintenant j' aimerais ajouter une deuxiéme condition qui est la valeur correspondante de la même ligne mais dans la colonne fixe D
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Public Sub taches_faites() 'remplissage des taches terminées Dim Real As Range, CellReal As Range Application.ScreenUpdating = False 'On Error Resume Next If ActiveCell.Value = "Réalisé" Then Set Real = Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(100, 0)) For Each CellReal In Real If CellReal.Offset(0, -1) <> "" Then CellReal.Value = "Fait" End If Next CellReal Set Real = Nothing Else: MsgBox ("veuillez sélectionner une case : Réalisé ") ActiveCell.Offset(0, 1).Select End If End Sub
en traduction :
If CellReal.Offset(0, -1) <> "" and range ( colonne (D),row de CellReal).value ="blabla" Then execution du code
Comme la position de ma colonne contenant CellReal est variable, je ne peux pas utiliser la propriété Offset.
après plusieurs essais infructueux, je m'en suis tirer avec une formule dans le code suivant :
mais je pense que je peux mettre directement les deux conditions dans le code sans pour cela utiliser de formule. Toute l'astuce se trouvant dans la référence absolue de la colonne D et la référence relative de CellReal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 Public Sub taches_faites() 'remplissage des taches terminées Dim Real As Range, CellReal As Range Application.ScreenUpdating = False 'On Error Resume Next If ActiveCell.Value = "Réalisé" Then Set Real = Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(100, 0)) For Each CellReal In Real If CellReal.Offset(0, -1) <> "" Then If CellReal = "" Then With CellReal .FormulaR1C1 = "=IF(AND(RC[-1]>0.5,RC4=R2C5),""Fait"","""")" .Value = .Value End With End If End If Next CellReal Set Real = Nothing Else: MsgBox ("veuillez sélectionner une case : Réalisé ") ActiveCell.Offset(0, 1).Select End If End Sub
Si quelqu'un pouvait m'indiquer une piste...
merci beaucoup.
Cordialement
Dom
Partager