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 :

syntaxe FormulaR1C1 existe-t-il un "convertisseur" ? [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2017
    Messages
    550
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 550
    Par défaut syntaxe FormulaR1C1 existe-t-il un "convertisseur" ?
    Bonjour à vous cher passionné de VBA,


    Il m'arrive parfois d'écrire des FormulaR1C1 en VBA et j'ai souvent de la difficulté à faire la bonne syntaxe. JE dois remplacer des éléments de la Formule que je laisse l'enregistreur de macro écrire par des variable, étant donné qu'il se peut que l'utilisateur bouge des colonnes.

    Existe-t-il un convertisseur d'élément en l'écrivant avec la bonne syntaxe ou, avez vous une astuce afin de m'assurer de ne pas trop galérer ? J'y vais avec des rechercher/remplacer mais parfois cela me cause plus de soucis que de solution


    merci chers amis !!!

  2. #2
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,

    un convertisseur entre quoi et quoi ? et où ?
    Sélection la cellule dont tu veux convertir la formule et va dans la fenêtre d'exécution faire :

    Nom : _Capture d’écran 2023-04-27 120221.png
Affichages : 488
Taille : 3,5 Ko

  3. #3
    Membre éclairé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2017
    Messages
    550
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2017
    Messages : 550
    Par défaut
    Citation Envoyé par Tête de chat Voir le message
    Bonjour,

    un convertisseur entre quoi et quoi ? et où ?
    Sélection la cellule dont tu veux convertir la formule et va dans la fenêtre d'exécution faire :

    Nom : _Capture d’écran 2023-04-27 120221.png
Affichages : 488
Taille : 3,5 Ko
    JE crois que vous ne comprennez pas le sens de ma question ou vous ne savez pas ce que représente les chiffre dans la FormulaR1C1, il s'agit d'offset. Donc lorsque les colonnes sont toujours à la même endroit, l'offset est toujours bon mais comme j'ai mentionné on ne peut avoir celui-ci fixe. DOnc la façon de faire est de dire que le offset est la différence entre une colonne X et une colonne Y, des colonnes auxquels j'ai préalablement nommer.

    Par exemple

    deviens

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     FormulaR1C1 = "=AND(RC[" & [ancienne_est].Column - [harmonie].Column & "]=RC[" & [ancienne__longue].Column - [harmonie].Column & _
                                                    "],RC[" & [ancienne_ouest].Column - [harmonie].Column & "]=RC[" & [ancienne_prov_longue].Column - [harmonie].Column & _
                                                    "],RC[" & [ancienne_mtl].Column - [harmonie].Column & "]=RC[" & [ancienne_prov_longue].Column - [harmonie].Column & "])"
    Il faut remplacer les variables par une syntaxe qui est assez frustrante à remplacer

  4. #4
    Membre émérite
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2022
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2022
    Messages : 685
    Par défaut
    Bonjour,
    ou vous ne savez pas ce que représentent les chiffres dans la FormulaR1C1
    merci pour l'absolue confiance que tu m'accordes...

    Déjà en ce qui me concerne j'évite le plus possible de construire des formules en VBA. C'est, comme on le voit dans l'exemple et comme tu le soulignes toi-même difficile à lire, mettre au point et maintenir. Quand on peut mettre une modèle quelquepart (une ligne/colonne cachée, une feuille de paramètre...) et faire une copie ou récupérer la formule dedans, on gagne sur tous les tableaux.

    Après effectivement je ne comprends pas la question c'est pour ça que j'ai demandé
    un convertisseur entre quoi et quoi ?
    Et accessoirement je ne comprends pas non plus
    l'offset est toujours bon mais [...] on ne peut avoir celui-ci fixe.
    Est-ce que la syntaxe RC5 ( au lieu de par exemple RC[-6], soit $E2 au lieu de E2, ne te simplifierait pas la vie ?

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 503
    Par défaut
    pas sûr d'avoir compris non plus, mais au cas où, avec Range(..).Address(...), on peut récupérer l'adresse au format R1C1 ou A1 selon le paramètre ReferenceStyle de Address
    https://learn.microsoft.com/en-us/of....range.address

    Après sur un Range, on peut aussi demander un Offset(r,c) https://learn.microsoft.com/en-us/of...l.range.offset

  6. #6
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 484
    Par défaut
    Salut le fil,
    DOnc la façon de faire est de dire que le offset est la différence entre une colonne X et une colonne Y, des colonnes auxquels j'ai préalablement nommer.
    S c'est ce que je pense tu devrai faire un tour sur ce sujet qui traite je pense le sujet qui t'inquiète :

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

Discussions similaires

  1. Syntaxe IF EXISTS
    Par Aymeric41 dans le forum Développement
    Réponses: 7
    Dernier message: 09/11/2010, 14h36
  2. [MySQL] Syntaxe erreur apres avoir mis un quote '
    Par AyManoVic dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/07/2010, 16h50
  3. Syntaxe IF EXISTS (SELECT.
    Par Greldinard dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 11/10/2006, 12h55
  4. syntaxe drop table exists
    Par guns17 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/02/2005, 10h50
  5. [EXISTS] Version MySql ou erreur syntaxe ?
    Par Kimael dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/04/2004, 17h30

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