OVH Cloud OVH Cloud

Copier une formule si certaines cellules ne sont pas vides

11 réponses
Avatar
Pascal
Bonjour,

J'ai une formule en A5. En VBA, je souhaiterai copier cette formule dans les
cellules en dessous (à partir de A6) tant que les cellules des lignes
correspondantes de la colonne D se sont pas vides.
Autrement dit :
D6 n'est pas vide alors copie en A6
D7 n'est pas vide alors copie en A7
D8 est vide : on s'arrête !
Le nombre de cellules remplies dans la colonne D est variable...

Merci d'avance.
--
PB

1 réponse

1 2
Avatar
G.W.
For i = 7 To Range("D7:D20") ne marche pas parce que i est un compteur :
compter de 7 à ?? ( Range("D7:D20") ne renvoie pas un nombre mais une
plage de cellules )

Bonne soirée



"Pascal" a écrit dans le message news:

Effectivement votre macro marche bien !

J'avais modifié la formule avec For i = 7 To Range("D7:D20") et là
bizarrement ça ne marche pas !?

J'ai repris votre macro et ajouté "Else Exit For" à la fin de
l'instruction

"If Not" pour ne pas traiter toute la colonne : c'est parfait. Mon
problème

est résolu

Encore merci et bonne soirée !
--
PB



Ceci fonctionne bien chez moi ( recopie de la cellule du dessus )

Sub essai()
If ActiveCell.Column = 1 Then
For i = ActiveCell.Row To
Range("D:D").SpecialCells(xlCellTypeLastCell).Row
If Not IsEmpty(Range("D" & i).Value) Then Range("A" & i).FormulaR1C1
Range("A" & (i - 1)).FormulaR1C1
Next i
End If
End Sub

Si ça ne fonctionne pas il faudrait comparer la formule initiale à
recopier


( exemple = somme(.....) ) dans la cellule au dessus de la cellule
active


et quelle est la formule recopiée par la macro ( dans la cellule active
lors


du lancement de la macro )



"Pascal" a écrit dans le message
news:



Désolé mais c'est pire !
La formule est copiée une fois avec les références de cellules
entourées



de
' et génère #NOM ? puis erreur 1004 !

Merci pour votre persévérance !

--
PB



Petite erreur
Il faut remplacer les " Formula " par des " FormulaR1C1 "

"Pascal" a écrit dans le message
news:



Ok pour la prise en compte de la cellule active mais je viens de
m'apercevoir

que la formule recopiée ne prend pas en compte le changement de
ligne





:
les
références des formules écrites en A6, A7... sont identiques à
celles





de
A5 !
J'ai donc une copie exacte de A5 et non un calcul basé sur les
lignes





6,
7...
Je n'utilise pas de $ dans la formule en A5...

Quelle modification apporter ?

















1 2