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 d'automatisation d'une formule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Par défaut Problème d'automatisation d'une formule
    Bonjour,
    je dois me servir d'une formule qui est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        ActiveCell.FormulaR1C1 = _
            "='Récap_2ème trimestre 2008'!R[72]C[31]+'Récap_1er trimestre'!R[77]C[31]+'Récap_4ème trimestre'!R[85]C[28]+'Récap_1er et 2ème trimestre'!R[89]C[46]"
    Comme vous pouvez constater elle fait appel à différentes feuilles et le problème c'est que au fil du temps ces feuilles changent de nom et de place mais les positions entre elles par rapport à la dernière feuille du fichier sont identique donc j'ai créé ce code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dim FL1, FL2, FL3, FL4 As Sheets
    
        Sheets("Récap_graph_trimestre").Select
        
        FL1 = Sheets.Count - 5
        FL2 = Sheets.Count - 8
        FL3 = Sheets.Count - 11
        FL5 = Sheets.Count - 14
    
        Range("I14").Select
        ActiveCell.FormulaR1C1 = _
            "='Activeworkbook.FL1.name'!R[72]C[31]+'Activeworkbook.FL2.name'!R[77]C[31]+'Activeworkbook.FL3.name'!R[85]C[28]+'Activeworkbook.FL5.name'!R[89]C[46]"
    Les lignes en bleu me permettent de récupérer la position des feuilles que je dois utiliser ds la formule.
    Le code ne marche pas il me met un message d'erreur : fichier non trouvé!
    Est ce que quelqu'un peut m'aider?
    Merci d'avance.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    bonjour,


    tu doit mettre des guillemets et des &
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            "=' " & Activeworkbook.FL1.name & "'!R[72]C[31]

  3. #3
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Tout d'abord lorsqu'on déclare des variables, chaque variable doit être typée sinon elle prend le type Variant par défaut.
    Ci-dessus seul c sera de type Byte, a et b seront de type Variant, la bonne syntaxe est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim a As Byte, b As Byte, c As Byte
    Ensuite, déclarer une variable de type "Feuille" s'écrit
    Pour initialiser cette variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set FL1 = Sheets.Count - 5
    Et pour intégrer cette variable dans une formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A14").FormulaR1C1 = "=" & FL1.Name & "!R[72]C[31]"
    Ce qui devrait donner pour ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim FL1 As Worksheet, FL2 As Worksheet, FL3 As Worksheet, FL5 As Worksheet 
        Set FL1 = Sheets(Sheets.Count - 5)
        Set FL2 = Sheets(Sheets.Count - 8)
        Set FL3 = Sheets(Sheets.Count - 11)
        Set FL5 = Sheets(Sheets.Count - 14)     
       Sheets("Récap_graph_trimestre").Range("I14").FormulaR1C1 = _
        "=" & FL1.Name & "!R[72]C[31]+" & FL2.Name & "!R[77]C[31]+" & FL3.Name & "!R[85]C[28]+" & FL5.Name & "!R[89]C[46]"

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

Discussions similaires

  1. [CR 8.5] Problème EXPERT SELECTION sur une formule
    Par ALINE85 dans le forum Formules
    Réponses: 2
    Dernier message: 14/02/2008, 14h02
  2. Problème de dimension dans une formule
    Par Vassili68 dans le forum MATLAB
    Réponses: 10
    Dernier message: 07/11/2007, 21h37
  3. Problème d'affichage d'une formule dans une cellule excel
    Par casho dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/07/2007, 17h58
  4. Réponses: 6
    Dernier message: 20/06/2006, 14h49
  5. problème de guillemets dans une formule shell
    Par dim_italia dans le forum VBA Access
    Réponses: 7
    Dernier message: 18/08/2003, 12h46

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