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

Macros et VBA Excel Discussion :

ExecuteExcel4Macro avec un somme.si


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut ExecuteExcel4Macro avec un somme.si
    Bonjour,

    j'essaie de faire fonctionner un somme.si avec la fonction ExecuteExcel4Macro mais j'ai une erreur "La methode ... de l'objet global à echoué", est -il possible qu'il ne puisse récupérer que des valeurs et non faire un calcul (somme, somme.si ... etc) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    MyFormula = ThisWorkbook.Worksheets("Feuil1").Range("A3").Formula
    MyLink = "O:\tatata"
    Mywb = "ST - TradingBook.xlsm"
    MySheet = "Trading08_09l"
    ThisWorkbook.Worksheets("Feuil1").Range("A4").Formula = ExtractCellRefs(MyFormula, MyLink, Mywb, MySheet)
    MyFormula = Right(ThisWorkbook.Worksheets("Feuil1").Range("A4").FormulaR1C1, Len(ThisWorkbook.Worksheets("Feuil1").Range("A4").FormulaR1C1) - 1)
    ThisWorkbook.Worksheets("Feuil1").Range("A4").Formula = MyFormula
    MyFormula = Replace(MyFormula, "'", "''")
     
     
    MyRes = ExecuteExcel4Macro(MyFormula)

    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
    'Remplage une plage par son lien absolu
    Function ExtractCellRefs(ByVal MyFormula As String, ByVal MyBaseLink As String, ByVal Mywb As String, ByVal MySheet As String) As String
        Dim i As Byte, Results As Object
        Dim MyLink As String, regexpattern As String
     
        'Pattern
        regexpattern = "('?[a-zA-Z0-9\s\[\]\.]{1,99})?'?!?\$?[A-Z]{1,3}\$?[0-9]{1,7}(:\$?[A-Z]{1,3}\$?[0-9]{1,7})?"
     
        'MyLink
        Mywb = Replace(Mywb, "'", "''")
        MySheet = Replace(MySheet, "'", "''")
        MyLink = "'" & MyLink & "[" & Mywb & "]" & MySheet & "'!"
     
        With CreateObject("vbscript.regexp")
            .Global = True: .MultiLine = True: .IgnoreCase = False: .Pattern = regexpattern
            Set Results = .Execute(MyFormula)
            If Results.Count <> 0 Then
            For i = 0 To Results.Count - 1
               MyFormula = Replace(MyFormula, Results.Item(i).Value, MyLink & Results.Item(i).Value)
            Next i
        End If
        End With
        ExtractCellRefs = MyFormula
    End Function
    Cordialement,

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par tamtam64 Voir le message
    j'essaie de faire fonctionner un somme.si avec la fonction ExecuteExcel4Macro
    Lis ceci :
    https://msdn.microsoft.com/library/0...ice.15%29.aspx
    As-tu toujours l'impression que ça permet de faire un somme.si.

    Essaye plutôt ça :
    https://msdn.microsoft.com/library/f...ice.15%29.aspx
    ou ça :
    https://msdn.microsoft.com/library/0...ice.15%29.aspx

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    Bonjour,

    En fait je vais préciser ma demande, mais je veux l'utiliser pour faire un calcul dans un classeur fermé.

    donc la premiere solution n'est pas possible. la deuxieme je vais regarder de plus pres même si je connais un peu evaluate, je ne suis pas sur que ca puisse fonctionner .
    Cordialement,

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Comme je l'ai déjà dit, on ne peut pas lire ni écrire de données (et encore moins calculer) dans un fichier fermé.

Discussions similaires

  1. [Cours pt-02][Débutants]Requête avec plusieurs sommes
    Par Papy Turbo dans le forum Sondages et Débats
    Réponses: 18
    Dernier message: 29/10/2007, 18h55
  2. requête avec la somme d'une colonne et un GROUP BY
    Par xenos dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/09/2007, 14h03
  3. BO - Rapport très simple avec une Somme
    Par claclapub dans le forum Deski
    Réponses: 12
    Dernier message: 18/07/2007, 13h49
  4. [Oracle] jointures avec une somme sur deux champs
    Par guggus dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/10/2006, 17h06
  5. Réponses: 2
    Dernier message: 09/01/2006, 16h10

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