VBA_ Etirer une formule vers la droite

Bonjour à tous ,

J'ai besoin de votre aide, j'aimerais étirer les formules contenues sur la colonne D jusqu'à la dernière colonne non vide de la ligne d'en tête.
J'ai trouvé la réponse de DAN à ce sujet mais elle ne concerne qu'une ligne et à par répéter cette macro autant fois que de ligne à étirer je ne trouve pas comment définir une plage.

Vous trouverez ci dessous le code et en PJ le fichier :

Sub Extension_formule()

Dim col As Byte, dcol As Byte
col = Cells(8, Columns.Count).End(xlToLeft).Column - 1
dcol = Cells(3, Columns.Count).End(xlToLeft).Column
Cells(8, col).AutoFill Destination:=Range(Cells(8, col), Cells(8, dcol)), Type:=xlFillDefault

End Sub
 
8test-formule.xlsm (13.42 Ko)

Merci pour votre aide !

Bonne journée à tous

A !

Nb: j'utilise le code ci dessous pour le faire de manière verticale et cela fonctionne bien

'Etend les formules de la colonne A et C  jusqu’à la dernière ligne de la colonne B 

Sub Extension_formule()
Dim DernLigne As Long

DernLigne = Range("B" & Rows.Count).End(xlUp).Row
Range("A2").AutoFill Destination:=Range("A2:A" & DernLigne)
Range("C2").AutoFill Destination:=Range("C2:C" & DernLigne)

End Sub

Bonjour,

Essayez ceci, les formules sont créées pour les lignes 8, 9 et 10 et jusqu'à la dernière colonne utile.

Sub Extension_formule()
    Dim Dcol As Byte
    Dcol = Cells(4, Columns.Count).End(xlToLeft).Column
    Range(Cells(8, 2), Cells(8, Dcol)).FormulaR1C1 = "=R[-4]C+R[-3]C/2" 'Somme
    Range(Cells(9, 2), Cells(9, Dcol)).FormulaR1C1 = "=R[-5]C+R[-4]C" 'Moyenne
    Range(Cells(10, 2), Cells(10, Dcol)).FormulaR1C1 = "=R[-6]C-R[-5]C" 'Différence
End Sub

Cdlt

Bonjour Arthuro83,

Merci pour votre retour, la formule fonctionne merci :)

Je voulais éviter de mettre la formule dans le code mais plutôt récupérer la valeur de la colonne , car là c'est une formule mais ça pourrait être une valeur ou autre et il y a de nombreuses lignes .

En attendant je vais utiliser votre code merci

A

votre demande initiale:

j'aimerais étirer les formules contenues sur la colonne D jusqu'à la dernière colonne non vide de la ligne d'en tête.

et maintenant:

Je voulais éviter de mettre la formule dans le code mais plutôt récupérer la valeur de la colonne , car là c'est une formule mais ça pourrait être une valeur ou autre et il y a de nombreuses lignes .

N'est-ce pas un peu contradictoire? sinon, dans ce cas ajoutez cette ligne à la fin:

    Range(Cells(10, 2), Cells(10, Dcol)).Value = Range(Cells(10, 2), Cells(10, Dcol)).Value

elle transforme les formules en valeurs

Cdlt

Oui désolée si je me suis mal exprimée ce que je voulais dire c'est que je souhaitais récupérer l'information contenue dans la colonne D , et la tirer jusqu'à la dernière colonne non vide de la ligne d'en tête. Peu importe le type d'information ( formule , valeur etc.) sur le même principe que le code que j'utilise pour tirer les formules des colonnes.

Merci pour votre aide .

A

Alors ceci:

Sub Extension_formule()
    Dim DerLig As Long, DerCol As Long
    DerCol = Cells(3, Columns.Count).End(xlToLeft).Column 'on recherche la dernière colonne de la ligne 3
    DerLig = Range("D" & Rows.Count).End(xlUp).Row 'on recherche la dernière ligne de la colonne D
    Range(Cells(4, "D"), Cells(DerLig, "D")).Copy Destination:=Range(Cells(4, 5), Cells(DerLig, DerCol))' on copie la colonne D sur les autres colonnes
End Sub

Ce code est parfait ! merci pour ton aide et le temps que tu as pris pour moi !

Bonne soirée !

A.

Rechercher des sujets similaires à "vba etirer formule droite"