XL 2010 VBA - Tirer une formule (si il y a une formule dans la cellule!)

alex53

XLDnaute Junior
Bonjour à tous,

J'ai fais pas mal de recherche sur le forum mais je ne trouve pas la réponse.

Alors voici mon problème:
J'ai un fichier avec des données et dans les dernières colonnes il y a un certain nombres de formule qui par défaut ne sont que sur la ligne2.
Pour simplifier, dans mon cas le nombre de ligne varie et le nombre de colonnes avec des formules varie aussi.
Donc j'aimerais bien dire la chose suivante en VBA:
"Si il y a une formule dans la cellule B2, alors tirer la formule, si il y a une formule dans la cellule C2, alors tirer la formule, si il y a une formule dans la cellule D2 alors tirer la formule etc....)

Voici ce que j'ai fait qui ne marche pas bien sûr!

VB:
Sub Macro_Test()
Dim LastRow As Long
Dim LastColumn As Long
Dim i As Long

LastRow = Sheets("test").Cells(Rows.Count, 1).End(xlUp).Row
LastColumn = Sheets("test").Cells(1, Columns.Count).End(xlToLeft).Column

For i = 1 To LastColumn

If Sheets("test").Cells(2, i).HasFormula Then

Range("i2:i" & LastRow).FillDown

End If

Next i
End Sub


Pour info voici un autre code qui marche bien , mais qui est incomplet car je suis obligé de modifier à chaque fois la formule si ma formule est dans une colonne différente


Code:
Sub Macro_Test2()
Dim LastRow As Long

LastRow = Sheets("test").Cells(Rows.Count, 1).End(xlUp).Row

Range("N2:N" & LastRow).FillDown
End Sub


Ci-joint le fichier de test que j'utilise.

D'avance merci pour votre aide!

Alexandre
 

Pièces jointes

  • Test Macro 2.xlsm
    23.5 KB · Affichages: 5

Staple1600

XLDnaute Barbatruc
Re

En reprenant une tes macros, avec une petite modif, est-ce que c'est mieux?
VB:
Sub Test()
Dim x&, z&
x = Cells(1).CurrentRegion.Columns.Count
z = Cells(Rows.Count, 1).End(3).Row
For i = 1 To x
If Cells(2, i).HasFormula Then
Range(Cells(2, i), Cells(z, i)).Formula = Cells(2, i).Formula
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
315 095
Messages
2 116 159
Membres
112 673
dernier inscrit
ìntellisoft