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 922
    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 922
    Points : 28 908
    Points
    28 908
    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.

  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"")"

  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

  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