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

Variable dans sum(RC...

  • Initiateur de la discussion Initiateur de la discussion grodep
  • 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 !

grodep

XLDnaute Occasionnel
Bonsoir à tous, j'ai bien conscience au vu de tous les sujets qui en parlent d'aborder un problème courant, et j'aurai aimé trouver et comprendre tout seul la solution, mais une fois de plus.. je sèche :

si j'écris ceci, ça fonctionne :
Code:
Range("A" & i + 1).FormulaR1C1 = "=SUM(RC[+8]:RC[+31]

sauf que j'aimerai bien pouvoir remplacer [+8] et [+31] par des variables. et là, entre les guillemets, les crochets, les virgules, je n'arrive pas à écrire un code qui fonctionne.
j'avais trouvé un code bien écrit dans le cas ou ce ne sont pas les colonnes qui sont fixes mais les lignes
Code:
Range("J" & CptLgManager).Formula = "=SUM(J5:J & CptLgManager -1 )"

mais je n'arrive pas a l'adapter dans mon puisque là ce sont les lignes qui sont fixes.
désolé de ne pas avoir trouvé...
et merci aux intervenants
 
Re : Variable dans sum(RC...

Bonsoir Grodep, le fil,

grodep à dit:
si j'écris ceci, ça fonctionne :
Code:
Range("A" & i + 1).FormulaR1C1 = "=SUM(RC[+8]:RC[+31])"

Voici la même chose avec des variables pour les lignes et colonnes donnant le même résultat que le code ci-dessus :

Code:
Colonne1 = 8
colonne2 = 31
Ligne1 = 1
Ligne2 = 1

Range("A" & i + 1).FormulaR1C1 = "=SUM(R[[COLOR="Red"][B]+[/B][/COLOR]" & Ligne1 & "]C[[COLOR="Red"][B]+[/B][/COLOR]" & Colonne1 & "]:R[[COLOR="Red"][B]+[/B][/COLOR]" & Ligne2 & "]C[[COLOR="Red"][B]+[/B][/COLOR]" & colonne2 & "])"

A partir du code que je viens de te donner, tu arrive à l'adapter à ton cas de figure?

Sinon transmet nous ton fichier, la cellule où tu veux le résultat et la formule que tu veux y faire figurer!

A te lire

Cordialement

PS. : évidement tu peux remplacer le(s) "+" par des "-" 😉
 
Dernière édition:
Re : Variable dans sum(RC...

bon ça marche impeccable. mais d'une manière générale, dès qu'il s'agit d'utiliser des variables dans des formules en vba, je patauge gravement dans la syntaxe :
typiquement, je cherche à installer une MFC sur des cellules et là encore si je tente de remplacer les chiffres par des variables, ben la syntaxe est refusée :
le code suivant fonctionne
Code:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        " =countif(RC(6):RC(31),RC)>3"
mais je n'arrive pas à remplacer 6 et 31 par des variables, et c'est pas faute d'avoir essayé autant de combinaisons de virgules, crochets, guillemets que possible....

Je suppose que tout cela répond à des regles bien précises, si qqun pouvait m'orienter vers un sujet qui en parle, ça m'éviterait peut etre de déranger tout le monde pour des problemes aussi basiques 🙂
 
Re : Variable dans sum(RC...

Bonsoir Grodep,

Avant :
grodep à dit:
Code:
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        " =countif(RC(6):RC(31),RC)>3"

Après
Code:
Colonne1 = 8
colonne2 = 31

Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        [COLOR="Blue"][B]"[/B][/COLOR]=countif(RC([B][COLOR="Blue"]"[/COLOR][/B] & Colonne1 & [COLOR="Red"][B]"[/B][/COLOR]):RC([COLOR="Red"][B]"[/B][/COLOR] & Colonne2 & [COLOR="Sienna"][B]"[/B][/COLOR]),RC)>3[COLOR="Sienna"][B]"[/B][/COLOR]

Ton soucis provient surement d'une mauvaise utilisation de la fonction & qui permet de coller bout à bout plusieurs truc.

Dans ton code VBA, ta formule est entre guillemet, c'est exactement la même chose que lorsque tu utilise des parenthèses dans une imbrication de plusieurs fonction SI! Chaque fois que tu ouvre un guillemet (ou une parenthèse), il faut le(la) refermer!

De plus, il faut savoir que tes variables ne doivent pas être à l'intérieur de guillemet.

Mon explication est clair????

Sinon, n'hésite pas à le dire, moi ou quelqu'un d'autre essayerons de t'expliquer cela autrement.

Bonne fin de soirée
 
Re : Variable dans sum(RC...

oui l'explication est très claire, et (j'espere) avoir compris. Cependant, si j'ai enfin réussi à écrire le code pour installer les mfc sur la plage de cellules correspondantes, les mfc ne fonctionnent pas !
Code:
For i = 2 To 8 Step 3
db = 6
fn = 30
For o = 2 To 7
Cells(i, o).Select
Selection.FormatConditions.Delete
  With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .Color = 65535
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
        " =NB.SI(RC(" & db & "):RC(" & fn & "),RC)>2"
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
    With Selection.FormatConditions(1).Interior
        .PatternColorIndex = xlAutomatic
        .Color = 5287936
        .TintAndShade = 0
    End With
    Selection.FormatConditions(1).StopIfTrue = False
    fn = fn - 1
    db = db - 1
    Next o
    Next i
j'ai beau inscrire des valeurs identiques à la cellule cible sur la meme ligne, rien ne se passe ...
j'enrage

Grand merci en tout cas pour l'explication sur les " et &.
 
Dernière édition:
Re : Variable dans sum(RC...

Re,

grodep à dit:
oui l'explication est très claire, et (j'espere) avoir compris

Lorsque tu es dans Excel, cellule A1 et que tu veux écrire dedans l'heure, alors que :
-> le chiffre de l'heure est contenu dans A2
-> le nombre des minutes est contenu dans A3

Tu as au moins deux solutions sans passer par le VBA :
-> la formule CONCATENER() celle que tu semble utiliser?
Code:
=CONCATENER(A2[COLOR="Blue"][B];[/B][/COLOR]"Heure(s)"[COLOR="Blue"][B];[/B][/COLOR]A3[COLOR="Blue"][B];[/B][/COLOR]"Minute(s)")

-> la formule & :
Code:
=A2[COLOR="Blue"][B]&[/B][/COLOR]"Heure(s)"[COLOR="Blue"][B]&[/B][/COLOR]A3[COLOR="Blue"][B]&[/B][/COLOR]"Minute(s)"

Lorsque tu utilise la fonction & en VBA c'est la même chose!

Pour ton autre question, peux-tu ouvrir un nouveau sujet? Car comme il ne s'agit pas du même problème, ce sera plus clair pour les visiteurs éventuelles (et l'utilisation de la fonction "recherche" du forum), et tu auras une réponse plus rapidement.

Si personne ne t'as répondu d'ici demain soir, je me pencherais sur ton soucis. Pour ma part, je vais aller voir Morphée.

A+
 
Dernière édition:
Re : Variable dans sum(RC...

non je n'utilise pas spécialement concatener() mais je viens de comprendre pourquoi cela ne fonctionnait pas chez moi :
a l'écriture d'un code, excel réaffecte souvent seul les espaces lorsque l'auteur les omet
exemple : si j'écris
Code:
 for i=2 to
excel réécrira automatiquement
Code:
 for i = 2 to
mais dans les formules, lorsqu'on utilise les guillemets et les &, il faut soi meme mettre les espaces entre les & et les variables, sans quoi on aboutit à une erreur de syntaxe.
Pas bien méchant, mais quand on doute de l'utilisation des guillemets et des &, on ne pense pas à chercher du coté des espaces oubliés...

Grand merci pour cette leçon d'écriture.
 
Re : Variable dans sum(RC...

hmm ça n'est décidément jamais aussi simple que ce que je crois
partant de ton exemple, j'essaie mais infructueusement :
dans mon code j'ai ceci
Code:
Range("A" & i).FormulaR1C1 = "=counta(RC[+" & aa & "]:RC[+" & j & "])"
que j'essaie de changer en rajoutant l'unité de mesure "kms"
Code:
Range("A" & i).FormulaR1C1 = "=counta(RC[+" & aa & "]:RC[+" & j & "]) & "kms" "
marche pô 🙁
pas plus que
Code:
Range("A" & i).FormulaR1C1 = "=counta(RC[+" & aa & "]:RC[+" & j & "])" & "kms"

ni
Code:
Range("A" & i).FormulaR1C1 = "=concatener(counta(RC[+" & aa & "]:RC[+" & j & "]);"kms")"

ne jamais se dire en s'attaquant à un probleme ' j'en ai pour 5 minutes' ...
 
Re : Variable dans sum(RC...

Bonsoir grodep et Excel-lent, bonsoir à toutes et à tous 🙂


Dans quelques temps, tu en auras pour quelques secondes 😉

"=COUNTA(R[+" & aa & "]C:R[+" & j & "]C,1)&"" kms"""

En rouge, c'est la syntaxe vba et en bleu, la façon d'intégrer kms dans ta cellule. La dernière partie de la formule est donc :

"]&"" kms"""

pour que les guillemets entourants le mot kms soient pris en compte dans ta formule, il faut les doubler car cette dernière partie est déjà entourée de guillemets (les rouges).

@+
 
Re : Variable dans sum(RC...

bravo, c'est exact ... fouillouillouille!! En fait c'est parfaitement logique, il faut juste être très pointilleux.
Et dire que certains trouvent la syntaxe française trop compliquée..

merci beaucoup, grâce à vous, j'ai l'impression de progresser à pas de géant 🙂 mais bon ça fait toujours ça quand on part de 0 😀
 
- 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
11
Affichages
705
C
Réponses
23
Affichages
4 K
Charles78
C
H
Réponses
2
Affichages
38 K
H
T
Réponses
22
Affichages
6 K
Thibault LB
T
B
Réponses
2
Affichages
2 K
Berna
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…