Une macro par mois

rigaf45 -  
 rigaf45 -
Bonjour,

Je voudrais savoir s'il est possible de changer la date automatiquement dés qu'on utilise une macro pour une autre fonction. Cette macro n'est éxécutable que tous les 1 er du mois.

Merci d'avance

Cordialement
A voir également:

3 réponses

rigaf45
 
En fait si possible un code vba s'il vous plait.
1
m@rina Messages postés 23933 Date d'inscription   Statut Contributeur Dernière intervention   11 465
 
Bonjour,

C'est probablement possible, mais avec aussi peu d'informations, on ne peut guère te répondre précisément...

m@rina
0
rigaf45
 
Sub Enregistrement()


Dim balise As Boolean
Dim nbre As Integer, nbre2 As Integer, j As Integer, K As Integer, reponse As Integer
Dim wsEDM As Worksheet, wsSF As Worksheet, wsDM As Worksheet, wsLF As Worksheet, wsEM As Worksheet
Dim liste As Range
Dim valeur As Variant

Set wsEM = Workbooks("Enregistrement du mois").Worksheets("feuil2")
Set wsSF = Workbooks("Liste fournisseurs_test mdb").Worksheets("Feuil2")
Set wsEDM = ThisWorkbook.Worksheets("Enregistrement_du_mois")
Set wsDM = ThisWorkbook.Worksheets("Dernier Mois")
Set wsLF = ThisWorkbook.Worksheets("Liste fournisseur")


wsEDM.Cells.ClearContents
wsDM.Activate
Cells.Select
Range("K1").Activate
Selection.Copy
wsEDM.Activate
Range("A1").Select
ActiveSheet.Paste

'nbre = wsF.Cells(Rows.Count, 2).End(xlUp).Row - 1
'nbre2 = wsSF.Cells(Rows.Count, 1).End(xlUp).Row - 1
'
'For i = 1 To nbre2
' balise = False
' For j = 1 To nbre
' If wsSF.Cells(i + 1, 1).Value = wsF.Cells(j + 1, 2).Value Then balise = True
' Next j
'Next i

Application.ScreenUpdating = False

'Calcul du nombre de fournisseurs
nbre = wsLF.Cells(Rows.Count, 2).End(xlUp).Row - 1
Set liste = wsLF.Cells(2, 2).Resize(nbre, 3)

'Création du nom de la plage de cellule des fournisseurs
ThisWorkbook.Names.Add Name:="liste", RefersToR1C1:=liste

'Calcul du nombre de cadence du mois
nbre = wsEDM.Cells(Rows.Count, 1).End(xlUp).Row - 1

'''''Filtre fournisseurs'''''
'Calcul intermédiaire des valeurs de RechercheV
wsEDM.Cells(2, 17).Resize(nbre, 1).FormulaR1C1 = "=VLOOKUP(RC[-15],liste,1,0)"

'Tri des cadences en fonction du résultat de la RechercheV
wsEDM.Cells(2, 1).Resize(nbre, 17).Sort Key1:=Range("Q2"), Order1:=xlAscending

'Calcul du nombre de fournisseurs hors contexte
nbre2 = WorksheetFunction.CountIf(wsEDM.Cells(2, 17).Resize(nbre, 1), "=#N/A")

'Suppression des cadences hors contexte
wsEDM.Cells(nbre - nbre2 + 2, 1).Resize(nbre2, 19).Delete Shift:=xlUp

'Suppression de la colonne des RechercheV
wsEDM.Columns(17).Delete

'stockage du nombre de cadence dans la variable nbre
nbre = nbre2


'Création de la colonne "Code Unique" et concaténation des codes
wsEDM.Columns(17).Insert Shift:=xlToRight
wsEDM.Cells(1, 17).Value = "Code Unique"
Range("Q2").Select
ActiveCell.FormulaR1C1 = "=CONCATENER(D2;E2;F2)"
Range("Q2").Select
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-13],RC[-12],RC[-11])"
Columns("Q:Q").Select
Selection.NumberFormat = "General"
Range("Q2").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[-13],RC[-12],RC[-11])"
Range("Q2").Select
Selection.Copy
Range(Selection, Selection.End(xlDown)).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-6

'tri des données par ordre décroissant de date de réception
wsEDM.Cells(2, 1).Resize(nbre, 17).Sort Key1:=Range("Q2"), Order1:=xlDescending

'Calcul intermédiaire des valeurs de RechercheV
wsEDM.Cells(2, 18).Resize(nbre, 1).FormulaR1C1 = "=VLOOKUP(RC[-16],liste,3,0)"

wsEDM.Cells(2, 19).Resize(nbre, 1).FormulaR1C1 = "month(RC[-11])"

'Tri des cadences en fonction du résultat de la RechercheV
wsEDM.Cells(2, 1).Resize(nbre, 18).Sort Key1:=Range("R2"), Order1:=xlAscending

'Suppression des cadences hors contexte
nbre2 = WorksheetFunction.CountIf(wsEDM.Cells(2, 18).Resize(nbre, 1), "=#N/A")
wsEDM.Cells(nbre - nbre2 + 2, 1).Resize(nbre, 19).Delete Shift:=xlUp

End Sub

Ce code tourne une fois par mois donc le 1er jour qu'il sera lancé sera le 03/06, la seconde fois est le mois d'aprés et ainsi de suite
0