Bonjour j'ai deux macros dans lesquelles j'utilise la fonction WeekDay.
La première macro me donne pour cette fonction le résultat attendu, la seconde me renvoi l'erreur "Incompatibilité de Type"
Ce code fonctionne:
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 Sub Data_Date() Dim Act As Worksheet Dim Base As Worksheet Dim x As Variant Set Act = ThisWorkbook.Sheets("Actual") Set Base = ThisWorkbook.Sheets("Baseline") x = InputBox("Enter Data Date" & Chr(10) & " " & Chr(10) & "Use format dd/mm/yy", "NEW_DATA_DATE", "", vbOKCancel) If StrPtr(x) = 0 Then Exit Sub Else If x = "" Then MsgBox "Enter a valid date", , "WARNING" Else Equipment_Edit.ComboBox1.List = Act.Range("C9:C24").Value Milestone_Edit.Label1.Caption = Act.Range("F8").Value Milestone_Edit.Label2.Caption = Act.Range("G8").Value Milestone_Edit.Label3.Caption = Act.Range("H8").Value Milestone_Edit.Label4.Caption = Act.Range("I8").Value Milestone_Edit.Label5.Caption = Act.Range("J8").Value Milestone_Edit.Label6.Caption = Act.Range("K8").Value Milestone_Edit.Label7.Caption = Act.Range("L8").Value Milestone_Edit.Label8.Caption = Act.Range("M8").Value ThisWorkbook.Sheets("Actual").Range("C1") = Month(x) & "/" & Year(x) ThisWorkbook.Sheets("Actual").Range("D1") = Weekday(x) Base.Range("A2") = "" Act.Select Equipment_Edit.Show End If End If End Sub
Celui-ci ne fonctionne pas (L'erreur apparaît sur la ligne 12 en orange).
A noter que la valeur de ma cellule Data.Cells(5, 2) contient le nom du mois en texte:
Aurai zappé quelquechose d'important?
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 Dim Data As Worksheet Set Data = ThisWorkbook.Sheets("Data") Dim DateMois As Variant Dim DateX As Variant Dim i As Integer i = 0 DateMois = Data.Cells(5, i + 2) DateX = Data.Cells(6, i + 2) DateMois = Data.Cells(3, i + 2) & " " & Data.Cells(5, 2) & " " & Data.Cells(2, 3) DateX = Weekday(DateMois) If DateX = "1" Or DateX = "7" Then Cells(5, i + 2).Value = "x" Cells(5, i + 2).Interior.ColorIndex = 16 End If
Merci pour votre aide et vos conseils
Eric
Partager