Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA - Étirer formule vers le bas = F2+Enter

Fredox

XLDnaute Occasionnel
Bonjour,
J'ai mis en place ces formules pour étirer vers le bas les formules présentes en ligne 6, entre Q et V.
Si étendre le formule à bien fonctionné, en revanche il affiche le résultat de la ligne 6 dans toutes les lignes suivantes.
Je suis obligé de revalider chaques cellules (F2+Enter) pour que le bon résultat s'affiche.

Y aurait-il une solution pour directement avoir mon résultat ?

Code:
Range("Q6:Q" & Range("c65536").End(xlUp).Row).Value = Range("Q6").Formula
Range("R6:R" & Range("c65536").End(xlUp).Row).Value = Range("R6").Formula
Range("S6:S" & Range("c65536").End(xlUp).Row).Value = Range("S6").Formula
Range("T6:T" & Range("c65536").End(xlUp).Row).Value = Range("T6").Formula
Range("U6:U" & Range("c65536").End(xlUp).Row).Value = Range("U6").Formula
Range("V6:V" & Range("c65536").End(xlUp).Row).Value = Range("V6").Formula


Merci
 

Staple1600

XLDnaute Barbatruc
Bonjour

Deux façons de faire
VB:
Sub test()
Dim formule As String
formule = "=ROW()*COLUMN()"
Range("Q6:Q" & Cells(Rows.Count, 3).End(xlUp).Row).Formula = "=ROW()*COLUMN()"
Range("R6:R" & Cells(Rows.Count, 3).End(xlUp).Row).Formula = formule
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Ci-dessous autre exemple
(à tester sur une feuille vierge)
VB:
Sub test2()
Dim Derlig As Long ' ce qui sert
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
'les lignes ci-dessous ne servent qu'à insérer des formules pour test
Range("C6:C17") = 1
Range("Q6:V6") = Array("=NOW()+RAND()", "=INT(ROW()*PI())", "=INT(COLUMN()/PI())*ROW()", "=4*2*5*10*2*2", "=LOG(ROW())", "=ROW()*2")
'////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Derlig = Range("c65536").End(xlUp).Row ' ce qui sert
Range("Q6:V" & Derlig).FillDown 'ce qui sert
End Sub
 

Fredox

XLDnaute Occasionnel
Bonjour Staple1600,
Je viens de tester la deuxième version, le problème reste le même, il étire bien la formule mais affiche le contenu identique à la cellule étirée. Une fois fait F2+Enter, le bon résultat s'affiche.
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, Fredox

•>Fredox
Regardes dans tes Options Excel, si Calcul Automatique est bien coché.

Sur mon PC, le code que je t'ai proposé fonctionne
(sinon je ne l'aurai pas posté sur le forum... )
 

Fredox

XLDnaute Occasionnel
Staple1600,

Pour la version 1 le résultat ne correspond pas puisque la formule n'est pas la bonne.
En revanche c'est peut-être une bonne piste, au lieu d'étirer la formule est-ce que je peux la ressaisir ?

Ma formule originale est: " =si(et(N6=100%);H6="OK";L6;"") "
Comment remplacer les N, H et L par dernLigne ?

Merci encore.
 

Staple1600

XLDnaute Barbatruc
Re

Comme j'ai pris le temps de refaire un exemple
(plutôt que de jeter, je poste)
VB:
Sub Test_3()
Dim Derlig As Long
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = False
Randomize 1600
Rows("7:777").Clear
Range("C6:C" & Application.RandBetween(16, 27)) = "=""Staple""&1600+ROW()"
Range("Q6:V6") = Array("=INT(RAND()*1600)", "=INT(ROW()*PI())", "=INT(COLUMN()/PI())*ROW()", "=4*2*5*10*2*2", "=LOG(ROW())", "=ROW()*2")
Derlig = Cells(Rows.Count, 3).End(xlUp).Row
Range("Q6:V" & Derlig).FillDown
[Q6].CurrentRegion.Columns.AutoFit
Cells(Derlig, 3).Font.Bold = -1
Rows(Derlig).SpecialCells(xlCellTypeFormulas, 3).Interior.Color = vbYellow
End Sub
PS: Regarde la ligne qui pourra te servir concernant le calcul automatique.

Freedox à dit:
Pour la version 1 le résultat ne correspond pas puisque la formule n'est pas la bonne.
NB: Les codes que je t'ai proposés (en prenant soin de le préciser) ne sont que des codes de test.
Donc à tester sur une feuille vierge.
 

Staple1600

XLDnaute Barbatruc
Re

•>Freedox
C'est dingue que mes messages ne soient pas lu attentivement.

Epuisé à force de répéter¸ Staple¸ le teint blême à dit:
NB: Les codes que je t'ai proposés (en prenant soin de le préciser) ne sont que des codes de test.
Donc à tester sur une feuille vierge.
Ce qui veut dire que leur seule utilité est illustrative et/ou "pédagogique".
Ni plus, ni moins.
 

Discussions similaires

Réponses
7
Affichages
528
Réponses
7
Affichages
686
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…