OVH Cloud OVH Cloud

Pb dans macro

4 réponses
Avatar
BIANCAV
Bonjour,
J'ai perdu mon message alors je le refais
J'ai tenté d'appliquer avec l'enregistreur les deux formules matricielles
qui m'ont été données, mais je pense que ce n'est pas juste car dans range,
il ne m'a mis que la cellule sélectionné pour chaque fonction et en fait moi
sur cette colonne je veux qu'il applique l'une ou l'autre selon ce qu'il
trouve à gauche de la ligne 4 à 242
Cordialement
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 21/10/2006 par Véronique
'

'
Range("E4").Select
Selection.FormulaArray =
"=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
Selection.Font.ColorIndex = 9
Selection.Interior.ColorIndex = 40
Range("E5").Select
Selection.FormulaArray =
"=SUM(IF(VALUE(LEFT(Cpte,3))=RC[-1],Montant,0))"
Selection.Interior.ColorIndex = 40
End Sub

4 réponses

Avatar
lSteph
Hello Biancav,
:-?
Pas sûr d'y comprendre, tu veux dire:

With Range("E4:E242")
.FormulaArray = "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
.Font.ColorIndex = 9
'.....
End with

'@+
'lSteph
BIANCAV a exprimé avec précision :
Bonjour,
J'ai perdu mon message alors je le refais
J'ai tenté d'appliquer avec l'enregistreur les deux formules matricielles qui
m'ont été données, mais je pense que ce n'est pas juste car dans range, il ne
m'a mis que la cellule sélectionné pour chaque fonction et en fait moi sur
cette colonne je veux qu'il applique l'une ou l'autre selon ce qu'il trouve à
gauche de la ligne 4 à 242
Cordialement
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 21/10/2006 par Véronique
'

'
Range("E4").Select
Selection.FormulaArray > "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
Selection.Font.ColorIndex = 9
Selection.Interior.ColorIndex = 40
Range("E5").Select
Selection.FormulaArray > "=SUM(IF(VALUE(LEFT(Cpte,3))=RC[-1],Montant,0))"
Selection.Interior.ColorIndex = 40
End Sub


--
- -

