Excel 2007 Etirer formule sur ligne et col

Résolu
VG13 Messages postés 21 Statut Membre -  
 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

  1. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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
    0
  2. VG13 Messages postés 21 Statut Membre
     
    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
    0
  3. Le Pingou Messages postés 12273 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    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
    0
  4. VG13 Messages postés 21 Statut Membre
     
    Bonjour à tous,

    Cela marche nikel, bravo Le Pingou

    Merci encore à tous pour votre aide précieuse,

    Bonne journée
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. saintsylar
     
    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
    0