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

Aide pour comprendre un code

  • Initiateur de la discussion Initiateur de la discussion davidp
  • Date de début Date de début

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 !

davidp

XLDnaute Occasionnel
Bonjour le forum ,

J'ai une nouvelle fois besoin de votre aide ,
effet , je cherche à comprendre à la signification des formules ou cellules surlignées en rouge afin
d'adapter les formules à un projet

D'habitude les codes sont avec des noms type A1 , B2 , là avec les RC , R , C je suis perdu


Merci d'avance pour votre aide


option ExplicitSub Test()Dim Derl&Derl = Feuil1.Range("A" & Rows.Count).End(3).RowRange("O6:O" & Derl).Formula = _"=SUMIFS(Coller!R2C12:R5C12,Coller!R2C3:R5C3,'synthese'!RC[-14],Coller!R2C9:R5C9,'synthese'!RC[-8])"Range("O6:O" & Derl) = Range("O6:O" & Derl).ValueEnd Sub

Merci d'avance pour votre aide

Merci

DAVIDP
 

Pièces jointes

Re : Aide pour comprendre un code

Bonjour à tous

R=Row=ligne
C=Column=colonne

pour plus faire un petit tour dans l'aide de VBA (touche F1)
ou voir ici
ADRESSE - Excel
voir aussi là (pas eu le temps de trouver la page en version française, mais bon la langue de VBA c'est l'anglais, non ? 😉 )
About cell and range references - Support



 
Dernière édition:
Re : Aide pour comprendre un code

Suite...

Avec des commentaires dans le code VBA formaté.
VB:
Option Explicit
Sub Test()
'Déclarations variables
Dim Derl& 'équivalent à : Dim Derl as Long
Derl = Feuil1.Range("A" & Rows.Count).End(3).Row 'détermine le numéro de ligne
'de la dernière cellule non vide en colonne A
'équivalent à : Derl = Feuil1.Range("A" & Rows.Count).End(xlUp).Row
Range("O6:O" & Derl).Formula = _
"=SUMIFS(Coller!R2C12:R5C12,Coller!R2C3:R5C3,'synthese'!RC[-14],Coller!R2C9:R5C9,'synthese'!RC[-8])"
'transforme les formules en valeurs
'Range("O6:O" & Derl) = Range("O6:O" & Derl).Value
End Sub
J'ai mis la dernière ligne en commentaire pour que tu puisses voir à quoi ressemblent les formules insérées.

Est-ce que ces explications ont éclairées ta lanterne ?
 
Dernière édition:
Re : Aide pour comprendre un code

Bonjour le forum ,

merci pour vos explications qui vont m'aider énormement

encore une derniere question :

'synthese'!RC[-14] " à quelle cellule cela fait référence de la feuille synthese?
'synthese'!RC[-8])" à quelle cellule cela fait référence de la feuille synthese?


Merci pour votre aide

bonne soiré

davidp
 
Re : Aide pour comprendre un code

Re

Tu as testé ma suggestion du précédent message pour voir les formules dans les cellules ?
(mettre en commentaires la dernière ligne de code)
Ainsi tu pourras voir à quelles cellules il est fait référence dans la formule
 
Re : Aide pour comprendre un code

Bonjour STAPLE1600 ,

Merci j'ai vu les formules dans chaque cellule de la colonne O .

question : Si feuille synthese comporte 1000 lignes , dois-je changer la valeur RC[-14] ou RC[-8])" du code ci-dessous:

Si oui , par quoi ?

'synthese'!RC[-14] " à quelle cellule cela fait référence de la feuille synthese?
'synthese'!RC[-8])" à quelle cellule cela fait référence de la feuille synthese

Desole de poser toutes ces questions

Bonne soirée

davidp
 
Re : Aide pour comprendre un code

Re

Avec ces petits exemples, est-ce que tu comprends mieux la syntaxe R1C1 ?
(à tester sur un classeur vierge avec deux feuilles nommées Feuil1 et Feuil2)
Code:
Sub a()
MsgBox Cells(1, Columns.Count).Address 'dernière colonne
[A1] = "='Feuil2'!RC[-14]"
MsgBox [A1].Formula

[B1] = "='Feuil2'!RC[-1]"
MsgBox [B1].Formula
[C1] = "='Feuil2'!R[5]C[-1]"
MsgBox [C1].Formula
End Sub
 
Re : Aide pour comprendre un code

Bonjour Staple1600,

merci pour ton aide , j'ai testé le code , voilà ce que j'ai compris:

[A1] = "='Feuil2'!RC[-14]" cela correspond à la cellule XEQ1 de la feuille 2 / pouquoi ?
[B1] = "='Feuil2'!RC[-1]" cela correspond à la cellule A1 de la feuille 2
[C1] = "='Feuil2'!R[5]C[-1]"cela correspond à la cellule B6 de la feuille 2 / pouquoi ?

J'avoue ne pas avoir compris toute la logique

Des que j'aurai + de temps , je chercherai sur le site

Bonne soirée

Merci pour ton aide

davidp
 
Re : Aide pour comprendre un code

Re

C'était juste des exemples 😉
Comme dit précédemment R veut dire Row donc ligne et C veut dire Column donc Colonne
Est-ce que cet exemple est plus parlant ?
(Toujours à tester sur un nouveau classeur vide)
VB:
Sub Test2()
Range("A1:A5") = "=ROW()"
Range("B1").FormulaR1C1 = "=SUM(RC[-1]:R[4]C[-1])"
'On est en B1 et on se décale d'une colonne donc RC[-1]
'puis on se décale de 4 lignes donc: R[4]C[-1]
'Donc l’équivalent de la formule RC1C1 "=SUM(RC[-1]:R[4]C[-1])"
'peut aussi s'écrire:
Range("C1").FormulaLocal = "=SOMME(A1:A5)"
End Sub
 
Re : Aide pour comprendre un code

Bonjour.
J'avoue ne pas avoir compris toute la logique
C'est pourtant simple:
En notation R1C1 les références relatives sont indiquées par un décalage entre crochets par rapport à la cellule portant la formule.
Exception: Lorsque ce décalage est de 0 il n'est pas indiqué du tout.
 
- 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

D
Réponses
4
Affichages
1 K
W
Réponses
6
Affichages
1 K
william68
W
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…