• Initiateur de la discussion Initiateur de la discussion news
  • 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 !

news

XLDnaute Impliqué
Bonsoir à tous du forum,

VBA, copiez formule en B2:B, si C2:C <> ""

pour chaque ligne complétée en C2:C, s'inscrit la formule en B2:B,'=SI(C2="";"";SI(C2<>"";B1+1)),

la macro s'arrête à Range("B2") et ne continue pas à copier les autres lignes. 😱
Comment modifier la macro ci-dessous ?

Sub formule_ajouter_B2_B() '=SI(C2="";"";SI(C2>"";B1+1))
Dim plage As Range
Dim cn As Range
Application.ScreenUpdating = False

Sheets("data").Activate
Range("B1").Select
Selection.CurrentRegion.Select
Set plage = Range("B2:B" & Range("B65536").End(xlUp).Row)
For Each cn In plage
cn.FormulaR1C1 = "=IF(RC[1]="""","""",IF(RC[1]>"""",R[-1]C+1))"
Range("C20").Select
Next cn
End Sub
 

Pièces jointes

Dernière édition:
Re : VBA, copiez formule

Bonsoir,

essaie ce code (sans formule):
Code:
Sub formule_ajouter_B2_B()
' ==========================================
Dim lig As Byte
Dim cn As Range
Application.ScreenUpdating = False
Sheets("data").Activate
  lig = Range("B65536").End(xlUp).Row + 1
  For Each cn In Range("C2", Range("C65536").End(xlUp))
  If Not IsEmpty(Range("c" & lig)) Then 'And IsEmpty(Range("B" & lig)) Then
  Range("B" & lig) = lig - 1
  lig = lig + 1
  End If
  Next cn
End Sub
Amicalement
Dan
 
Re : VBA, copiez formule

bonsoir News

Sub formule_ajouter_B2_B()
' ==========================================
'Comment y mettre sous B2:B de chaque feuille un nombre ( B2=1, B3=2, B4=3, B5=4, B6 =5 )
'inclure cette formule dans la macro?, '=SI(C2="";"";SI(C2>"";B1+1))'référence circulaire

Dim plage As Range
Dim cn As Range
Application.ScreenUpdating = False

Sheets("data").Activate
'Range("B1").Select
'Selection.CurrentRegion.Select
Set plage = Range("B2:B" & Range("C65536").End(xlUp).Row)

For Each cn In plage
'=SI(C2="";"";SI(C2>"";1)), SI(C3="";"";SI(C3<>"";B2+1)) 'tel que référence circulaire
If cn.Row = 2 Then
cn.Formula = "=IF(C" & cn.Row & "<>"""",1,"""")"
Else
cn.Formula = "=IF(C" & cn.Row & "<>"""",1+B" & cn.Row - 1 & ","""")"
End If
Range("C20").Select
Next cn

End Sub
 
Re : VBA, copiez formule

Bonsoir à tous du forum,

merci Dan pour réponse,
merci Bebere, entre temps également donné réponse,

vos codes fonctionnent bien et met les valeurs dans la colonne B2:B,

merci encore et bonne soirée,
 
Dernière édition:
- 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

Réponses
7
Affichages
454
Retour