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

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 71
    Points
    71
    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
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Points : 133
    Points
    133
    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 éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    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]"
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    Alors j'ai fait un copié collé de ce que tu m'as donné.
    La même ligne pose toujours problème mais cette fois-ci c'est pas la même erreur: 1004: erreur définie par l'application ou par l'objet.

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Pourtant cette fois ci...j'ai testé le code et il fonctionne. Je ne peux pas te dire comme ça d'où provient l'erreur sans avoir le fichier sous les yeux.
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    Malheureusement je peux pas te passer le fichier car je travaille sur des données confidentielles alors......c'est bizarre quand même cette erreur alors si chez toi ça marche.

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Voilà un fichier avec la même procédure

    Pièce jointe 35614

    .
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    Merci fring. J'ai réglé le souci.
    Merci beaucoup.

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

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Quel était le problème ? Ca pourrait servir à d'autres de savoir que ceci ou cela provoque cette erreur.
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 130
    Points : 71
    Points
    71
    Par défaut
    En fait il manquait les apostrophes qui doivent encadrer la feuille. Je les mets en bleu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Sheets("Récap_graph_trimestre").Range("I14").Select
        
        ActiveCell.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]"
    Et là comme ça ça marche chez moi. Mais encore merci fring car tu m'as bien aidé.
    Merci.

+ 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