Intégrer une variable dans une somme, la variable étant un ongle
Résolu
MKCS
Messages postés
21
Date d'inscription
Statut
Membre
Dernière intervention
-
MKCS Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
MKCS Messages postés 21 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai effectué une macro qui ajoute une ligne à un tableau et qui crée un onglet en le renommant en fonction d'une cellule de la ligne créée.
Je souhaiterais maintenant insérer une formule dans une des cellules de la ligne créée, qui va faire une somme dans l'onglet nouvellement créé.
Pour cela, voici mon code:
' Trouver la dernière ligne du tableau
DLig = Range("A" & Rows.Count).End(xlUp).Row
' Définition de la variable qui représente le nom de l'onglet créé présent en dernière cellule de la colonne Q
Var = Range("Q" & DLig+1).Value
' Somme à partir de l'onglet créé dans la dernière cellule de la colonne D
Range("D" & DLig+1).Formula = "=SUM(" & Range(Var) & "!P$22:P$50)+SUM(" & Range(Var) & "!AC$22:AC$50)"
Mais il ne fonctionne pas...
Je suis loin d'être une experte en VBA et je n'ai jamais essayer d'insérer une formule dans une cellule en VBA donc je ne vois pas ce qui cloche, malgré mes recherches sur le net...
Merci par avance de votre aide.
Sarah
J'ai effectué une macro qui ajoute une ligne à un tableau et qui crée un onglet en le renommant en fonction d'une cellule de la ligne créée.
Je souhaiterais maintenant insérer une formule dans une des cellules de la ligne créée, qui va faire une somme dans l'onglet nouvellement créé.
Pour cela, voici mon code:
' Trouver la dernière ligne du tableau
DLig = Range("A" & Rows.Count).End(xlUp).Row
' Définition de la variable qui représente le nom de l'onglet créé présent en dernière cellule de la colonne Q
Var = Range("Q" & DLig+1).Value
' Somme à partir de l'onglet créé dans la dernière cellule de la colonne D
Range("D" & DLig+1).Formula = "=SUM(" & Range(Var) & "!P$22:P$50)+SUM(" & Range(Var) & "!AC$22:AC$50)"
Mais il ne fonctionne pas...
Je suis loin d'être une experte en VBA et je n'ai jamais essayer d'insérer une formule dans une cellule en VBA donc je ne vois pas ce qui cloche, malgré mes recherches sur le net...
Merci par avance de votre aide.
Sarah
A voir également:
- Intégrer une variable dans une somme, la variable étant un ongle
- Intégrer une vidéo dans un powerpoint - Guide
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Intégrer une liste déroulante dans excel - Guide
- Variable d'environnement temp - Forum Word
3 réponses
Bonjour
A priori, ton code semble correct (est ce qu'il s'applique à la bonne feuille ?)
Pour y voir plus clair, construis pas à pas ta formule dans une variable chaine, et, avant de l'exécuter, dans l'éditeur vba, tu mets un point d’arrêt devant cette variable, ce qui te permettra de la vérifier (F8 pour passer à la ligne suivante)
Un peu comme dans cet exemple semblable au tien et qui fonctionne
Cdlmnt
A priori, ton code semble correct (est ce qu'il s'applique à la bonne feuille ?)
Pour y voir plus clair, construis pas à pas ta formule dans une variable chaine, et, avant de l'exécuter, dans l'éditeur vba, tu mets un point d’arrêt devant cette variable, ce qui te permettra de la vérifier (F8 pour passer à la ligne suivante)
Un peu comme dans cet exemple semblable au tien et qui fonctionne
Public Sub OK() Dim f As String, nomfeuille As String, plage1 As String, plage2 As String nomfeuille = "Feuil2" plage1 = "A2:A11" plage2 = "B2:B11" f = "=" f = f & "SOMME(" & nomfeuille & "!" & plage1 & ")" f = f & "+SOMME(" & nomfeuille & "!" & plage2 & ")" Sheets("feuil1").Range("A2").FormulaLocal = f End Sub
Cdlmnt
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, je pense qu'il suffit de remplacer (deux fois) Range(Var) par Var, tout simplement.
exemple:
exemple:
Option Explicit Sub mkcs() Dim DLig As Long Dim Var As String Dim formule As String ' Trouver la dernière ligne du tableau DLig = Range("A" & Rows.Count).End(xlUp).Row ' Définition de la variable qui représente le nom de l'onglet créé présent en dernière cellule de la colonne Q Var = Range("Q" & DLig + 1).Value ' Somme à partir de l'onglet créé dans la dernière cellule de la colonne D formule = "=SUM(" & Var & "!P$22:P$50)+SUM(" & Var & "!AC$22:AC$50)" Range("D" & DLig + 1).Formula = formule End Sub