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 :

Probleme de formulation [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut Probleme de formulation
    Bonjour cher forum développez.
    J'aurai s'il vous plait besoin d'un coup de main.
    Je ne comprend pas pourquoi cette formule ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Sheets("Synthèse").Range("B17")
         .Range("B17").formula = "=Sheets!EDF.Range("$A$" & Tot.Row)"& "- Sheets!Base.Range("D7")"
         .Font.Bold = True
        End With
    Je souhaite effectuer la différence entre la cellule "A" & Tot.Row et la cellule D7. Or ça Bug
    Merci pour l'aide

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    tu peux commencer a essayer ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Sheets("Synthèse").Range("B17")
         .formula = "=Sheets!EDF.Range("$A$" & Tot.Row)"& "- Sheets!Base.Range("D7")"
         .Font.Bold = True
        End With
    en gros la fonction with permet de ne pas recopier la meme chose. en gros toi tu lui disais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Synthèse").Range("B17").Range("B17").formula
    Pour la suite du code

    peux tu décrire ce que tu veux dire avec Tot.row? je ne vois pas ce que ca peut etre ^^

  3. #3
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonojur,


    Essaie avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        With Sheets("Synthèse").Range("B17")
            .Formula = "=EDF!$A$" & Range("Tot").Row & "- Base!D7"
            .Font.Bold = True
        End With
    Cordialement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    Merci à tout les deux mais aucune ne fonctionne.
    Dans la réponse de redstoff j'ai la même erreur que dans ma formule me disant que les $ autour du A sont des erreurs ?????????????

    et danns le cas de gFZT82 ça m'affiche le message suivant aprés exécution : Erreur 1004
    La méthode 'Range' de l'objet'_Global' a échoué.

    je ne pige rien

  5. #5
    Membre éclairé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2010
    Messages
    240
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2010
    Messages : 240
    Par défaut
    explique moi ce que veut dire tot.row et je t'aide apres

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Re,

    En supposant que Tot est un nom qui fait référence à une cellule de la feuille Synthèse (à adapter).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
    Dim Ws As Worksheet
        Set Ws = Worksheets("Synthèse")
            Ws.Range("B17").Formula = "=EDF!$A$" & Ws.Range("Tot").Row & "- Base!D7"
            Ws.Range("B17").Font.Bold = True
    End Sub
    Cordialement.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    En fait "A" & tot.row est une cellule de la page EDF.
    Elles se nomme comme cela car elle est variable. J'ai un tableau ou se rajoutte des lignes au fur et à mesure de mes saisis. Elle fait le total des cellules juste au dessus et donc à chaque insertion elle se décale d'une case vers le bas. Je souhaite la rappeler dans un tableau synthése sur feuille Synthèse et faire l'oppération décrite dans ma formule.
    Merci

  8. #8
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Mouais ! tu ne réponds pas à la question qui est de savoir ce qu’est « Tot ».
    S’il s’agit d’un nom, tu dois voir à quelle feuille et cellule il fait référence.
    En cliquant dans Formules/ Gestionnaire de noms, tu dois voir le nom « Tot » qui fait référence par exemple à EDF!$E$10.

    Worksheets("EDF").Range("Tot").Row retourne le numéro de ligne, soit 10.
    et "EDF!$A$" & Ws.Range("Tot").Row retourne "EDF!$A$10".

    Donc, en supposant que Tot est un nom qui fait référence à une cellule de la feuille EDF, le code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Test()
    Dim Ws1 As Worksheet
    Dim Ws2 As Worksheet
        Set Ws1 = Worksheets("Synthèse")
        Set Ws2 = Worksheets("EDF")
            Ws1.Range("B17").Formula = "=EDF!$A$" & Ws2.Range("Tot").Row & "- Base!D7"
            Ws1.Range("B17").Font.Bold = True
    End Sub
    Cordialement.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    Je me suis peut etre mal exprimé.
    Tot et définicomme suit dans mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Tot = .Range("b11:b" & ligne).Find("TOTAL")
    Je cherche la case ou il y a total et j'insere une ligne au dessus.
    C'est pour ça que j'ai dit que cette cellule est variable.

    Merci
    je vais essayé ton code

  10. #10
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    D'accord ! donc Tot est une variable range.

    Le code devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Test()
        With Worksheets("Synthèse").Range("B17")
            .Formula = "=EDF!$A$" & Tot.Row & "- Base!D7"
            .Font.Bold = True
        End With
    End Sub
    Cordialement.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 93
    Par défaut
    Salut !
    merci gFZT82 . Trop fort
    D'ou l'importance de bien formuler ça demande ( je me tape sur les doigts ça m'apprendra)

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

Discussions similaires

  1. probleme insertion formule dans cellule via vba
    Par moxo01 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 20/06/2008, 12h06
  2. Probleme avec formule Excel
    Par Eh_manu dans le forum Excel
    Réponses: 3
    Dernier message: 01/06/2006, 15h34
  3. Probleme de formulation de requête
    Par nemesys971 dans le forum Access
    Réponses: 2
    Dernier message: 19/12/2005, 12h46
  4. probleme de formule
    Par bratiskro dans le forum Access
    Réponses: 6
    Dernier message: 14/09/2005, 22h55

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