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 :

Faire référence à une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Par défaut Faire référence à une cellule
    Bonjour à tous,

    je viens vers vous car je n'arrive pas à faire référence à une cellule, donc si vous pouviez me donner la fonction ça serait pas mal!

    -> Je sais comment recopier une valeur dans une cellule, admettons:

    A1: 2

    J'ai envie de reporter cette valeur en A2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A2").value=Range("A1").value
    Seulement ça me met que "2" en A2, j'aimerai qu'il y ait: A2=A1, comme ça si je modifie A1, A2 se modifie directement aussi!

    -> Pour trouver la bonne "formule" j'ai enregistrer une macro et voilà ce que ça me met:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Macro4()
    '
    ' Macro4 Macro
    '
     
    '
    Range("A2").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=R2C1"
    Range("A3").Select
    End Sub
    -> J'ai donc essayé de copier cette formule dans mon code, mais voilà le problème:

    Dans "R2C1" j'aimerai bien mettre "L" à la place de 2 et "C" à la place de 1 pour pouvoir mettre une boucle. Mais ça ne marche pas




    Je suis nouveau sur cette plateforme, donc désolé d'avance si je suis dans le mauvais forum, etc..


    Merci à vous

  2. #2
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Bonjour,

    Ce n’est pas assez clair pour moi, Merci de donner plus de détails Avec les tenants et les aboutissants et le but final …
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Par défaut
    Bonjour,


    je veux tout simplement copier la formule et non pas la valeur. Je veux reproduire la même chose lorsque l'on se sert que d'Excel

    Exemple lorsque l'on se sert que d'Excel:

    Je clique sur la cellule A2
    Puis j'écris "=A1"


    Ainsi, lorsque la valeur de la cellule A1 change, la valeur de la cellule A2 change également.

    Je veux trouver la formule qui permet le même mécanisme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sub exemple ()
    range("A2").value=Range("A1").value
    end sub
    Ce code affecte seulement la valeur de la cellule A1 dans la cellule A2.


    J'ai pas de code pré-établis

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Par défaut
    Pour résumé:


    Lorsque j'exécute ma macro, je veux que lorsque je clique sur la cellule concerné A2:

    =A1


    et non pas

    =2 (valeur d'A1)

  5. #5
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    Fais une recherche sur Range.Formula ou Range.FormulaLocal, tu auras les explications
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2019
    Messages : 6
    Par défaut
    Merci beaucoup pour ton temps et ton aide Ryu, j'ai pas été très claire avec vous pour vous expliquer ma problématique.

    répond en partie à mon problème, puisque ça me permet de faire référence à des cellules et non pas aux valeurs de ces cellules.

    Voilà un exemple de code qui pourrait vous éclaircir sur mes intentions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Sub test()
    Dim l, c As Integer
     
    l = 1
    i = 1
     
    For i = 1 To 10
     
        Cells(l, 3).Formula = Cells(l, 1) * Cells(l, 2)
     
        l = l + 1
     
    Next
     
    End Sub
    où par exemple:
    A1:A10=2
    B1:B10= 1, 2, 3, 4, ..., 10

    Ce code calcule la table de 2 et donne le résultat dans la colonne C (3ème colonne).

    Voilà ce que je souhaite:

    Après avoir exécuter ma macro (et sans avoir à réutiliser ma macro), pouvoir changer les valeurs de la première et/ou deuxième colonne et qu'ainsi la valeur des cellules de la colonne C se modifie directement.


    Or les valeurs de la colonne C, après l'exécution du code ci-dessus ne font pas référence aux cellules des deux premières colonnes. Si je prends la cellule C1 par exemple, sa valeur est de 2. Moi j'aimerai que lorsque je clique sur la cellule C1, il y ait comme résultat "=A1*B1"

    Il est possible d'obtenir ce que je veux en tapant par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("C1").formula="= A1*B1"
    Cependant, il faudrait que j'écrive cette ligne 10 fois (A2*B2, A3*B3,...) pour obtenir ce que je veux.



    C'est la première fois il me semble que j'essaye d'expliquer une difficulté rencontrée concernant le codage. Donc désolé encore une fois si je ne suis pas 100% compréhensible!

  7. #7
    Membre expérimenté
    Homme Profil pro
    Ancien Etudiant
    Inscrit en
    Janvier 2019
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activité : Ancien Etudiant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 152
    Par défaut
    Bonjour,

    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.FormulaR1C1 = "=R2C1"
    on était pas loin (encore que R2C1 en A2 ...)

    après pour insérer des variables dans une chaine:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim L As Long, C As Integer
    L = 5
    C = 6
    MsgBox "Roméo" & L & "Charly" & C  ' donnera =>"Roméo5Charly6"

  8. #8
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    DOUBLON : https://www.developpez.net/forums/d1...rence-cellule/

    Pourquoi modifier L et C, il suffit d'appliquer la formule à la plage, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro4()
      Range("A2:F2").FormulaR1C1 = "=R[-1]C"
    End Sub

  9. #9
    Membre Expert
    Homme Profil pro
    PAO
    Inscrit en
    Octobre 2014
    Messages
    2 576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : PAO
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2014
    Messages : 2 576
    Par défaut
    En attendant que tes explication soient plus claires, en voilà des précises à lire :
    Ecrire une formule dans Excel à l'aide d'une procédure VBA
    Ecrire une formule dans Excel à l'aide d'une procédure VBA (Part 2)
    Cordialement
    Ryu

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. – Albert Einstein

    Pensez à la Balise [ CODE][/CODE ] - à utiliser via le bouton # => Exemple

    Une fois votre problème solutionné pensez à mettre :resolu: en n'oubliant pas d'indiquer qu'elle est la solution finale choisie ;)

Discussions similaires

  1. Faire référence à une cellule
    Par Antoine.dah dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/01/2019, 22h23
  2. Réponses: 3
    Dernier message: 12/09/2013, 11h27
  3. Réponses: 7
    Dernier message: 14/06/2012, 08h06
  4. Réponses: 17
    Dernier message: 24/11/2006, 18h25
  5. Faire clignoter une cellule d'un MSFlexGrid
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 13/08/2006, 22h50

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