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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [vba excel]generer formule par macro

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[vba excel]generer formule par macro

n°1272815
bill751
Posté le 24-12-2005 à 09:23:13  profilanswer
 

bonjour je fais du VBA avec excel.
Dans mon classeur j ai feuille1 à feuille5 appelées f1 à f5
je veux générer par macro une formule que j insere en D5 de la feuillef5;
la formule doit etre :
si somme des D5 de f1 à f4 est non nulle, alors formule D5 = somme des D5 de f1 à f4  
si somme des D5 de f1 à f4 est       nulle, alors formule D5 = " "
 
(en fait je veux rien afficher si resultat est nul)
 
quelle est la sequence d instructions à ecrire pour valoriser d5 de f5 correctement ?

mood
Publicité
Posté le 24-12-2005 à 09:23:13  profilanswer
 

n°1273094
pifa
Bonjour à tous et toutes
Posté le 25-12-2005 à 08:31:16  profilanswer
 

Bonjour bill751
 
Ceci a placer dans un module, le code pourrait être plus propre, il y a une gestion d'erreur de saisie:
 
Sub sommeD5()
Dim D5F1 As Double, D5F2 As Double, D5F3 As Double
Dim D5F4 As Double, D5F5 As Double
Dim LaSomme As Double
 
' pour gérer l'erreur de saisie
Err = 0
On Error Resume Next
 
D5F1 = Sheets("f1" ).Range("D5" )
D5F2 = Sheets("f2" ).Range("D5" )
D5F3 = Sheets("f3" ).Range("D5" )
D5F4 = Sheets("f4" ).Range("D5" )
D5F5 = Sheets("f5" ).Range("D5" )
Debug.Print Err
 
' test si toutes les valeurs sont numériques
If Err = 0 Then
    LaSomme = D5F1 + D5F2 + D5F3 + D5F4 + D5F5
    If LaSomme <> 0 Then
        Sheets("f5" ).Range("D5" ) = LaSomme
    Else
        D5F5 = ""
    End If
Else
    MsgBox ("Attention une valeur, au moins, n'est pas numérique ! " )
End If
End Sub
 
Cordialement Pifa


Message édité par pifa le 25-12-2005 à 08:32:14
n°1273160
bill751
Posté le 25-12-2005 à 17:45:30  profilanswer
 

merci; mais j ai bien dit que je souhaite que la cellule soit valorisée par une formule du type =si(somme<>0;gna gna gna;"" ) pour rester dynamique

n°1273218
pifa
Bonjour à tous et toutes
Posté le 26-12-2005 à 06:53:58  profilanswer
 


Bonjour
 
Avec ceci en cellule D5 de la feuille f5:
 
=SI('f1'!D5+'f2'!D5+'f3'!D5+'f4'!D5<>0;'f1'!D5+'f2'!D5+'f3'!D5+'f4'!D5;"" ), mais la réponse n'était-elle pas déjà presque complète dans la question ?
 
Cordialement
 
Pifa

n°1273908
bill751
Posté le 27-12-2005 à 22:37:12  profilanswer
 

merci.disons aussi que mon  ombre de pages est variable et que je dois créer une formule pour plusieurs cellule.J y arrive maintenant, mais tant que je n ai pas cliqué dans la cellulé et appuyé sur la touche ENTREE le contenu de la cellule est à #NOM?
après avoir cliqué dans la cellule et sur la touche ENTREE tout rentre dans l ordre ...
 
 
Un exemple de formule que je génère ainsi :
=SI(SOMME(BILL:REDON!I10)<>0;SOMME(BILL:REDON!I10);"" )
 
 
en utilisant le code suivant :
 
 
Windows(nomfichierMENU).Activate
Dim PlageTaches As Object
Set PlageTaches = Worksheets("BaseTaches" ).Cells(1, 1).CurrentRegion
Dim PlageMois As Object
Set PlageMois = Worksheets("BaseMois" ).Cells(1, 1).CurrentRegion
Windows(nomfichierINDIVIDU).Activate
 
For i = 1 To PlageRessources.Rows.Count + 1
    For imois = 1 To PlageMois.Rows.Count
        formule = "SUM('" + TacheDebut + ":" + TachefIn + "'!RC)"
        formuleSi = "=SI(" + formule + "<>0," + formule + ","""" )"
        Cells(numligjoursMOIS + i, numcoldebutmois + imois - 1).FormulaR1C1 = formuleSi
    Next imois
Next i
For imois = 1 To PlageMois.Rows.Count
        formule = "SUM('" + TacheDebut + ":" + TachefIn + "'!RC)"
        formuleSi = "=SI(" + formule + "<>0," + formule + ","""" )"
        Cells(numLigCUMPREV, numcoldebutmois + imois - 1).FormulaR1C1 = formuleSi
Next imois

n°1274785
bill751
Posté le 30-12-2005 à 02:51:23  profilanswer
 

on m a donné la solution : remplacer mes SI par des IF et là c est tout bon !!


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

  [vba excel]generer formule par macro

 

Sujets relatifs
Instruction VBA ExcelMacro API excel
Besoin d'aide VBA ExcelTri automatique sous Excel
Demande d'aide pour un USF VBA Excel[VBA Excel] Macro excel en batch?
Comment générer des dates compatibles SOAP[VBA Excel] Comment créer un degradé de couleurs dans des cellules?
Plus de sujets relatifs à : [vba excel]generer formule par macro


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