passage à l'aide d'une macro d'une formule avec variable vers feuille active
5 réponses
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
'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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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.
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
Trirème
Bonsoir Nuisette, Oups ! Je voulais dire Noisette :-[
Bonsoir Nuisette,
Oups ! Je voulais dire Noisette :-[
Bonsoir Nuisette, Oups ! Je voulais dire Noisette :-[
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 :-[
Bonsoir Trirème,
Se coucher tard nuit !
;o)))
--
Avec plaisir
Philippe.R
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de
news:OoqzeuF3HHA.1184@TK2MSFTNGP04.phx.gbl...
Bonsoir Nuisette,
Oups ! Je voulais dire Noisette :-[
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 :-[
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
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news:
%23JqLGpF3HHA.1184@TK2MSFTNGP04.phx.gbl...
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
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
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
;-)
Trirème
"Trirème" <NoOne@EvryOuer.fr> a écrit dans le message de news:
%23JqLGpF3HHA.1184@TK2MSFTNGP04.phx.gbl...
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
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