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

passage à l'aide d'une macro d'une formule avec variable vers feuille active

5 réponses
Avatar
Noisette
bonjour,
j'essaie de placer par transfert d'un tableau vers une table de la feuille
active une formule dont une des valeur est donnée par une variable
déterminée dans la macro vba.
Ce point me pose un problème de syntaxe, me semble-t-il.
Je joins une macro qui résume ce problème .
je voudrais aussi savoir comment placer une relation construite avec la
propriété "formulalocal" dans un tableau pour
ensuite la transférer vers une table de cellule.
J'ai trouvé des exemple dans le groupe mais je n'ai pas pu et pas su en
extraire mon cas

-0-0-0-0-00-0-
Sub essai1()
Dim list As Range
Dim rg As Long
Dim table As Variant
Dim Intitulrub As String

Intitulrub = "MAISON"
Set list = ActiveSheet.Range("A24", "B25")
table = list
For rg = 1 To 2
table(rg, 1) = 1

'memoinc est une cellule nommée de la feuille active et contient un entier.
'La relation suivante ne fonctionne pas car
' "Intitulrub" est considéré comme le nom d'une cellule de la feuille active

table(rg, 2) = "= Intitulrub & "" / "" & MOIS(MAINTENANT())+1 & "" /
""&ANNEE(MAINTENANT())&"" "" & memoinc"

'je fait ensuite un essai pour placer directement cette relation
'dans la dernière cellule de la table "list" avec la propriété
"formulalocal" mais je n'arrive pas
'à trouver la bonne syntaxe à moins que ce ne soit une autre raison


list.Cells(2, 2).FormulaLocal = "="" & Intitulrub &
""/""&MOIS(MAINTENANT())+1 & "" / ""&ANNEE(MAINTENANT())&""/"" & memoinc"
End Sub

-0-0-0-0-0-0-0-0-

merci d'avance pour les réponses éventuelles

Noisette

5 réponses

Avatar
Trirème
Bonsoir Nuisette,
Si tu veux écrire une formule dans une cellule précise (ex en A1), tu peux faire :
RANGE("A1").FormulaLocal = "=""" & Intitulrub & """&""/""& MOIS(MAINTENANT()) + 1
&""/""&ANNEE(MAINTENANT())&" & Range("memoinc")

Ici, 'intitulrub' est ta variable de la macro et 'memoinc' est ta cellule nommée de ton
classeur.

Tu n'es pas obligé(e) de passer par une variable tableau ou liste pour ça. À moins que ça
soit ça précisément que tu veux faire. J'espère avoir tout compris ce que tu demandais.


Set list = ActiveSheet.Range("A24", "B25")
table = list
Ici le tableau 'table' prend les valeurs de la plage A24:B25. Est ce ce que tu veux ?


...
list.Cells(2, 2).FormulaLocal = "="" & Intitulrub &
""/""&MOIS(MAINTENANT())+1 & "" / ""&ANNEE(MAINTENANT())&""/"" & memoinc"
Pour affecter à des cellules les valeurs d'un tableau :

Range("A1") = table(i,j) ou [A1] = table(i,j) pour une cellule (i et j à préciser)
Range("A1:B2") = table pour plusieurs cellules. Dans ce cas, je crois qu'il faut que le
RANGE() corresponde au moins à la taille de la table.

Cordialement,
Trirème

Avatar
Trirème
Bonsoir Nuisette,
Oups ! Je voulais dire Noisette :-[


Avatar
Philippe.R
Bonsoir Trirème,
Se coucher tard nuit !
;o)))
--
Avec plaisir
Philippe.R
"Trirème" a écrit dans le message de
news:
Bonsoir Nuisette,
Oups ! Je voulais dire Noisette :-[




Avatar
Noisette
"Trirème" a écrit dans le message de news:
%
Bonsoir Nuisette,
ou bonne nuit,Zette


je te pardonne ton lapsus(qui est assez marrant vu la tête que j'aurais, je
n'ai pas
l'impression que ma femme apprécierait)
et de plus ta réponse m'a bien dépannée, je t'en remercie

Noisette
...........................



Cordialement,
Trirème


Avatar
Trirème
;-)

Trirème

"Trirème" a écrit dans le message de news:
%
Bonsoir Nuisette,
ou bonne nuit,Zette


je te pardonne ton lapsus(qui est assez marrant vu la tête que j'aurais, je
n'ai pas
l'impression que ma femme apprécierait)
et de plus ta réponse m'a bien dépannée, je t'en remercie

Noisette
...........................



Cordialement,
Trirème