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 :

[VBA] Comment faire une formule avec une variable ? [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut [VBA] Comment faire une formule avec une variable ?
    Bonjour,

    Apres moultes recheres, je refais appelle à vous

    Mon pb :
    Je veux affecter à une cellule, une formule qui a pour entrée la case d'à coté... pour chaque ligne l... c'est sur ce dernier point que cela bug...

    Le code reprenant juste l'interessant (Tout est declaré (Sh2, Sh1...) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For j = 7 To LetzteLinie
    With Sh1
    .Range(.Cells(j, 4), .Cells(j, 4)).Copy Sh2.Range(Sh2.Cells(l, 3), Sh2.Cells(l, 3))
    Sh2.Cells(l, 2).FormulaR1C1 = "=TEXT("Cells(l, 3)",""ttt"")"
    End With
    Next
    j'ai aussi testé, sans resultat....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh2.Cells(l, 2).FormulaR1C1 = "=TEXT(C"l"),""ttt"")"
    Thks

  2. #2
    Membre actif
    Inscrit en
    Mai 2006
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 140
    Points : 233
    Points
    233
    Par défaut
    Est-ce que tu peux essayer ce code ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sh2.Cells(l, 2).FormulaR1C1 = "=TEXT(" & Cells(l, 3).Value & ",""ttt"")"
    Tu vas bien récupérer la valeur de ta cellule.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Je reviens sur ce que j'ai dit, ca ne marche po ./
    J'obiens dans mes cellules du
    =TEXT(;"ttt")

    Je regarde aussi ca. ca doit etre avec le with qu'il n'aime pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    For j = 7 To LetzteLinie
        With Sh1                    
                        .Range(.Cells(j, 4), .Cells(j, 4)).Copy Sh2.Range(Sh2.Cells(l, 3), Sh2.Cells(l, 3))
                        Sh2.Cells(l, 2).FormulaR1C1 = "=TEXT(" & Cells(l, 3).Value & ",""ttt"")"
                        .Range(.Cells(j, 15), .Cells(j, 15)).Copy Sh2.Range(Sh2.Cells(l, 4), Sh2.Cells(l, 4))
        End With
    Next
    J'ai essayé de lui donner un adressage plus complet de mon entrée variable mais sans succes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh2.Cells(l, 2).FormulaR1C1 = "=TEXT(" & Sh2.Cells(l, 3).Value & ",""ttt"")"

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 796
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 796
    Points : 28 679
    Points
    28 679
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Mon pb :
    Je veux affecter à une cellule, une formule qui a pour entrée la case d'à coté... pour chaque ligne l... c'est sur ce dernier point que cela bug...
    Tu écris que cela bug mais encore ?
    N'ayant pas de boule de cristal, nous indiquer le N° et message d'erreur et à quelle ligne cela se passe ne serait pas du luxe.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    1004

    erreur de definition d'objet ou d'application

  6. #6
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sh2.Cells(l, 2).FormulaR1C1 = "=TEXT(RC[1],""mmm"")"
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci, ca marche.
    Cependant, puis je avoir une explication, comprendre m'interesse plus ^^

  8. #8
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Tu utilises FormulaR1C1 qui prend en compte les adresses relatives

    RC[1] veut dire la cellule sur la même ligne R et une colonne à droite par rapport à la cellule de référence (pour ton cas Sh2.Cells(l,2))

    plus généralement R[x]C[y] correspond à la cellule décalée de x lignes et de y colonnes relativement à une cellule de référence.

    x et y appartiennent à Z

    Quand ils sont >0 décalage en bas et vers la droite
    sinon décalage vers le haut et vers la gauche
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    thks tout devient clqir !

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. Réponses: 3
    Dernier message: 01/07/2009, 18h55
  5. Réponses: 2
    Dernier message: 13/02/2007, 17h40

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