Avatar
BIANCAV
Bonjour,
Presque ça. Ca ca marche pas car il l'applique sur tt ma colonne mais dans
cette colonne j'ai les deux formules matricielles car en D il peut avoir 60,
601 ou 61, 612... et les deux formules matricielles permettent de faire la
somme en E de toutes les lignes qui commencent par 60, la somme de ttes
celles qui commence par 61, 62... face à chacun de ces chiffres en E et de
ttes les lignes qui commencent par 601; 602 ... face à chacun de ces
chiffres en E
Alors si je fais range sur la première jusqu'à 242, il n'éxécute plus la
seconde.
Suis-je plus claire (j'aurais paut-être pas du essayer la macro !!!)
Cordialement
"lSteph" a écrit dans le message de news:

Hello Biancav,
:-?
Pas sûr d'y comprendre, tu veux dire:

With Range("E4:E242")
.FormulaArray = "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
.Font.ColorIndex = 9
'.....
End with

'@+
'lSteph
BIANCAV a exprimé avec précision :
Bonjour,
J'ai perdu mon message alors je le refais
J'ai tenté d'appliquer avec l'enregistreur les deux formules matricielles
qui m'ont été données, mais je pense que ce n'est pas juste car dans
range, il ne m'a mis que la cellule sélectionné pour chaque fonction et
en fait moi sur cette colonne je veux qu'il applique l'une ou l'autre
selon ce qu'il trouve à gauche de la ligne 4 à 242
Cordialement
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 21/10/2006 par Véronique
'

'
Range("E4").Select
Selection.FormulaArray >> "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
Selection.Font.ColorIndex = 9
Selection.Interior.ColorIndex = 40
Range("E5").Select
Selection.FormulaArray >> "=SUM(IF(VALUE(LEFT(Cpte,3))=RC[-1],Montant,0))"
Selection.Interior.ColorIndex = 40
End Sub


--
- -





Avatar
lSteph
Ah!
ceci sent la nomenclature comptable...
je n'ai pas tout en main cpte est bien défini au début ?
nouvelle suggestion:

with Range("E4:E242")
.FormulaArray =
"=SUM(IF(VALUE(LEFT(Cpte,len(Cpte)))=RC[-1],Montant,0))"
.Font.ColorIndex = 9
'.....
End with


..
sinon
tu dis à l'avance ce que je commence à penser,
Suis-je plus claire (j'aurais paut-être pas du essayer la macro !!!
c'est probablement possible à règler par formule.

mais l'essentiel de l'objectif m'échappe, je n'ai pas suivi le début du
fil

@+
lSteph

BIANCAV avait énoncé :
Bonjour,
Presque ça. Ca ca marche pas car il l'applique sur tt ma colonne mais dans
cette colonne j'ai les deux formules matricielles car en D il peut avoir 60,
601 ou 61, 612... et les deux formules matricielles permettent de faire la
somme en E de toutes les lignes qui commencent par 60, la somme de ttes
celles qui commence par 61, 62... face à chacun de ces chiffres en E et de
ttes les lignes qui commencent par 601; 602 ... face à chacun de ces chiffres
en E
Alors si je fais range sur la première jusqu'à 242, il n'éxécute plus la
seconde.
Suis-je plus claire (j'aurais paut-être pas du essayer la macro !!!)
Cordialement
"lSteph" a écrit dans le message de news:

Hello Biancav,
:-?
Pas sûr d'y comprendre, tu veux dire:

With Range("E4:E242")
.FormulaArray = "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
.Font.ColorIndex = 9
'.....
End with

'@+
'lSteph
BIANCAV a exprimé avec précision :
Bonjour,
J'ai perdu mon message alors je le refais
J'ai tenté d'appliquer avec l'enregistreur les deux formules matricielles
qui m'ont été données, mais je pense que ce n'est pas juste car dans
range, il ne m'a mis que la cellule sélectionné pour chaque fonction et en
fait moi sur cette colonne je veux qu'il applique l'une ou l'autre selon
ce qu'il trouve à gauche de la ligne 4 à 242
Cordialement
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 21/10/2006 par Véronique
'

'
Range("E4").Select
Selection.FormulaArray >>> "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
Selection.Font.ColorIndex = 9
Selection.Interior.ColorIndex = 40
Range("E5").Select
Selection.FormulaArray >>> "=SUM(IF(VALUE(LEFT(Cpte,3))=RC[-1],Montant,0))"
Selection.Interior.ColorIndex = 40
End Sub


-- - -





--
- -



Avatar
BIANCAV
Bonjour, c'est de la nomenclature comptable, cpte est bien défini au début
et oui par formule qui m'a été donnée par JB, c'est réglé.
J'avais un peu de temps, je me disais s'ils font tous des macros c'est qu'il
y a un intérêt, alors j'essayais avec celle-ci en suivant pas à pas les docs
trouvées grâce à vous tous sur http://dj.joss.free.fr. Pour une fois que
j'avais pas le feu sur le gaz !!!
Je vais qd même essayer ce que tu as écrit.
Bonne journée
Cordialement
"lSteph" a écrit dans le message de news:

Ah!
ceci sent la nomenclature comptable...
je n'ai pas tout en main cpte est bien défini au début ?
nouvelle suggestion:

with Range("E4:E242")
.FormulaArray = "=SUM(IF(VALUE(LEFT(Cpte,len(Cpte)))=RC[-1],Montant,0))"
.Font.ColorIndex = 9
'.....
End with


..
sinon
tu dis à l'avance ce que je commence à penser,
Suis-je plus claire (j'aurais paut-être pas du essayer la macro !!!
c'est probablement possible à règler par formule.

mais l'essentiel de l'objectif m'échappe, je n'ai pas suivi le début du
fil

@+
lSteph

BIANCAV avait énoncé :
Bonjour,
Presque ça. Ca ca marche pas car il l'applique sur tt ma colonne mais
dans cette colonne j'ai les deux formules matricielles car en D il peut
avoir 60, 601 ou 61, 612... et les deux formules matricielles permettent
de faire la somme en E de toutes les lignes qui commencent par 60, la
somme de ttes celles qui commence par 61, 62... face à chacun de ces
chiffres en E et de ttes les lignes qui commencent par 601; 602 ... face
à chacun de ces chiffres en E
Alors si je fais range sur la première jusqu'à 242, il n'éxécute plus la
seconde.
Suis-je plus claire (j'aurais paut-être pas du essayer la macro !!!)
Cordialement
"lSteph" a écrit dans le message de news:

Hello Biancav,
:-?
Pas sûr d'y comprendre, tu veux dire:

With Range("E4:E242")
.FormulaArray = "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
.Font.ColorIndex = 9
'.....
End with

'@+
'lSteph
BIANCAV a exprimé avec précision :
Bonjour,
J'ai perdu mon message alors je le refais
J'ai tenté d'appliquer avec l'enregistreur les deux formules
matricielles qui m'ont été données, mais je pense que ce n'est pas
juste car dans range, il ne m'a mis que la cellule sélectionné pour
chaque fonction et en fait moi sur cette colonne je veux qu'il applique
l'une ou l'autre selon ce qu'il trouve à gauche de la ligne 4 à 242
Cordialement
Sub Macro2()
'
' Macro2 Macro
' Macro enregistrée le 21/10/2006 par Véronique
'

'
Range("E4").Select
Selection.FormulaArray >>>> "=SUM(IF(VALUE(LEFT(Cpte,2))=RC[-1],Montant,0))"
Selection.Font.ColorIndex = 9
Selection.Interior.ColorIndex = 40
Range("E5").Select
Selection.FormulaArray >>>> "=SUM(IF(VALUE(LEFT(Cpte,3))=RC[-1],Montant,0))"
Selection.Interior.ColorIndex = 40
End Sub


-- - -





--
- -