Menu

Conversion formule en VBA.. [Résolu]

julia Namor 416 Messages postés jeudi 27 mars 2014Date d'inscription 22 juin 2018 Dernière intervention - 5 sept. 2017 à 10:33 - Dernière réponse : ccm81 8490 Messages postés lundi 18 octobre 2010Date d'inscription 22 juin 2018 Dernière intervention
- 5 sept. 2017 à 15:55
Bonjour chers tous
une fois de plus je reviens solliciter votre aide.
Je souhaiterai convertir cette formule en VBA pour l'appliquer sur toute une colonne.
=SI($A3>DATE(C$1;12;31);"absent";SI($B3="";"present";SI(C$1<=ANNEE($B3);"present";"absent"))

Merci de votre aide
je vous lie le fichier
http://www.cjoint.com/c/GIfiBBTQxqN
Cordialement




Afficher la suite 

Votre réponse

4 réponses

ccm81 8490 Messages postés lundi 18 octobre 2010Date d'inscription 22 juin 2018 Dernière intervention - 5 sept. 2017 à 15:33
0
Merci
Bonjour

http://www.cjoint.com/c/GIfnGHaCrDB

Cdlmnt
Commenter la réponse de ccm81
Patrice33740 6982 Messages postés dimanche 13 juin 2010Date d'inscription 22 juin 2018 Dernière intervention - 5 sept. 2017 à 15:35
0
Merci
Bonjour,

Pour recopier la formule depuis C2 vers C1000 :
With Worksheets("Feuil1")
  .Range("C2").AutoFill Destination:=.Range("C2:C1000")
End With 

Ou pour l'écrire directement :
Worksheets("Feuil1").Range("C2:C1000").FormulaR1C1 = _
  "=IF(RC1>DATE(R1C,12,31),""absent"",IF(RC2="""",""present""," & _
  "IF(R1C<=YEAR(RC2),""present"",""absent"")))"

Commenter la réponse de Patrice33740
julia Namor 416 Messages postés jeudi 27 mars 2014Date d'inscription 22 juin 2018 Dernière intervention - 5 sept. 2017 à 15:50
0
Merci
Bonjour

C'est tout ce qu'il me fallait Ça frôle la perfection mon cher ccm81.
Reste plus qu'a l'adapter a mon travail.
Merci Patrice , mais mon souhait n'était pas de "coller" les formules par VBA.

Bien merci à vous deux .

Bien cordialement
Commenter la réponse de julia Namor
ccm81 8490 Messages postés lundi 18 octobre 2010Date d'inscription 22 juin 2018 Dernière intervention - Modifié par ccm81 le 5/09/2017 à 16:01
0
Merci
De rien

Si tu as beaucoup de lignes, tu peux ajouter un
Application.ScreenUpdating = False
en début de code (après les déclarations de variables)

Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

Cdlmnt
Commenter la réponse de ccm81