IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Insertion de formule dans Excel


Sujet :

VBScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Insertion de formule dans Excel
    Bonsoir,
    J'ai un fichier Excel généré par un script d'extraction d'info de l'AD avec les colonnes : Site AD, Login utilisateur, Nb jours depuis chgt MdP, Avance ou Standard, Restriction sur les postes, Etat du compte et Anomalie.
    Je veux renseigner automatiquement la colonne Anomalie par une formule qui détecte par un "X", par exemple l'anomalie : Nb jours depuis chgt MdP (col C) > 120 jours avec la formule =SI(Cx>120;"X";"").

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Dim objXL
    strChemin=Left(WScript.ScriptFullName,Len(WScript.ScriptFullName) - Len(WScript.ScriptName))
    strFichier="list.xls"
    strFormuleAnomalie="=SI(C*NL*>120;""X"";"""")"
    Anomalie
     
    Function IntOuvrirFichierEnEcriture(strFichier)
    	Dim intCurs
    	Set objXL = CreateObject("Excel.Application")
    	objXL.Workbooks.Open strFichier,0,0
    	objXL.Visible = True
    	objXL.screenupdating=True
    	intCurs=1
    	Do While objXL.Cells(intCurs,1)<>""
    		intCurs=intCurs+1
    	Loop
    	IntOuvrirFichierEnEcriture=intCurs
    End Function
     
    Sub Anomalie
    	For i=2 To IntOuvrirFichierEnEcriture(strChemin&strFichier)-1
    		Cellule i,7,Replace(strFormuleAnomalie,"*NL*",i)
    	Next
    End Sub
     
    Sub Cellule(NL,NC,chaine)
    	objXL.Cells(NL,NC).Value = Chaine
    End Sub
     
    Sub FermerFichierXLCourant
    	objXL.ActiveWorkbook.Save
    	objXL.ActiveWorkbook.Close True
    	objXL.Quit
    End Sub
    Le PB : si la colonne "Anomalie" est au format "Standard" rien ne s'affiche. Si les cellules sont au format "Texte" la formule s'affiche mais pas son résultat, même si l'option Affichage\Formule est décoché.
    Sur chaque cellule si je repasse par F2 + Entrée, la formule est recalculée et le résultat s'affiche.
    Comment faire automatiquement par VBS ?

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    ta fonction cellule modifie la propriété valeur de ta cellule ... pas sa propriété formula ..!


  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Bonne piste
    Merci beaucoup
    Après un essai avec un enregistrement de macro dans Excel j'ai réussi à trouver la nouvelle formule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Anomalie
    	For i=2 To IntOuvrirFichierEnEcriture(strChemin&strFichier)-1
    		Formule i,7,Replace(strFormuleAnomalie,"*NL*",i)
    	Next
    End Sub
     
    Sub Formule(NL,NC,chaine)
        objXL.Cells(NL,NC).FormulaR1C1 = "=IF(RC[-4]>120,""X"","""")"
    End Sub
    OK et ça marche.
    En complément, as-tu une description de ces différentes propriétés : Formula, FormulaArray, FormulaHidden, FormulaLocal, FormulaR1C1 et FormulaR1C1Local ?

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par PIALOU Voir le message
    ...

    OK et ça marche.
    En complément, as-tu une description de ces différentes propriétés : Formula, FormulaArray, FormulaHidden, FormulaLocal, FormulaR1C1 et FormulaR1C1Local ?


    ou Pourquoi autant de propriétés "Formula" différentes ?


  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Il m'a fallu ton aide pour creuser un peu plus car avec des cellules au foramt text comme j'avais ça ne marchait pas super. C'est pourquoi j'ai ajouté le passage au format Standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Anomalie
    	For i=2 To IntOuvrirFichierEnEcriture(strChemin&strFichier)-1
    		FormuleAnomalie i,7
    	Next
    End Sub
     
    Sub FormuleAnomalie(NL,NC)
    	objXL.Cells(NL,NC).Select
    	objXL.Selection.NumberFormat = "General"
        objXL.Cells(NL,NC).FormulaR1C1 = "=IF(RC[-4]>120,""X"","""")"
    End Sub
    Merci pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. erreur lors d'insertion de formule dans excel
    Par Tierisa dans le forum VBA Access
    Réponses: 2
    Dernier message: 14/09/2011, 08h46
  2. [Excel] Insertion de formule dans ma feuille par macro (erreur400)
    Par EvaristeGaloisBis dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2007, 10h27
  3. formule dans Excel
    Par magictom42 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/10/2006, 14h00
  4. [VBA-E] insertion de formule dans cellule
    Par jeff37 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 31/05/2006, 13h53
  5. PRoblème de formule dans Excel
    Par jbidou88 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 11/05/2006, 09h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo