Convertire formule en vba

Ilino

XLDnaute Barbatruc
Bonjour Forum
je cherche a convertir ce code en VBA

Code:
=CONCATENER("Activitées de la semaine N° ";ENT((K1-SOMME(MOD(DATE(ANNEE(K1-MOD(K1-2;7)+3);1;2);{1E+99;7})*{1;-1})+5)/7);" de l'année ";ANNEE(K1))
nota: dans la cellule K1: la formule AUJOURDHUI()
MERCI PAR AVANCE
 

MJ13

XLDnaute Barbatruc
Re : Convertire formule en vba

Re

Sinon, testé sur Xl2010, oK. Après, peut-être un problème de version :confused:.

Code:
Sub test()
With Cells(1, 11): .Value = Date: .Font.ColorIndex = 2: End With  'si tu ne veux pas voir la date du jour
'formule = "=CONCATENER(""Hebdomadaire N° "" &"" ""& ENT(MOD(ENT((K1-2)/7)+0.6;52+5/28))+1) &"" Année: ""& ANNEE(K1)"
Cells(5, 1).FormulaR1C1 = _
        "=CONCATENATE(""Activitées de la semaine N° "",INT((R1C11-SUM(MOD(DATE(YEAR(R1C11-MOD(R1C11-2,7)+3),1,2),{1E+99;7})*{1;-1})+5)/7),"" de l'année "",YEAR(R1C11))"
End Sub
 

Ilino

XLDnaute Barbatruc
Re : Convertire formule en vba

Bonjour Pier rejean , bonjour tous le monde

Super , mnt ça fonctionne …mais si vous pemettez y a-t-il une autre possibilité de
1. masquer la formule
2. lancer cette MACRO automatique
Gracie par avance
 

pierrejean

XLDnaute Barbatruc
Re : Convertire formule en vba

Re

Qu'entends-tu par masquer la formule ?
Si tu veux n'avoir que le resultat je ne crois pas que ce soit possible
Si par contre tu veux que le resultat soit figé (et non plus dependant d'AUJOURDHUI ) c'est possible
Enfin par quoi doit etre lancée la macro ????
 

Lone-wolf

XLDnaute Barbatruc
Re : Convertire formule en vba

Bonsoir à tous,

@Ilino: tout en VBA.


Code:
Sub test2()
Dim numsem As Long
dte = Format(Date, "yyyy")
numsem = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
dt = Int((d1 - numsem + Weekday(numsem) + 5) / 7)  - 1
Range("a1").Value = "Activitées de la semaine N° " & dt & "  de l' année  " & dte
End Sub

Très bonne soirée :cool:
 
Dernière édition:

Ilino

XLDnaute Barbatruc
Re : Convertire formule en vba

Bonsoir à tous,

@Ilino: tout en VBA.


Code:
Sub test2()
Dim numsem As Long
dte = Format(Date, "yyyy")
numsem = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
dt = Int((d1 - numsem + Weekday(numsem) + 5) / 7)  - 1
Range("a1").Value = "Activitées de la semaine N° " & dt & "  de l' année  " & dte
End Sub

Très bonne soirée :cool:
Re sorry pour le retard..
apres avoir executer le Macro ...un message affiché " variable non definé " je pense "dte"?
 

Ilino

XLDnaute Barbatruc
Re : Convertire formule en vba

Re Bonsoir
@ lone-wolf : ca fonctionne mnt mais si je sup le texte dans la cellule A1 je suis obligé de relancer le Macro?
et j'ai constaté que le num de la semaine ne fonctionne pas
 
Dernière édition:

Ilino

XLDnaute Barbatruc
Re : Convertire formule en vba

RE BONSOIR LONE WOLF
oui bien sure ...mais est ce que il y a une possibilité de la mettre automatique ( a la limite au demmarge du fichier par exemple )

eDIT :
Code:
Private Sub Workbook_Open()
Dim numsem As Long
dte = Format(Date, "yyyy")
numsem = DateSerial(Year(d1 - Weekday(d1 - 1) + 4), 1, 3)
dt = Int((d1 - numsem + Weekday(numsem) + 5) / 7) - 1
Range("A3").Value = "Activitées de la semaine N° " & dt & "  de l' année  " & dte
End Sub
ça fonctionne au démarge mais il reste tj la mise ajour du Num de la semaine ???
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Convertire formule en vba

Ilino,

on ne peux pas changer du numéro de semaine comme ça. Celui-ci se met à jour pour chaque nouvelle semaine. Maintenant, si tu veux qu'il y aie un incrémentation (51 - 52 - 53 etc.), il faut s'y prendre autrement.


A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : Convertire formule en vba

Re Ilino,

fait un essai avec cette macro.

Code:
Sub test()
Dim Madate, num&, dte
Madate = #12/17/2012# 
dte = Format(Date, "yyyy")
num = 51
If Date > Madate Then
num = num + 1
End If
Range("A3").Value = "Activitées de la semaine N° " & num & "  de l' année  " & dte
End Sub



A+ :cool:
 
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Convertire formule en vba

Bonjour Ilino,

une autre façon de faire

Code:
Private Sub Workbook_Open()
Dim dte, num As Integer
dte = Format(Date, "yyyy")
Range("z1").Value = Range("z1").Value + 1
Range("a3").Value = "Activitées de la semaine N° " & _
Range("z1").Value & "  de l' année  " & dte
End Sub


A+ :cool:
 

Discussions similaires

Réponses
4
Affichages
207

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou