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 :

Problème avec Range.Formula


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Problème avec Range.Formula
    Bonjour,
    J'aimerais savoir comment on peut mettre une formule dans une cellule via VBA.
    Je m'explique : j'ai besoin d'additionner toutes les cellules D4 qui se trouvent dans toutes les feuilles (sauf une) dans le meme workbook.

    Voici ce que j'ai fait :

    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
     Dim I As Integer
     I = Worksheets.Count
     Dim Chaine As String
     Chaine = ""
     For J = 1 To I
        If (Worksheets(J).Name <> "Conso") Then
            If J <> 1 Then
                Chaine = Chaine & ";"
            End If
            Chaine = Chaine & "'" & Worksheets(J).Name & "'" & "!D4"
        End If
     Next
     MsgBox Chaine
     ' La formule suivante me retourne une erreur
     Sheets("Conso").Range("C3").Formula = "=sum(" + Chaine + ")"
    J'ai une erreur : objet 1004 : Erreur définie par l'application ou par l'objet.

    J'ai essayé de remplacer le ";" par le "," mais ça ne marche pas non plus.

    Avez vous une idée ?

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut
    en remplacant les + par des &

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    bah ça marche pas non plus, j'ai toujours la même erreur

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    258
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 258
    Points : 306
    Points
    306
    Par défaut
    j'ai trituré ton code et ca marche comme ca.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    For J = 1 To I
        If (Worksheets(J).Name <> "Conso") Then
            If J <> 1 Then
                Chaine = Chaine & ","
            End If
        Chaine = Chaine & "'" & Worksheets(J).Name & "'" & "!D4"
        End If
    Next
     
    Chaine = "sum(" & Chaine & ")"
    ' MsgBox Chaine
    ' La formule suivante me retourne une erreur
    Worksheets("Conso").Cells(3, 3).Formula = "=" & Chaine
    J'ai donc remplacé le Range C3 par cells(3,3)

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Donne nous la formule telle que tu la mettrais manuellement dans ta cellule. Ainsi on ignore ce que tu as dans "chaine" au départ, ensuite tu insères une formule avec formula (pas de pb si tu n'as pas d'erreur...) mais regarde formulaLocal et FormulaR1C1 dans l'aide... si ça peut te donner des idées.
    Ceci dit, je ne pense pas que les guillemets soient nécessaires (à vérifier)

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    alors ce que je souhaite mettre dans la cellule c'est juste : = SOMME('Feuil1'!D4;'Feuil2'!D4;'Feuil2'!D4;'Feuil2'!D4)

    sinon, j'ai testé avec FormulaLocal et ça marche ! Je ne comprend pas vraiment pourquoi ça marche pas avec Formula, l'aide sur Excel n'est pas très claire là-dessus je trouve

    merci beaucoup

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

Discussions similaires

  1. Petit problème avec Range et Cells
    Par fdegrave dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/03/2013, 18h08
  2. Problème avec Range.AdvancedFilter, méthode
    Par Sogestion dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/11/2012, 16h57
  3. [XL-2003] Problème avec Range
    Par andy38 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/06/2009, 23h10
  4. [XL-2003] problème avec range
    Par Godzestla dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/04/2009, 13h29
  5. Réponses: 3
    Dernier message: 30/07/2008, 10h21

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