Excel 2007 Etirer formule sur ligne et col

[Résolu/Fermé]
Signaler
Messages postés
20
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
20 mai 2011
-
 saintsylar -
Bonjour à tous,

J'ai une formule en B5 et j'aimerais l'étirer sur toutes les lignes et les colonnes de mon tableau à partir de B5.
Voici le code formule compris dans ma macro :

Range("B5").Select
ActiveCell.FormulaR1C1 = "=SUMPRODUCT((Feuil1!R1C1:R2499C1=RC1)*(Feuil1!R1C 3:R2499C3=R1C)*(NOT(ISERROR(FIND(Feuil1!R1C4:R2499 C4,R4C)))))"

C'est une macro qui créera un nouveau tableau sur une nouvelle feuille. Le nombre de ligne et de colonne seront changeant mais la formule se situera toujours en B5.

Quelqu'un a une idée ?

Merci

5 réponses

Messages postés
10413
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
21 septembre 2021
1 206
Bonjour,
Les 2 lignes de codes étire la formule jusqu'à la colonne [L] et la ligne [15], adapter les plages selon vos valeurs :
Range("B5").AutoFill Destination:=Range("B5:L5"), Type:=xlFillDefault    
Range("B5:L5").AutoFill Destination:=Range("B5:L15"), Type:=xlFillDefault
Messages postés
20
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
20 mai 2011

Bonjour Le Pingou,

Merci pour ta réponse, mais le problème est que je voudrais le faire sans connaitre le nombre de colonne et de ligne. Vu que je n'aurais pas les mêmes tableau le nombre (colonne, ligne) est aléatoire.

Comment étirer jusqu'a la derniere colonne et la dernière ligne du tableau ?

Cdt
Messages postés
10413
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
21 septembre 2021
1 206
Bonjour,
Vous devez récupérer les numéros de colonne et ligne de vos données.
Vous intégrez les lignes suivantes dans votre code :
' *** la dernière colonne pleine ; admis la ligne [1]
deco = Cells(1, Rows(1).Cells.Count).End(xlToLeft).Column
' ***Idem pour la dernière ligne pleine ; admis la colonne [A]
deli = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row 
Range("B5").Select 
ActiveCell.FormulaR1C1 = "=SUMPRODUCT((Feuil1!R1C1:R2499C1=RC1)*(Feuil1!R1C3:R2499C3=R1C)*(NOT(ISERROR(FIND(Feuil1!R1C4:R2499C4,R4C)))))" 
Range("B5").AutoFill Destination:=Range(Cells(5, 2), Cells(5, deco)), Type:=xlFillDefault 
Range(Cells(5, 2), Cells(5, deco)).AutoFill Destination:=Range(Cells(5, 2), Cells(deli, deco)), Type:=xlFillDefault


Note: j'admets que votre formule en [B5] est correcte.



Salutations.
Le Pingou
Messages postés
20
Date d'inscription
mardi 15 mars 2011
Statut
Membre
Dernière intervention
20 mai 2011

Bonjour à tous,

Cela marche nikel, bravo Le Pingou

Merci encore à tous pour votre aide précieuse,

Bonne journée
Hello,

J'ai trouvé cette discussion qui m'interesse et je voudrais savoir comment etirer une matrice de formule en ligne et colonne sur une distance donné via une boite de dialogue?

Cdlt, Saintsylar