Bonjour,
je suis confronté à un pbl sous excel/vba.
sous vba j'ai créé un tableau qui retourne chaque jour en fonction d'un mois et d'une année donnés.
je transfère ensuite ce tableau sur une feuille de calcul, rien de bien compliqué jusque là, mais le résultat ne correspond pas vraiment à mes attentes...
à partir du code ci-dessous, vous allez vous rendre compte du pbl que je rencontre...
si qq'un pouvait m'aider à résoudre et comprendre le souci...
ce serait bien cool! merci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Option Explicit
Option Base 1
 
Sub créerMois()
 
Dim Mydate As Date
Dim TableMonth() As String
Dim Mytab() As String
 
 
'Dim ListMois(12) As String
Dim NumMois As Integer
Dim annee As Integer
Dim nbrejours As Integer
 
Dim i As Integer
'Dim j As Integer
'Dim x As Integer
'Dim y As Integer
'Dim n As Integer
'Dim m As String
 
 
'parametrage du mois de travail
    'NumMois = InputBox("quel mois (nbre entre 1&12)")
    'annee = InputBox("quelle année")
    'Mydate = DateSerial(annee, NumMois, 1)
    'nbrejours = Day(DateSerial(annee, NumMois + 1, 0))
'code pour calcul nbrejours d'un mois et d'une annee donnés : Day (DateSerial(annee, NumMois + 1, 0))
 
i = 1
'parametrage par defaut au 1 fevrier 2016
Mydate = DateSerial("2016", "2", i) 'Date travaillée
nbrejours = Day(DateSerial("2016", "3", "0")) 'retourne le nbre de jours du mois travaillé Day(dateserial(annee, nummois + 1, 0)
 
'TESTS retourne le premier jour du mois de l'année travaillée et le nbre de jours que contient ce mois
MsgBox ("le 1er jour du mois de travail utilisé est " & Mydate)
MsgBox ("le nombre de jours de ce mois est de " & nbrejours)
 
 
Range("B1").Value = Mydate
 
'TRANSFERT D'UN TABLEAU sur excel
 
ReDim Mytab(1 To nbrejours)
For i = 1 To nbrejours
    'Paramètres par défaut sans saisie
    Mytab(i) = DateSerial("2016", "2", i)
    'Paramètres avec implémentation des variables 'Mytab(i) = DateSerial(annee, NumMois, i)
Next i
 
 
'transfère le tableau sur la feuille excel en colonne
Range(("A3"), Cells(UBound(Mytab) + 2, 1)).Value = Application.WorksheetFunction.Transpose(Mytab)
End Sub