XL 2010 VBA - Insérer une formule pour certaines cellules

tchi456

XLDnaute Occasionnel
Bonjour,

J'ai des formules dans les cellules des colonnes M et T que je souhaiterais mettre dans un code VBA plutôt qu'inscrire dans chaque cellule.

Voici les formules en question:

Cellules de la colonne M: =SI(ET(L<>"";K<>"";L<>"");J*K*L;"")
Cellules de la colonne T: =SI(ET(S<>"";R<>"";S<>"");Q*R*S;"")

Avez-vous une astuce qui pourrait m'aider?

Mes meilleures salutations,

Thierry
 

job75

XLDnaute Barbatruc
Bonjour tchi456,

Pas très cohérentes vos formules : dans ET vous avez 2 fois L<>"" et S<>"".

Sinon il n'y a vraiment aucune astuce :
VB:
Sub Test()
[M2:M1000] = "=IF(AND(L2<>"""",K2<>""""),J2*K2*L2,"""")"
[T2:T1000] = "=IF(AND(S2<>"""",R2<>""""),Q2*K2*S2,"""")"
End Sub
A+
 

tchi456

XLDnaute Occasionnel
Bonjour Job75,

J'ai bien insérer votre formule ci-dessus mais rien ne s'inscrit dans dans les cellules des colonnes M et T.

[M7:M1000] = "=IF(AND(J7<>"";K7<>"",L7<>""),J7*K7*L7,"")"
[T7:T1000] = "=IF(AND(Q7<>"";R7<>"",S7<>""),Q7*R7*S7,"")"

Est-ce que ça change qqch de mettre 4 guillemets plutôt que 2?

Meilleures salutations,

Thierry
 

job75

XLDnaute Barbatruc
Bonjour tchi456, le forum,
Est-ce que ça change qqch de mettre 4 guillemets plutôt que 2?
Ben vous n'avez qu'à essayer !!!

Dans le fichier joint vos formules en notation R1C1 vont bien, celles-ci en notation A1 aussi :
VB:
Sub Test1()
    With Sheets("Test")
        .Range("M7:M1000") = "=IF(COUNTBLANK(J7:L7),"""",J7*K7*L7)"
        .Range("T7:T1000") = "=IF(COUNTBLANK(Q7:S7),"""",Q7*R7*S7)"
    End With
End Sub
Si vous ne connaissez pas renseignez-vous sur la fonction NB.VIDE (COUNTBLANK).

A+
 

Pièces jointes

  • Test(1).xlsm
    40.7 KB · Affichages: 1

tchi456

XLDnaute Occasionnel
Bonjour tchi456, le forum,

Ben vous n'avez qu'à essayer !!!

Dans le fichier joint vos formules en notation R1C1 vont bien, celles-ci en notation A1 aussi :
VB:
Sub Test1()
    With Sheets("Test")
        .Range("M7:M1000") = "=IF(COUNTBLANK(J7:L7),"""",J7*K7*L7)"
        .Range("T7:T1000") = "=IF(COUNTBLANK(Q7:S7),"""",Q7*R7*S7)"
    End With
End Sub
Si vous ne connaissez pas renseignez-vous sur la fonction NB.VIDE (COUNTBLANK).

A+
Bonjour Job75,

Si je comprends bien il pas possible de se passer de la formule dans les cellules.
 

Pièces jointes

  • Test(2).xlsm
    40.7 KB · Affichages: 4

Discussions similaires

Réponses
7
Affichages
494

Statistiques des forums

Discussions
314 628
Messages
2 111 337
Membres
111 105
dernier inscrit
Joffrette