Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
933 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] [Résolu] Comment récupérer la formule d'une cellule ??

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA] [Résolu] Comment récupérer la formule d'une cellule ??

n°1750062
youyou777
Posté le 23-06-2008 à 09:56:36  profilanswer
 

Bonjour à tous !!
 
J'aurai besoin de votre aide, je suis en train de créer une macro qui génère pas mal de calculs et je suis bloquée par quelque chose qui est peut etre tout bête...
 
Je vous explique, j'aimerai créer une formule du type : "=C6*$C$4+E6*$E$4+G6*$G$4+..."
 
En fait, j'ai commencé par faire ce programme, mais évidemment, il ne fonctionne pas...
 
    Sheets("Résult Aw1" ).Range(Cells(6, 5 + 2 * e - 2), Cells(6, 5 + 2 * e - 2)).Select
    ActiveCell.Formula = "=C6*$C$4"
    f = 1
    g = Worksheets("Résult Aw1" ).Range(Cells(6, 5 + 2 * e - 2), Cells(6, 5 + 2 * e - 2)).Value
  Do While f < e
    ActiveCell.Formula = "=E6*$E$4"
    h = Worksheets("Résult Aw1" ).Range(Cells(6, 5 + 2 * e - 2), Cells(6, 5 + 2 * e - 2)).Value
    g = g + h
    f = f + 1
  Loop
 
En fait, mon problème est que je n'arrive pas à récupérer la formule en elle même, je ne récupère que la valeur de la cellule... Et comme je débute en VBA, c'est pas facile et ce que je fais n'ai vraiment pas clair, désolée
 
Merci par avance pour votre aide.


Message édité par youyou777 le 23-06-2008 à 16:30:03
mood
Publicité
Posté le 23-06-2008 à 09:56:36  profilanswer
 

n°1750187
youyou777
Posté le 23-06-2008 à 13:20:10  profilanswer
 

Re bonjour,  
Je m'inquiète un peu, j'ai pas encore de réponse à ce message...
Je me dis que ce que je demande n'est peut etre pas assez clair ?? Ou alors c'est peut etre trop compliquer de procéder comme ça ??
Aidez moi svp... Dites moi au moins si vous comprenez ma requête ? lol
Merci !!

n°1750199
86vomito33
Posté le 23-06-2008 à 13:54:40  profilanswer
 

bonjour,
 
utilise
y=Range("A11" ).FormulaR1C1Local
pour recupere la formule
 
EDIT:
je tai fait une macro (dapres ce que jai compris) qui marche
 
http://cjoint.com/?gxoeY2U4kh


Message édité par 86vomito33 le 23-06-2008 à 14:05:48
n°1750211
youyou777
Posté le 23-06-2008 à 14:23:12  profilanswer
 

Bonjour !  
Merci beaucoup pour votre réponse, mais malheureusement, ça ne fonctionne pas, voilà ce qu'est devenu mon programme :
 
    e = 3
    Sheets("Résult Aw1" ).Cells(6, 5 + 2 * e - 2).Select
    ActiveCell.Formula = "=C6*$C$4"
    f = 1
    g = Range("I6" ).FormulaR1C1Local
  Do While f < e
    ActiveCell.Formula = "=E6*$E$4"
    h = Sheets("Résult Aw1" ).Cells(6, 5 + 2 * e - 2).FormulaR1C1Local
    g = g + h
    f = f + 1
  Loop
 
Le compilateur m'indique une imcompatibilité de type '13' pour la ligne g = Range("I6" ).FormulaR1C1Local, alors j'ai enlevé le "R1C1" mais toujours le meme problème...
Et je ne sais pas comment j'ai pu voir ça, mais la ligne g = g + h ne fonctionne pas non plus, j'ai remplacé par : "=SOMME(g;h)" mais aucun résultat...
 
Que doit-je faire ?

n°1750212
youyou777
Posté le 23-06-2008 à 14:24:57  profilanswer
 

