Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Coller une formule excel en fonction d'une cellule

2 réponses
Avatar
elli6258
Bonsoir à tous,
J'ai récupérer la macro ci-dessous et que j'essai d'adapter pour réaliser
ceci:
je scrute chaque cellule de la colonne A et si les 2 premieres lettre sont
"OU" alors je pose une formule "= si(...) sur la même ligne et 7 colonnes
plus loin.
J'ai cru comprendre que la fonction offset me décalait la cellule active et
formula posait un texte.

Pouvez-vous me dire ce qui ne colle pas?
Merci d'avance.
Michel

Dim OUSlig As Range
Dim pl11 As Range
Set pl11 = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each OUSlig In pl11
If Left(OUSlig.Value, 2) = "OU" Then
ActiveCell.Offset(0, 7).FormulaR1C1 =
"=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
End If
Next OUSlig

2 réponses

Avatar
Jacky
Bonsoir,

Replace cette ligne
ActiveCell.Offset(0, 7).FormulaR1C1 =
"=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
par
OUSlig.Offset(0, 7).FormulaR1C1 = "=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
'--------------
eventullement celle-ci si besoin
If Left(OUSlig.Value, 2) = "OU" Then
par
If UCase(Left(OUSlig.Value, 2)) = "OU" Then
--
Salutations
JJ


"elli6258" a écrit dans le message de news:

Bonsoir à tous,
J'ai récupérer la macro ci-dessous et que j'essai d'adapter pour réaliser
ceci:
je scrute chaque cellule de la colonne A et si les 2 premieres lettre sont
"OU" alors je pose une formule "= si(...) sur la même ligne et 7 colonnes
plus loin.
J'ai cru comprendre que la fonction offset me décalait la cellule active
et formula posait un texte.

Pouvez-vous me dire ce qui ne colle pas?
Merci d'avance.
Michel

Dim OUSlig As Range
Dim pl11 As Range
Set pl11 = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each OUSlig In pl11
If Left(OUSlig.Value, 2) = "OU" Then
ActiveCell.Offset(0, 7).FormulaR1C1 =
"=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
End If
Next OUSlig



Avatar
elli6258
Merci pour ton aide.
je viens d'apprendre encore quelque chose...j'ai utilisé ta 1 ere
proposition et cela fonctionne.
Cordialement

"Jacky" a écrit dans le message de news:
%23wXaa$
Bonsoir,

Replace cette ligne
ActiveCell.Offset(0, 7).FormulaR1C1 =
"=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
par
OUSlig.Offset(0, 7).FormulaR1C1 = "=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
'--------------
eventullement celle-ci si besoin
If Left(OUSlig.Value, 2) = "OU" Then
par
If UCase(Left(OUSlig.Value, 2)) = "OU" Then
--
Salutations
JJ


"elli6258" a écrit dans le message de news:

Bonsoir à tous,
J'ai récupérer la macro ci-dessous et que j'essai d'adapter pour réaliser
ceci:
je scrute chaque cellule de la colonne A et si les 2 premieres lettre
sont "OU" alors je pose une formule "= si(...) sur la même ligne et 7
colonnes plus loin.
J'ai cru comprendre que la fonction offset me décalait la cellule active
et formula posait un texte.

Pouvez-vous me dire ce qui ne colle pas?
Merci d'avance.
Michel

Dim OUSlig As Range
Dim pl11 As Range
Set pl11 = Range("A1:A" & Range("A65536").End(xlUp).Row)
For Each OUSlig In pl11
If Left(OUSlig.Value, 2) = "OU" Then
ActiveCell.Offset(0, 7).FormulaR1C1 =
"=IF(MAX(RC[1]:RC[9])=1,""OUI"","""")"
End If
Next OUSlig