VBA Formule dans une cellule
Résolu
Xixi
-
Xixi -
Xixi -
Bonjour,
Je souhaite insérer une formule dans ma cellule.
En fait je souhaite faire C1=A1*B1 sauf que je ne veux pas de la valeur de A1 et B1 car dans ce cas C1 reste fixe.
Je veux que C1 se mette a jour si je modifie la valeur de A1 ou B1
Si je fais Range("C1").Value = "=A1*B1" ca fonctionne nickel
A1 = 3 B1 = 2 --> C1 = 6
Si je modifie A1 = 2 alors C1 = 4
Je veux faire cela mais je ne connais pas mes cellules A1 et B1 elles sont définis dans des boucles etc etc, il me faudrait donc plutot quelque chose du genre :
Range("C13").Value = "=" & Range("A1") & "*" & Range("B1")
ou
Cells(1,3).Value = "=" & Cells(1, 1) & "*" & Cells(1, 2)
La je suis capable d'intégrer mes coordonnées dans les range ou les cells.
Mais ces formules ne fonctionnent pas. Je lance ma macro la valeur se met, mais si je modifie le contenu de A1 ou B1 alors ma cellule résultat ne se met pas à jour.
Merci de votre aide
Je souhaite insérer une formule dans ma cellule.
En fait je souhaite faire C1=A1*B1 sauf que je ne veux pas de la valeur de A1 et B1 car dans ce cas C1 reste fixe.
Je veux que C1 se mette a jour si je modifie la valeur de A1 ou B1
Si je fais Range("C1").Value = "=A1*B1" ca fonctionne nickel
A1 = 3 B1 = 2 --> C1 = 6
Si je modifie A1 = 2 alors C1 = 4
Je veux faire cela mais je ne connais pas mes cellules A1 et B1 elles sont définis dans des boucles etc etc, il me faudrait donc plutot quelque chose du genre :
Range("C13").Value = "=" & Range("A1") & "*" & Range("B1")
ou
Cells(1,3).Value = "=" & Cells(1, 1) & "*" & Cells(1, 2)
La je suis capable d'intégrer mes coordonnées dans les range ou les cells.
Mais ces formules ne fonctionnent pas. Je lance ma macro la valeur se met, mais si je modifie le contenu de A1 ou B1 alors ma cellule résultat ne se met pas à jour.
Merci de votre aide
A voir également:
- VBA Formule dans une cellule
- Formule si et - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller une cellule excel dans une formule - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Aller à la ligne dans une cellule excel - Guide
4 réponses
Question bonus ^^
Comment fait on pour copier un onglet d'un fichier vers un autre fichier?
Workbooks("Fichier1.xls").Sheets("MaFeuille").Select
Selection.Copy
Workbooks("Fichier2.xls").Sheets("MaFeuille2").Range("A1").PasteSpecial xlPasteValues
J'ai tenté ca mais le paste est KO et euhhh je sais pas trop il y a surement un moyen tout bete que je ne connai spas non?
Merciiiiii
Comment fait on pour copier un onglet d'un fichier vers un autre fichier?
Workbooks("Fichier1.xls").Sheets("MaFeuille").Select
Selection.Copy
Workbooks("Fichier2.xls").Sheets("MaFeuille2").Range("A1").PasteSpecial xlPasteValues
J'ai tenté ca mais le paste est KO et euhhh je sais pas trop il y a surement un moyen tout bete que je ne connai spas non?
Merciiiiii
Bonjour,
En tenant compte de ..
Si je fais Range("C1").Value = "=A1*B1" ca fonctionne nickel
Tu est sur le VBA
Si tu veux mettre une formule dans une cellule faut mettre...
Si je fais Range("C1").Formula = "=A1*B1"
ca dev arit fonctionner.
Je vois pour ton autre question
A+
En tenant compte de ..
Si je fais Range("C1").Value = "=A1*B1" ca fonctionne nickel
Tu est sur le VBA
Si tu veux mettre une formule dans une cellule faut mettre...
Si je fais Range("C1").Formula = "=A1*B1"
ca dev arit fonctionner.
Je vois pour ton autre question
A+
Mon problème ne vient pas vraiment de là lermite le problème est que dans ma boucle je ne sais pas mes coordonnées A1 et B1, ca varie.
Et si je met Range("C1").formula = "=" & Range("A1").value & "*" & Range("B1").value
ca marche lorsque je lance mon prog j'ai la bonne valeur dans C1 mais si je modifie manuellement A1 alors C1 ne se met pas a jour snif
Merci pour le copier coller de sheets
Et si je met Range("C1").formula = "=" & Range("A1").value & "*" & Range("B1").value
ca marche lorsque je lance mon prog j'ai la bonne valeur dans C1 mais si je modifie manuellement A1 alors C1 ne se met pas a jour snif
Merci pour le copier coller de sheets
Bah ce que je veux faire c'est plus dans ce style la
for i = 1 to 10
Cells(i,1).formula = "=" & Range(j,3).value & "*" & Cells(i,2).value
j = j + 1
next i
Mais le calcul doit se faire lorsqu'on lance la macro, et ensuite lorsqu'on change a l'arrache dans une feuille la valeur d'une cellule.
Exemple de ce que je veux faire:
C1 = 3
B1 = 2
Je lance ma macro
A1 = C1*B1 = 6
Je modifie manuellement dans ma feuille la valeur de C1 pour mettre 4
A1 doit prendre = 8
Je sais faire en mettant en dur le nom des cellules dans la formule et ca marche (ca met bien a jour si je modifie ds ma feuille une valeur)
Range("A1").Value = "=C1*B1"
Par contre je n'arrive pas a le faire en mettant des Cellules de ma boucle
for i = 1 to 10
Cells(i,1).formula = "=" & Range(j,3).value & "*" & Cells(i,2).value
j = j + 1
next i
Mais le calcul doit se faire lorsqu'on lance la macro, et ensuite lorsqu'on change a l'arrache dans une feuille la valeur d'une cellule.
Exemple de ce que je veux faire:
C1 = 3
B1 = 2
Je lance ma macro
A1 = C1*B1 = 6
Je modifie manuellement dans ma feuille la valeur de C1 pour mettre 4
A1 doit prendre = 8
Je sais faire en mettant en dur le nom des cellules dans la formule et ca marche (ca met bien a jour si je modifie ds ma feuille une valeur)
Range("A1").Value = "=C1*B1"
Par contre je n'arrive pas a le faire en mettant des Cellules de ma boucle
c'est pas possible ( a ma connaissance) de mettre des adresses relative dans les formules.
Tu doit faire un traitement par macro.
Et si tu veux lancer une macro qui fait ce que tu dit tu ne doit pas mettre une formule dans la cellule mais le résultat du calcul des cellules.
Explique un peu mieux ce que tu veux et ont se ferra un plaisir de t'aiguiller.
Tu doit faire un traitement par macro.
Et si tu veux lancer une macro qui fait ce que tu dit tu ne doit pas mettre une formule dans la cellule mais le résultat du calcul des cellules.
Explique un peu mieux ce que tu veux et ont se ferra un plaisir de t'aiguiller.
Une solution....
Tu colle cette macro dans un module standard
Dans C1 tu met =CalculCell()
exécution exemple :
dans A1 tu met 6
dans B1 tu met 8
C1 Affiche automatiquement 48
tu modifie A1 ou B1 la modif est immédiate...
Tu peu mettre cette formule dans n'importe quelle cellule C2..C3..C4 .. etc..
J'ai tester y a pas d'erreur.
A+
Tu colle cette macro dans un module standard
Function CalculCell() Dim Lig As Long Dim Col As Long Application.Volatile Lig = Application.Caller.Row Col = Application.Caller.Column CalculCell = Cells(Lig, Col - 1) * Cells(Lig, Col - 2) End Function
Dans C1 tu met =CalculCell()
exécution exemple :
dans A1 tu met 6
dans B1 tu met 8
C1 Affiche automatiquement 48
tu modifie A1 ou B1 la modif est immédiate...
Tu peu mettre cette formule dans n'importe quelle cellule C2..C3..C4 .. etc..
J'ai tester y a pas d'erreur.
A+