VBA Formule dans une cellule
Résolu/Fermé
A voir également:
- VBA Formule dans une cellule
- Formule excel pour additionner plusieurs cellules - Guide
- Formule si et - Guide
- Aller à la ligne dans une cellule excel - Guide
- Verrouiller une cellule excel dans une formule - Guide
- Formule moyenne 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
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 juin 2008 à 15:52
11 juin 2008 à 15:52
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
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
>
Xixi
11 juin 2008 à 16:48
11 juin 2008 à 16:48
Si tu a un problème sur cette macro, montre ce que tu veux faire. (Met ta macro sur le poste suivant)
Xixi
>
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
11 juin 2008 à 17:07
11 juin 2008 à 17:07
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
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
>
Xixi
11 juin 2008 à 17:17
11 juin 2008 à 17:17
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.
onesdf
Messages postés
375
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
17 octobre 2008
120
>
Xixi
11 juin 2008 à 19:50
11 juin 2008 à 19:50
Je me permets de m'immicer dans la conversation et j'espère que lermite222 ne m'en tiendra pas rigueur :
est ce que ca correspond à ce que tu veux faire ?
est ce que ca correspond à ce que tu veux faire ?
For i = 1 To 10 Cells(i, 1).Formula = "=" & Cells(j, 3).Address & "*" & Cells(i, 2).Address j = j + 1 Next i
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 juin 2008 à 16:05
11 juin 2008 à 16:05
Pour ta 2ém question..
A+
Sheets("Feuil1").Copy After:=Workbooks("Classeur2").Sheets(3)
A+
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
12 juin 2008 à 07:55
12 juin 2008 à 07:55
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+