FormulaR1C1

Résolu/Fermé
xszma Messages postés 7 Date d'inscription lundi 20 mai 2019 Statut Membre Dernière intervention 13 juin 2019 - Modifié le 4 juin 2019 à 17:15
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 4 juin 2019 à 17:08
Bonjour,

En ayant fait ma macro à la main, c'est-à-dire en enregistrant ma macro pas à pas, je me retrouve avec ce code à un moment donné :
 Range("AC2").Select
        ActiveCell.FormulaR1C1 = "=IF(AND(RC[-7]<>""#"",RC[-7]<>""Non OK""),RC[-7],RC[-2])"
        Selection.AutoFill Destination:=Range("AC2:AC" & (nombre_lignes))
        
        Range("AD2").Select
        ActiveCell.FormulaR1C1 = "=IF(AND(RC[-18]<>""#"",RC[-18]<>""Non OK""),RC[-18],RC[-2])"
        Selection.AutoFill Destination:=Range("AD2:AD" & (nombre_lignes))


je me demandais est ce qu'il n'y aurai pas une manière plus simple de l'écrire et comment s'il vous plait, car de plus en balayant les différents forums, les select m'ont l'air inutile, n'est ce pas ?
Etant débutant dans la programmation VBA, soyez indulgent s'il vous plaît !!

Merci d'avance de vos réponses.

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
4 juin 2019 à 17:08
Bonjour,
Si la feuille active est la bonne:
With Range("AC2")
    .FormulaR1C1 = "=IF(AND(RC[-7]<>""#"",RC[-7]<>""Non OK""),RC[-7],RC[-2])"
    .AutoFill Destination:=Range("AC2:AC" & (nombre_lignes))
End With
With Range("AD2")
    .FormulaR1C1 = "=IF(AND(RC[-18]<>""#"",RC[-18]<>""Non OK""),RC[-18],RC[-2])"
    .AutoFill Destination:=Range("AD2:AD" & (nombre_lignes))
End With
1