Insérer une formule dans une colonne en VBA

  • Initiateur de la discussion Initiateur de la discussion BChaly
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

BChaly

XLDnaute Occasionnel
Bonsoir à tous,

Dans une colonne ("A3:A8"), je souhaite insérer les formules suivantes en VBA:

en "A3" ---> =IF(C$2="A";1;0)
en "A4" ---> =IF(D$2="A";1;0)
en "A5" ---> =IF(E$2="A";1;0) ......

Avec le code suivant seule la cellule "C$2" est prise en compte. Comment puis-je modifier ceci?

Merci pour votre aide

Cordialement

BChaly

Code:
Option Explicit

Sub Test()
    
Dim Rge As String
Dim Cell As Range

Rge = "A3:A8"

For Each Cell In Sheets("Recap").Range(Rge)
    Cell.FormulaR1C1 = "=IF(R2C[2]=""A"",1,0)"
Next

End Sub
 

Pièces jointes

Re : Insérer une formule dans une colonne en VBA

Bonjour BChaly, le forum,

Si le nombre d'éléments en ligne 2 est variable, on peut faire ceci :

Code:
Sub Test()
Dim h%, cel As Range
With Sheets("Recap") 'With Sheet1 'CodeName
  h = .Cells(2, .Columns.Count).End(xlToLeft).Column - 2
  Set cel = .[A3] 'cellule de restitution
End With
If h > 0 Then _
  cel.Resize(h).Formula = "=--(OFFSET(C$2,,ROW()-" & cel.Row & ")=""A"")"
cel.Offset(IIf(h > 0, h, 0)).Resize(20000).ClearContents
End Sub
A+
 
Dernière édition:
Re : Insérer une formule dans une colonne en VBA

Re,

Avec une macro évènementielle dans la feuille Recap :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C2", Cells(2, Columns.Count))) Is Nothing Then
  Dim h%, cel As Range
  h = Cells(2, Columns.Count).End(xlToLeft).Column - 2
  Set cel = [A3] 'cellule de restitution
  If h > 0 Then
    cel.Resize(h).Formula = "=--(OFFSET(C$2,,ROW()-" & cel.Row & ")=""A"")"
    'cel.Resize(h) = cel.Resize(h).Value 'facultatif, supprime les formules
  End If
  cel.Offset(IIf(h > 0, h, 0)).Resize(20000).ClearContents
End If
End Sub
Fichier joint.

A+
 

Pièces jointes

Re : Insérer une formule dans une colonne en VBA

Bonsoir job75,

Merci pour la solution,
Merci pour avoir répondu à une heure aussi tardive,
Merci pour avoir fourni 3 possibilités qui fonctionnent à merveille!

C'est ce que je cherchais.

Bon week-end.

Cordialement.

BChaly
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour