Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Explication d'une formule VBA

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sharkantipav

XLDnaute Occasionnel
Bonjour qui pourrait m'expliquer ce que veut dire cette formule

Range("BY2").FormulaR1C1 = "=1/(RC[-76]<>R[1]C[-76])

Et comment je pourrais evite des RC si je veux coder des formules en VBA

Merci Bcp
 
Re : Explication d'une formule VBA

Boujour.

Cette formule en notation R1C1 se retrouve, en notation A1 locale :
Code:
=1/(A2<>A3)
Elle rend 1 si A2 <> A3, et #DIV0! dans le cas contraire.
Elle est curieuse et parait tirée d'un code où elle serait affectée à toute une plage verticale en vue d'en isoler certaines à supprimer d'un seul coup, par exemple, à l'aide d'un SpecialCells…

Edit: Bonsoir Robert.
 
Dernière édition:
Re : Explication d'une formule VBA

Bonjour Sharkantipav, bonjour le forum,

Ma réputation de "Naze en formule" n'est plus à faire dans ce forum mais je vais essayer de t'expliquer.
R correspond Row qui signifie ligne. Le décalage vers le bas est positif, celui vers le haut est négatif
C correspond à Column qui signifie... devine ? Le décalage vers la droite est positif, celui vers la gauche est négatif.

Après lecture du code il y aura la formule suivante en BY2 :" =1(A2<>B2)"

Quand on décale BY2 de 0 lignes (R) et de 76 colonnes vers la gauche (C[-76])on obtient : A2
Quand on décale BY2 d'une ligne vers le bas (R[1]) et de 76 colonnes vers la gauche (C[-76])on obtient : A3
Si nous avons une valeur en A2 et une autre en A3, l'expression A2<>A3 va renvoyer VRAI (= 1) ou FAUX (= 0).

Donc, selon le cas d'égalité entre A2 et A3 nous aurons en BY2 :
Si A2 est différent de A3, A2<>A3 renvoie VRAI donc vaut 1, donc 1/1 = 1 (Résultat affiché)
Si A2 est égal à A3, A2<>A3 renvoie FAUX donc vaut 0, donc 1/0 = #DIV/0! (Résultat affiché).

Tu pourrais coder en dur :

Code:
Range("BY2").Formula = "=1/(A2<>A3)"

[Édition]
Bonsoir Bernard, on s'est croisé...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
921
Réponses
3
Affichages
778
Réponses
2
Affichages
401
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…