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

Problème de codage d'une formule

3 réponses
Avatar
Jc
Bonjour,

Par macro, je désire mettre des formules dans diverses cellules.

Avec le code suivant :
CellulTraitée.FormulaR1C1 = _
"=""PAUSE de "" & DemiJournéeDécalage" & TypeEtab & "_" & Col -
2 & " & "" MIN ("" & DemiJournéeDécalage" & TypeEtab & "_" & Col - 2
& " & "" effective sur l'aire de compétition)"""

j'obtiens la formule suivante:
="PAUSE de " & DemiJournéeDécalage2_7 & " MIN (" &
DemiJournéeDécalage2_7 & " effective sur l'aire de compétition)"

Cependant, j'aimerais incorporer dans cette formule une soustraction
pour obtenir la formule ci-dessous
="PAUSE de " & DemiJournéeDécalage2_7 & " MIN (" &
DemiJournéeDécalage2_7 - DemiJournéeDécalage2_9 & " effective sur
l'aire de compétition)"

En bidouillant tant bien que mal j'écris cela , mais ça plante
J'imaginne qu'il s'agit d'un problème de guillemet (") encore que...

voici l'objet du délit et de mon courroux.
CellulTraitée.FormulaR1C1 = _
"=""PAUSE de "" & DemiJournéeDécalage" & TypeEtab & "_" & Col -
2 & " & "" MIN ("" & DemiJournéeDécalage" & TypeEtab & "_" & Col - 2
& " - "" & DemiJournéeDécalage" & TypeEtab & "_" & Col & " & ""
effective sur l'aire de compétition)"""

PS : les formule font référence Í  des cellules nommées existantes.
J'aimerais conserver cette soustraction qui permettrait d'automatiser
le calcul s'il advenait que l'on change ces constantes.

D'avance merci en espérant avoir bien expliqué mon problème.

--

______________________________________________
Jc

3 réponses

Avatar
MichD
Bonjour,
Comme tu ne donnes pas la phrase que tu aimerais voir afficher dans la
cellule mais seulement une formule, tu devras adapter au besoin.
Range("A1").Formula = "PAUSE de " & Range("DemiJournéeDécalage2_7") & "
Min et " & _
Range("DemiJournéeDécalage2_7") -
Range("DemiJournéeDécalage2_9") & _
" min effective sur l'aire de compétition"
MichD
Avatar
Jc
MichD a formulé la demande :
Bonjour,
Comme tu ne donnes pas la phrase que tu aimerais voir afficher dans la
cellule mais seulement une formule, tu devras adapter au besoin.
Range("A1").Formula = "PAUSE de " & Range("DemiJournéeDécalage2_7") & " Min
et " & _
Range("DemiJournéeDécalage2_7") -
Range("DemiJournéeDécalage2_9") & _
" min effective sur l'aire de compétition"
MichD

Comme toujours merci MichD
La phrase qui doit apparaͮtre est du style :
Pause de 30 MIN (5 min effectives sur l'aire de compétition.
La formule que tu proposes est logique.
Cependant comme cette formule doit être écrite dans 6 onglets (je
n'avais pas mis toutes les données sur le tapis, au jeu faut en garder
sous le pied...) il y a 4 variantes.
Ce qui explique les noms (DemiJournéeDécalage2_7...) avec ces deux
chiffres en final.
C'est l'incorporation de ces données variables qui me pose problème.
Si je ne trouve pas une formule unique qui s'adapte Í  tous les cas,
j'ai la possibilité d'utiliser un select case et de mettre en "dur",
comme tu le propose, ces variables.
Mais c'est moins élégant, mais comme ça devrait marcher l'élégance...
Merci
--
______________________________________________
Jc
Avatar
MichD
Le 13/05/22 Í  12:49, Jc a écrit :
MichD a formulé la demande :
Bonjour,
Comme tu ne donnes pas la phrase que tu aimerais voir afficher dans la
cellule mais seulement une formule, tu devras adapter au besoin.
Range("A1").Formula = "PAUSE de " & Range("DemiJournéeDécalage2_7") &
" Min et " & _
              Range("DemiJournéeDécalage2_7") -
Range("DemiJournéeDécalage2_9") & _
              " min effective sur l'aire de compétition"
MichD

Comme toujours merci MichD
La phrase qui doit apparaͮtre est du style :
Pause de 30 MIN (5 min effectives sur l'aire de compétition.
La formule que tu proposes est logique.
Cependant comme cette formule doit être écrite dans 6 onglets (je
n'avais pas mis toutes les données sur le tapis, au jeu faut en garder
sous le pied...) il y a 4 variantes.
Ce qui explique les  noms (DemiJournéeDécalage2_7...) avec ces deux
chiffres en final.
C'est l'incorporation de ces données variables qui me pose problème.
Si je ne trouve pas une formule unique qui s'adapte Í  tous les cas, j'ai
la possibilité d'utiliser un select case et de mettre en "dur", comme tu
le propose, ces variables.
Mais c'est moins élégant, mais comme ça devrait marcher l'élégance...
Merci

Pour avoir une formule unique, les plages nommées doivent avoir le même
nom dans chacune des feuilles. Si c'est le cas, la formule va s'inscrire
dans la feuille active avec les données (variables) de cette feuille.
'-------------------------------
Sub test()
Dim X, Y
With ActiveSheet
'2 variables
x = .Range("DemiJournéeDécalage2_7")
y = .Range("DemiJournéeDécalage2_9")
.Range("A1").Formula = "PAUSE de " & x & " Min (" & _
x - y & " min effective sur l'aire de compétition.)"
End With
End Sub
'-------------------------------
MichD