Activecell.Value = "Une variable"
makks
Messages postés
17
Date d'inscription
Statut
Membre
Dernière intervention
-
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24603 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai un petit problème quand je veux mettre la valeur d'une variable dans mes cellules, par exemple je note :
f = "=Somme(A1;B1)", ceci est un exemple, mes formules sont variables normalement d'ou le choix de vouloir une variable.
Ensuite mon problème se pose, j'aimerais insérer ma formule dans des cellules, j'utilise donc activecell.value = f (J'ai aussi essayé avec activecell.formulalocal, et avec toute les formes de concaténation "" && ect..) et rien ne marche, je pense donc que l'erreur vient de la formule ou je ne sais quoi, si vous pourriez m'aider. :)
J'ai un petit problème quand je veux mettre la valeur d'une variable dans mes cellules, par exemple je note :
f = "=Somme(A1;B1)", ceci est un exemple, mes formules sont variables normalement d'ou le choix de vouloir une variable.
Ensuite mon problème se pose, j'aimerais insérer ma formule dans des cellules, j'utilise donc activecell.value = f (J'ai aussi essayé avec activecell.formulalocal, et avec toute les formes de concaténation "" && ect..) et rien ne marche, je pense donc que l'erreur vient de la formule ou je ne sais quoi, si vous pourriez m'aider. :)
A voir également:
- Activecell.value vba
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Dépassement de capacité vba ✓ - Forum Excel
4 réponses
Bjr,
Avez-vous le code entier svp ?
2 pb que j'entrevois :
- la dimension de f : l'avez-vous déclarée ?
- le caractère variable de f : si vous n'avez pas utilisé la fonction "Set f =..." alors f sera fixe.
Mais encore une fois on y verra plus clair avec votre code
Avez-vous le code entier svp ?
2 pb que j'entrevois :
- la dimension de f : l'avez-vous déclarée ?
- le caractère variable de f : si vous n'avez pas utilisé la fonction "Set f =..." alors f sera fixe.
Mais encore une fois on y verra plus clair avec votre code
Bonjour,
Attention quand on parle de variable dans du code, ça n'a rien à voir avec une formule Excel.
La syntaxe pour insérer une formule Excel dans une cellule par une macro en vba c'est, en reprenant ton exemple :
Ou bien la variante avec Cells(x,y)
Après, je pense que tu vas vouloir répéter ça sur plusieurs lignes. Donc dans le code que j'ai écris plus haut, il faudra remplacer les "1" par :
Attention quand on parle de variable dans du code, ça n'a rien à voir avec une formule Excel.
La syntaxe pour insérer une formule Excel dans une cellule par une macro en vba c'est, en reprenant ton exemple :
ActiveCell.FormulaLocal = "=SOMME(A1:B1)"
Ou bien la variante avec Cells(x,y)
Après, je pense que tu vas vouloir répéter ça sur plusieurs lignes. Donc dans le code que j'ai écris plus haut, il faudra remplacer les "1" par :
" & ActiveCell.Row & "
Bonjour,
Pas de problème avec Excel version française :
A+
Pas de problème avec Excel version française :
Sub Test()
Dim f As String
f = "=Somme(A1;B1)"
ActiveCell.FormulaLocal = f
End Sub
A+
Bonjour,
Est-ce que i et x et annee sont bien initialisés ?
passe bien.
Le .select suivi du activecell sont inutiles.
eric
Est-ce que i et x et annee sont bien initialisés ?
Dim u As Long, i As Long, x As Long, annee As Long, f As String u = 2 i = 5 x = 1 annee = 2016 If u = 2 Then f = "=SOMMEPROD((Données!P:P)*((Données!K:K=""E"")+(Données!K:K=""V"")+(Données!K:K=""P""))*(Données!D:D=" & i - x + 1 & ")*(Données!C:C=" & annee & ")*((Données!L:L=""P"")+(Données!L:L=""E"")+(Données!L:L=""V"")))" End If If u = 3 Then f = "=SOMMEPROD((Données!P:P)*((Données!K:K=""E"")+(Données!K:K=""V"")+(Données!K:K=""""))*(Données!D:D=" & i - x + 1 & ")*(Données!C:C=" & annee & ")*(Données!L:L=""P""))" End If [D5].FormulaLocal = f
passe bien.
Le .select suivi du activecell sont inutiles.
eric
Désolé, je n'avais pas vu la réponse,
Oui oui, toute les valeurs sont bien initialisés avant,
l'erreur qui s'affiche est l'erreur 1004 : Erreur définie par l'application ou par l'objet.
Et comme je l'ai écrit dans une réponse plus haute, mon tableau se remplit bien si je rentre une chaine de caractère exemple : ActiveCell.FormulaLocal = "exemple" mais il ne trouve pas la valeur f, de plus avant l'affichage de l'erreur: u=2; i=9; x=9 et f est égal à la bonne chaine de caractère.
Oui oui, toute les valeurs sont bien initialisés avant,
l'erreur qui s'affiche est l'erreur 1004 : Erreur définie par l'application ou par l'objet.
Et comme je l'ai écrit dans une réponse plus haute, mon tableau se remplit bien si je rentre une chaine de caractère exemple : ActiveCell.FormulaLocal = "exemple" mais il ne trouve pas la valeur f, de plus avant l'affichage de l'erreur: u=2; i=9; x=9 et f est égal à la bonne chaine de caractère.
Le code est un plus long mais je pense que cette partie peut suffir, sans le contexte entier, c'est compliqué.
f est bien déclaré en string et j'arrive à remplir mon tableau avec des "f" quand je met des guillemets, sans guillemets j'obtient une erreur "objet ect..."
Je précise que les formules marchent, déjà testé.
A quel moment x est défini en dimension et en valeur initiale ? Avant dans une partie du code que nous n'avons pas ?
A quelle valeur de u le code plante ? Pour le savoir mettez une "msgbox u" avant l'utilisation de f.
Je suis capable d'afficher n'importe qu'elle chaine de caractère sur mes cellules que je désire : ect
mais impossible de ressortir la valeur de f.
Donc au moment du débogage, quelles sont les valeurs de vos variables : u, i, x et f ?
Soit colonne 2(B), ligne 9, ici pas de problème normalement, c'est le début de mon tableau.