Ah j'avais pas vu le fichier joint !!! Je vais tester ça tout de suite !! Merci !

n°1750255
86vomito33
Posté le 23-06-2008 à 15:46:01  profilanswer
 

alors c ce que tu veux ou pas du tout ?! :)
 

n°1750258
youyou777
Posté le 23-06-2008 à 15:48:37  profilanswer
 

ça y est, j'ai réussi à récupérer la formule que je voulais !
Mais je me suis mal exprimée dans ma requête je crois, désolée...  
En fait, je ne veux pas faire de somme de formule qui sont déjà dans des cellules, je veux faire une somme de multiplication, et faire varier les colonnes, pour etre plus clair, voici mon programme corrigé :
 
Dim g As String
Dim h As String
    e = 3
    Sheets("Résult Aw1" ).Cells(6, 5 + 2 * e - 2).Select
    ActiveCell.Formula = "=C6*$C$4"
    f = 1
    g = Mid(Cells(6, 5 + 2 * e - 2).FormulaLocal, 2, Len(Cells(6, 5 + 2 * e - 2).FormulaLocal))
  Do While f < e
    ActiveCell.Formula = "=E6*$E$4"
    g = g + "+" + Mid(Cells(6, 5 + 2 * e - 2).FormulaLocal, 2, Len(Cells(6, 5 + 2 * e - 2).FormulaLocal))
    f = f + 1
  Loop
    Sheets("Résult Aw1" ).Cells(6, 5 + 2 * e - 2).FormulaArray = "=" + g
     
En fait, dans la ligne : ActiveCell.Formula = "=E6*$E$4"
je voudrais changer, à chaque incrémentation, le "E" en "G", puis en "I"...  
J'ai essayé : ActiveCell.Formula = "=Range(Cells(6, 5 + 2 * f - 2),Cells(6, 5 + 2 * f - 2)*Range(Cells(4, 5 + 2 * f - 2),Cells(4, 5 + 2 * f - 2))"  Mais ça me génère une erreur d'exécution '1004'...
J'ai essayé avec des ".Value", idem...
Avez vous une solution ??
Merci par avance.

n°1750266
86vomito33
Posté le 23-06-2008 à 16:11:42  profilanswer
 

ok regarde la fomnction chr
tu mets ta variable ds chr
exemple chr (65) renvoie A chr(66)revoie B etc...
 
si tu veux E6*$E$4
avec chr(i) avec i=69, il faut mettre chr(i)+"6$"+chr(i)+"$4"
 
pas tres clair tt ca


Message édité par 86vomito33 le 23-06-2008 à 16:19:14
n°1750272
youyou777
Posté le 23-06-2008 à 16:22:49  profilanswer
 

Magnifique !!! ça fonctionne trop bien, merci de m'avoir aidé autant, ça faisait 2 jours que je bloquait sur cette macro, et merci pour la fonction chr(), parceque j'ai failli recréer un tableau de correspondance entre les chiffres et les lettres lol !!

n°1750276
86vomito33
Posté le 23-06-2008 à 16:27:23  profilanswer
 

tres bien alors
tu plus qua mettre [resolu] en editant ton premier message


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA] [Résolu] Comment récupérer la formule d'une cellule ??

 

Sujets relatifs
Parcourir des dossiers et sous-dossiers en VBAVBA Excel Supprimer des lignesl
[hibernate][RESOLU]insertion, update OK, lecture avec requete HQL KOVBA : remplacer tous les 0 d'une feuille excel
Formule trop longue - solutions ?[resolu] probleme eregi()
Récupérer la valeur de IDENTITY avant insertion[Résolu] Requete Access
[RESOLU] Pb pour passer des arguments de ligne de commande(finalement pas résolu) Fonction de listage
Plus de sujets relatifs à : [VBA] [Résolu] Comment récupérer la formule d'une cellule ??


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR