Bonjour.
J'aimerais intégrer une formule assez costaud dans une de mes macros mais la deuxième ligne de formule est en rouge.
http://www.casimages.com/img.php?i=1...4734493590.jpg
Avez-vous une explication?
Bonjour.
J'aimerais intégrer une formule assez costaud dans une de mes macros mais la deuxième ligne de formule est en rouge.
http://www.casimages.com/img.php?i=1...4734493590.jpg
Avez-vous une explication?
Bonjour,
Pourquoi y a-t-il une 2e ligne ? Tu vas à la ligne juste avec le bouton entrée ?
Car si tel est le cas, ça ne fonctionne pas comme cela sur VBA, il faut faire "_" en bout de ligne précédé d'un espace, puis seulement après, aller à la ligne.
Sinon, il n'associe pas le début de formule à la 2e ligne (ou vice & versa
A+
elise
Bonjour Elise, Merci pour ta réponse,
J'ai fait ce que tu m'as dit.
Malheureusement, j'ai toujours du texte en rouge.
code initial:
Code essayé après avoir lu votre astuce :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub Macro5() ' ' Macro5 Macro ' ' ActiveCell.FormulaR1C1 = _ "=IF(RC[-1]=R[-1]C[-1],"""",IF(AND(RC[-1]=R[7]C[-1],RC[-1]=R[6]C[-1],RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[7]C[-6])+(1/R[6]C[-6])+(1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[6]C[-1],RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[6]C[-6])+(1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(R[3]C[-1]=RC[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(RC[-1]=R[ 1]C[-1],1/((1/R[1]C[-6])+(1/RC[-6])),RC[-6]))))))))" End Sub
Message = erreur de compilation, attendu fin d'instruction...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Sub Macro5() ' ' Macro5 Macro ' ' ActiveCell.FormulaR1C1 = _ "=IF(RC[-1]=R[-1]C[-1],"""",IF(AND(RC[-1]=R[7]C[-1],RC[-1]=R[6]C[-1],RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[7]C[-6])+(1/R[6]C[-6])+(1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[6]C[-1],RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[6]C[-6])+(1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(R[3]C[-1]=RC[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6]))," & _ "= IF(AND(RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(RC[-1]=R[ & _ " = 1]C[-1],1/((1/R[1]C[-6])+(1/RC[-6])),RC[-6]))))))))" Range("N8").Select End Sub
Où est le problème?
Effectivement, mauvaise explication de ma part, car il aurait fallu utiliser le & en début de ligne :
Mais cela ne résoud pas le pbl, il me dit qu'il n'y a pas assez de mémoire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ActiveCell.FormulaR1C1 = _ "=IF(RC[-1]=R[-1]C[-1],"""",IF(" _ & "AND(RC[-1]=R[7]C[-1],RC[-1]=R[6]C[-1] .........
Mais je crois avoir déjà lu qu'il n'aimait pas les si imbriqués au-delà de 7 Si, et là, il y en a 8...
Sinon, je crios que ta formule correspond à celle-ci (qui aurait le mérite de ne pas imbriquer les "Si", mais de les justaposer...
Vois si cela te convient... Chez moi ça fonctionne (même si rouge ici... (??))
Elise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActiveCell.FormulaR1C1 = _ "=IF(R[1]C[-1]=RC[-1],"""",1/(IF(R[1]C[-1]=R[8]C[-1],1/R[8]C[-6],0)+IF(R[1]C[-1]=R[7]C[-1],1/R[7]C[-6],0)+IF(R[1]C[-1]=R[6]C[-1],1/R[6]C[-6],0)+IF(R[1]C[-1]=R[5]C[-1],1/R[5]C[-6],0)+IF(R[1]C[-1]=R[4]C[-1],1/R[4]C[-6],0)+IF(R[1]C[-1]=R[3]C[-1],1/R[3]C[-6],0)+IF(R[1]C[-1]=R[2]C[-1],1/R[2]C[-6],0)+(1/R[1]C[-6])))"
Bonsoir,
C'est le nombre de colonnes dans le VBE qui est limité donc il faut faire des retours à la ligne avec la combinaison espace tiret bas " _" et l'esperluette (&) pour concatener :
Hervé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ActiveCell.FormulaR1C1 = _ "=IF(RC[-1]=R[-1]C[-1],""""," & _ "IF(AND(RC[-1]=R[7]C[-1],RC[-1]=R[6]C[-1],RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[7]C[-6])+(1/R[6]C[-6])+(1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6]))," & _ "IF(AND(RC[-1]=R[6]C[-1],RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[6]C[-6])+(1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6]))," & _ "IF(AND(RC[-1]=R[5]C[-1],RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[5]C[-6])+(1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6]))," & _ "IF(AND(RC[-1]=R[4]C[-1],RC[-1]=R[3]C[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[4]C[-6])+(1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(AND(R[3]C[-1]=RC[-1],RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[3]C[-6])+(1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6]))," & _ "IF(AND(RC[-1]=R[2]C[-1],RC[-1]=R[1]C[-1]),1/((1/R[2]C[-6])+(1/R[1]C[-6])+(1/RC[-6])),IF(RC[-1]=R[1]C[-1],1/((1/R[1]C[-6])+(1/RC[-6])),RC[-6]))))))))"
Salut
Tu devrais expliquer ce que tu souhaites faire exactement, ta formule me semble bien longue. Il serait bien, à mon avis, de poser une question dans le forum Excel (pas vba-excel), pour demander s'il n'est pas possible de simplifier tout ça. Dans cette question, ne te contente pas de demander une simplification en mettant la formule en référence, explique bien ce qu'elle fait.
Vu la structure de ta formule, intéresse toi aux formules matricielles.
++
Qwaz
MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
Ma page perso DVP
Dernier et SeulTutoriel : VBA & Internet Explorer
Dernière contribution : Lien Tableau Structuré et UserForm
L'utilisation de l’éditeur de message
Partager