Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie a
écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie Giltaire@discussions.microsoft.com> a
écrit dans le message de news:
6155D72D-88F7-493D-9E04-9D1B400F2EE2@microsoft.com...
Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie a
écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas
aimer
"target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de
cellules
sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et
la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter
selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne
peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et des
fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M",
"BO1P",
"BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M",
"BO2P",
"BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un week-end
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour
férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) > test.Value(j, 1) Then
.Interior.ColorIndex > Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 =
0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon les
horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent pas se
colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si elles
sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2, InStr(2,
Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la couleur
adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R", "BO1*M",
"BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R", "BO2*M",
"BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) > test.Value(i, 1) Then
.Interior.ColorIndex > Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 =
0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la cellule en
évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et la
saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End SubBonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie a
écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du
passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation
de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas
aimer
"target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de
cellules
sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et
la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter
selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne
peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et des
fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M",
"BO1P",
"BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M",
"BO2P",
"BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un week-end
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour
férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) > test.Value(j, 1) Then
.Interior.ColorIndex > Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 =
0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon les
horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent pas se
colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si elles
sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2, InStr(2,
Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la couleur
adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R", "BO1*M",
"BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R", "BO2*M",
"BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) > test.Value(i, 1) Then
.Interior.ColorIndex > Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 =
0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la cellule en
évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et la
saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End Sub
Bonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie Giltaire@discussions.microsoft.com> a
écrit dans le message de news:
6155D72D-88F7-493D-9E04-9D1B400F2EE2@microsoft.com...
Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du
passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation
de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas
aimer
"target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de
cellules
sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et
la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter
selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne
peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et des
fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M",
"BO1P",
"BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M",
"BO2P",
"BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un week-end
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour
férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) > test.Value(j, 1) Then
.Interior.ColorIndex > Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 =
0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon les
horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent pas se
colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si elles
sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2, InStr(2,
Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la couleur
adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R", "BO1*M",
"BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R", "BO2*M",
"BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) > test.Value(i, 1) Then
.Interior.ColorIndex > Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 =
0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la cellule en
évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et la
saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End SubBonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie a
écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du
passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation
de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
For i = 1 To UBound(target.Value, 2)
For i = 1 To application.worksheetfunction.max(target.Value, 2)
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas aimer
"target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de cellules
sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et
la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter
selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et des
fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M", "BO1P",
"BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M", "BO2P",
"BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un week-end
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(j, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 = 0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon les
horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent pas se
colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si elles
sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2, InStr(2,
Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la couleur
adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R", "BO1*M",
"BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R", "BO2*M",
"BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(i, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 = 0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la cellule en
évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et la
saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End SubBonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie a
écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
For i = 1 To UBound(target.Value, 2)
For i = 1 To application.worksheetfunction.max(target.Value, 2)
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas aimer
"target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de cellules
sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et
la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter
selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et des
fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M", "BO1P",
"BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M", "BO2P",
"BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un week-end
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(j, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 = 0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon les
horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent pas se
colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si elles
sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2, InStr(2,
Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la couleur
adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R", "BO1*M",
"BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R", "BO2*M",
"BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(i, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 = 0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la cellule en
évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et la
saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End Sub
Bonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie Giltaire@discussions.microsoft.com> a
écrit dans le message de news:
6155D72D-88F7-493D-9E04-9D1B400F2EE2@microsoft.com...
Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
For i = 1 To UBound(target.Value, 2)
For i = 1 To application.worksheetfunction.max(target.Value, 2)
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas aimer
"target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de cellules
sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et
la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter
selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et des
fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M", "BO1P",
"BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M", "BO2P",
"BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un week-end
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(j, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 = 0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon les
horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent pas se
colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si elles
sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2, InStr(2,
Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la couleur
adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP", "ANP",
"AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP", "CNP",
"CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP", "aNP",
"aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP", "cNP",
"cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP", "BNP",
"BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M", "B*P",
"B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP", "bNP",
"bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R", "BO1*M",
"BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R", "BO2*M",
"BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP", "DNP",
"DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP", "dNP",
"dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP", "HNP",
"HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP", "SNP",
"SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP", "sNP",
"sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP", "FNP",
"FCA2", "F*", _
"G", "GE", "GR", "GM", "GP", "GNP",
"GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP", "LNP",
"LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP", "KNP",
"KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M", "Q1P",
"Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M", "Q2P",
"Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex = Sheets("Fériés
2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7 Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(i, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And target.Column
<= 39 Then
If (Val(target.Row) - 6) Mod 12 = 0
Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la cellule en
évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil" et la
saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End SubBonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie a
écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonsoir,
Quel est le but de ceci ?For i = 1 To UBound(target.Value, 2)
L'usage le plus courant de ubound est :
dim tablo
redim tablo(2)
ubound(tablo) est alors égal à 2 (la plus dimension de tablo).
Si tu cherches à avoir au moins 2 pour target.value, vois du coté deFor i = 1 To application.worksheetfunction.max(target.Value, 2)
@+
FxM (qui passe)Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas
aimer "target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de
cellules sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre
"Réveil" et la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à
adapter selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne
peuvent pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et
des fériés
'pour ne pas changer la couleur de ces
cellules si elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address,
2, InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer
la couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP",
"ANP", "AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP",
"CNP", "CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP",
"aNP", "aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP",
"cNP", "cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP",
"BNP", "BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M",
"B*P", "B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP",
"bNP", "bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M",
"BO1P", "BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M",
"BO2P", "BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP",
"DNP", "DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP",
"dNP", "dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP",
"HNP", "HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP",
"SNP", "SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP",
"sNP", "sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP",
"FNP", "FCA2", "F*", _
"G", "GE", "GR", "GM", "GP",
"GNP", "GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP",
"LNP", "LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP",
"KNP", "KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M",
"Q1P", "Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M",
"Q2P", "Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un
week-end
If MyWeekDay = 1 Or MyWeekDay = 7
Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour
férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(j, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column <= 39 Then
If (Val(target.Row) - 6) Mod
12 = 0 Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon
les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP",
"ANP", "AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP",
"CNP", "CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP",
"aNP", "aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP",
"cNP", "cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP",
"BNP", "BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M",
"B*P", "B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP",
"bNP", "bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R",
"BO1*M", "BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R",
"BO2*M", "BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP",
"DNP", "DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP",
"dNP", "dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP",
"HNP", "HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP",
"SNP", "SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP",
"sNP", "sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP",
"FNP", "FCA2", "F*", _
"G", "GE", "GR", "GM", "GP",
"GNP", "GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP",
"LNP", "LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP",
"KNP", "KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M",
"Q1P", "Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M",
"Q2P", "Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7
Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(i, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column <= 39 Then
If (Val(target.Row) - 6) Mod
12 = 0 Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la
cellule en évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil"
et la saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End SubBonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie
a écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du
passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target
As Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou
affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonsoir,
Quel est le but de ceci ?
For i = 1 To UBound(target.Value, 2)
L'usage le plus courant de ubound est :
dim tablo
redim tablo(2)
ubound(tablo) est alors égal à 2 (la plus dimension de tablo).
Si tu cherches à avoir au moins 2 pour target.value, vois du coté de
For i = 1 To application.worksheetfunction.max(target.Value, 2)
@+
FxM (qui passe)
Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas
aimer "target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de
cellules sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre
"Réveil" et la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à
adapter selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne
peuvent pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et
des fériés
'pour ne pas changer la couleur de ces
cellules si elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address,
2, InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer
la couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP",
"ANP", "AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP",
"CNP", "CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP",
"aNP", "aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP",
"cNP", "cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP",
"BNP", "BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M",
"B*P", "B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP",
"bNP", "bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M",
"BO1P", "BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M",
"BO2P", "BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP",
"DNP", "DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP",
"dNP", "dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP",
"HNP", "HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP",
"SNP", "SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP",
"sNP", "sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP",
"FNP", "FCA2", "F*", _
"G", "GE", "GR", "GM", "GP",
"GNP", "GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP",
"LNP", "LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP",
"KNP", "KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M",
"Q1P", "Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M",
"Q2P", "Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un
week-end
If MyWeekDay = 1 Or MyWeekDay = 7
Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour
férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(j, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column <= 39 Then
If (Val(target.Row) - 6) Mod
12 = 0 Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon
les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP",
"ANP", "AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP",
"CNP", "CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP",
"aNP", "aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP",
"cNP", "cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP",
"BNP", "BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M",
"B*P", "B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP",
"bNP", "bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R",
"BO1*M", "BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R",
"BO2*M", "BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP",
"DNP", "DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP",
"dNP", "dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP",
"HNP", "HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP",
"SNP", "SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP",
"sNP", "sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP",
"FNP", "FCA2", "F*", _
"G", "GE", "GR", "GM", "GP",
"GNP", "GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP",
"LNP", "LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP",
"KNP", "KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M",
"Q1P", "Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M",
"Q2P", "Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7
Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(i, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column <= 39 Then
If (Val(target.Row) - 6) Mod
12 = 0 Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la
cellule en évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil"
et la saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End Sub
Bonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie Giltaire@discussions.microsoft.com>
a écrit dans le message de news:
6155D72D-88F7-493D-9E04-9D1B400F2EE2@microsoft.com...
Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du
passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target
As Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou
affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonsoir,
Quel est le but de ceci ?For i = 1 To UBound(target.Value, 2)
L'usage le plus courant de ubound est :
dim tablo
redim tablo(2)
ubound(tablo) est alors égal à 2 (la plus dimension de tablo).
Si tu cherches à avoir au moins 2 pour target.value, vois du coté deFor i = 1 To application.worksheetfunction.max(target.Value, 2)
@+
FxM (qui passe)Merci de la rapidité. Voici, mais c'est un peu long ! Il semble ne pas
aimer "target.value"
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target As
Range)
Dim cellcol As Integer, ligne As Integer
Dim Mydate As Date, MyWeekDay, NomFerie
Dim MyDateRange As String
Dim test As Range
Dim RRappel As Variant
If Not (target.Column >= 8 And target.Column <= 39) Then Exit Sub
If Not ListeValide(target) Then Exit Sub
On Error GoTo ErrHandler:
'teste si sélection multiple contigüe
If target.Cells.Count > 1 Then
'initialise une boucle dont la durée est égale au nombre de
cellules sélectionnées
For i = 1 To UBound(target.Value, 2)
If i = 541 Then i = i + 1 'repère la ligne du titre
"Réveil" et la saute
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à
adapter selon les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne
peuvent pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column + i - 1
ligne = target.Row
'prise en compte des jours de la semaine et
des fériés
'pour ne pas changer la couleur de ces
cellules si elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address,
2, InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer
la couleur adéquate
With target.Cells(1, i)
Select Case target.Value(1, i)
Case "A", "AE", "AR", "AM", "AP",
"ANP", "AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP",
"CNP", "CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP",
"aNP", "aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP",
"cNP", "cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
.Font.Size = 18
Case "B", "BE", "BR", "BM", "BP",
"BNP", "BG1", "BG2", "BG3", "BCA2", _
"B*", "B*E", "B*R", "B*M",
"B*P", "B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP",
"bNP", "bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1", "BO1E", "BO1R", "BO1M",
"BO1P", "BO1NP", "BO1G1", "BO1G2", "BO1G3", "BO1CA2", _
"BO2", "BO2E", "BO2R", "BO2M",
"BO2P", "BO2NP", "BO2G1", "BO2G2", "BO2G3", "BO2CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
.Font.Size = 18
Case "D", "DE", "DR", "DM", "DP",
"DNP", "DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP",
"dNP", "dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP",
"HNP", "HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
.Font.Size = 18
Case "S", "SE", "SR", "SM", "SP",
"SNP", "SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP",
"sNP", "sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
.Font.Size = 18
Case "F", "FE", "FR", "FM", "FP",
"FNP", "FCA2", "F*", _
"G", "GE", "GR", "GM", "GP",
"GNP", "GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
.Font.Size = 18
Case "L", "LE", "LR", "LM", "LP",
"LNP", "LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
.Font.Size = 18
Case "K", "KE", "KR", "KM", "KP",
"KNP", "KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
.Font.Size = 18
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
.Font.Size = 18
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
.Font.Size = 18
Case "Q1", "Q1E", "Q1R", "Q1M",
"Q1P", "Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
.Font.Size = 18
Case "Q2", "Q2E", "Q2R", "Q2M",
"Q2P", "Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
.Font.Size = 18
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C1").Interior.ColorIndex
.Font.Size = 18
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.Size = 18
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C6").Interior.ColorIndex
.Font.Size = 18
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C7").Interior.ColorIndex
.Font.Size = 18
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C8").Interior.ColorIndex
.Font.Size = 18
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C9").Interior.ColorIndex
.Font.Size = 18
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C15").Interior.ColorIndex
.Font.Size = 18
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
.Font.Size = 18
Case ""
'teste si la cellule tombe un
week-end
If MyWeekDay = 1 Or MyWeekDay = 7
Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
'teste si la cellule tombe un jour
férié
For j = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(j, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column <= 39 Then
If (Val(target.Row) - 6) Mod
12 = 0 Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
Next
'restreindre le coloriage des cellules uniquement aux plages horaires
ElseIf target.Column >= 8 And target.Column <= 39 Then
Select Case target.Row Mod 12
'toutes les 12 lignes à partir de la ligne 6 (à adapter selon
les horaires)
Case Is >= 6 <= 7
'déprotéger la feuille (car les cellules ne peuvent
pas se colorier si feuille protégée)
ActiveSheet.Unprotect Password:="hello"
cellcol = target.Column
ligne = target.Row
'prise en compte des jours de la semaine et des fériés
'pour ne pas changer la couleur de ces cellules si
elles sont vides
Mydate = Cells(3, cellcol)
MyDateRange = Mid(Cells(3, cellcol).Address, 2,
InStr(2, Cells(3, cellcol).Address, "$") - 2) & 3
MyWeekDay = Weekday(Mydate)
NomFerie = "ferie" & ActiveSheet.Name
'tester les codes horaires et leur appliquer la
couleur adéquate
With target
If Len(target) > 3 Then
.Font.Size = 12
Else
.Font.Size = 18
End If
Select Case target
Case "A", "AE", "AR", "AM", "AP",
"ANP", "AG1", "AG2", "AG3", "ACA2", "A*", _
"C", "CE", "CR", "CM", "CP",
"CNP", "CG1", "CG2", "CG3", "CCA2", "C*", _
"a", "aE", "aR", "aM", "aP",
"aNP", "aG1", "aG2", "aG3", "aCA2", "a*", _
"c", "cE", "cR", "cM", "cP",
"cNP", "cG1", "cG2", "cG3", "cCA2", "c*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C19").Font.ColorIndex
Case "B", "BE", "BR", "BM", "BP",
"BNP", "BG1", "BG2", "BG3", "BCA2", "B*", _
"B*", "B*E", "B*R", "B*M",
"B*P", "B*NP", "B*G1", "B*G2", "B*G3", "B*CA2", _
"b", "bE", "bR", "bM", "bP",
"bNP", "bG1", "bG2", "bG3", "bCA2", "b*", _
"BO1*", "BO1*E", "BO1*R",
"BO1*M", "BO1*P", "BO1*NP", "BO1*G1", "BO1*G2", "BO1*G3", "BO1*CA2", _
"BO2*", "BO2*E", "BO2*R",
"BO2*M", "BO2*P", "BO2*NP", "BO2*G1", "BO2*G2", "BO2*G3", "BO2*CA2"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C30").Font.ColorIndex
Case "D", "DE", "DR", "DM", "DP",
"DNP", "DG1", "DG2", "DG3", "DCA2", "D*", _
"d", "dE", "dR", "dM", "dP",
"dNP", "dG1", "dG2", "dG3", "dCA2", "d*", _
"H", "HE", "HR", "HM", "HP",
"HNP", "HCA2", "H*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C61").Font.ColorIndex
Case "S", "SE", "SR", "SM", "SP",
"SNP", "SG1", "SG2", "SG3", "SCA2", "S*", _
"s", "sE", "sR", "sM", "sP",
"sNP", "sG1", "sG2", "sG3", "sCA2", "s*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C72").Font.ColorIndex
Case "F", "FE", "FR", "FM", "FP",
"FNP", "FCA2", "F*", _
"G", "GE", "GR", "GM", "GP",
"GNP", "GCA2", "G*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C138").Font.ColorIndex
Case "L", "LE", "LR", "LM", "LP",
"LNP", "LCA2", "L*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C162").Font.ColorIndex
Case "K", "KE", "KR", "KM", "KP",
"KNP", "KCA2", "K*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C170").Font.ColorIndex
Case "WG1", "WG2", "WG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C178").Font.ColorIndex
Case "RH"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C184").Font.ColorIndex
Case "Q1", "Q1E", "Q1R", "Q1M",
"Q1P", "Q1NP", "Q1CA2", "Q1*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C185").Font.ColorIndex
Case "Q2", "Q2E", "Q2R", "Q2M",
"Q2P", "Q2NP", "Q2CA2", "Q2*"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C193").Font.ColorIndex
Case "CA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C1").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C1").Interior.ColorIndex
Case "JF", "JFG1", "JFG2", "JFG3"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C2").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
Case "CC"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C6").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C6").Interior.ColorIndex
Case "MA"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C7").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C7").Interior.ColorIndex
Case "DT"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C8").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C8").Interior.ColorIndex
Case "RA", "CF", "AL", "AT", "CS", "MP"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C9").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C9").Interior.ColorIndex
Case "FO", "SY"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C15").Font.ColorIndex
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C15").Interior.ColorIndex
Case "", "_"
.Font.ColorIndex = Sheets("Fériés
2008").Range("C17").Font.ColorIndex
Case ""
If MyWeekDay = 1 Or MyWeekDay = 7
Then
.Interior.ColorIndex = 36
.Font.ColorIndex = 1
Else
.Interior.ColorIndex = xlNone
.Font.ColorIndex = 1
End If
For i = LBound(Worksheets("Fériés
2008").Range("Feries2008").Value) To UBound(Worksheets("Fériés
2008").Range("Feries2008").Value)
Set test = Worksheets("Fériés
2008").Range("Feries2008")
If Range(MyDateRange) =
test.Value(i, 1) Then
.Interior.ColorIndex =
Sheets("Fériés 2008").Range("C2").Interior.ColorIndex
.Font.ColorIndex = 1
Exit For
End If
Next
Case Else
If target.Column >= 8 And
target.Column <= 39 Then
If (Val(target.Row) - 6) Mod
12 = 0 Then
.Font.Size = 18
.Font.ColorIndex = 1
End If
End If
End Select
End With
Case Else
If target.Locked = True Then
With ActiveSheet
.Protect Password:="hello",
UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
End If
End Select
End If
Application.Calculate
'teste s'il y a des heures de rappel pour le mois et met la
cellule en évidence
RRappel = Range("AU6:AU595") 'à adapter selon les classeurs
For i = LBound(RRappel) To UBound(RRappel) 'Step 12
If i = 541 Then i = i + 1 'repère la ligne du titre "Réveil"
et la saute
If RRappel(i, 1) <> 0 Then
Range("AT" & i + 5).Borders.Weight = xlThick
Range("AT" & i + 5).Borders.ColorIndex = 3
Else
Range("AT" & i + 5).Borders.Weight = xlThin
Range("AT" & i + 5).Borders.ColorIndex = 0
End If
Next i
'reprotéger la feuille
With ActiveSheet
.Protect Password:="hello", UserInterfaceOnly:=True,
Contents:=True, DrawingObjects:=True
.EnableAutoFilter = True
.EnableOutlining = True
End With
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
Exit Sub
ErrHandler:
If Err.Number = 1004 Then
target.Interior.ColorIndex = xlNone
target.Font.ColorIndex = 1
Application.Calculate
If target.Column >= 8 And target.Column <= 39 Then
Call ProcNbPausesParJour(cellcol, ligne, Mydate, ActiveSheet)
End If
Exit Sub
End If
End SubBonjour
Si tu veux de l'aide, donne-nous le code.
Cordialement
Pascal
"Jean-Marie Giltaire" <Jean-Marie
a écrit dans le message de news:Bonjour,
Ayant réalisé une application avec macros sous Excel 2000, lors du
passage
en Excel 2003, j'ai le message d'erreur suivant qui s'affiche lorsqu'il
arrive à la ligne de code contenant notamment "target.value" de la
procédure
"Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal target
As Range)"
: "Erreur de compilation : Nombre d'arguments incorrect ou
affectation de
propriété incorrecte".
J'ai cherché un peu partout sur le web pour trouver une réponse à ce
problème, mais sans succès.
Quelqu'un peut-il m'aider, SVP ?
Merci beaucoup.
Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000, il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000, il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000, il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" a écrit
dans le message de news:Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000, il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" <JeanMarieGiltaire@discussions.microsoft.com> a écrit
dans le message de news:
BC9D134B-B74A-4D90-8CA3-574283826763@microsoft.com...
Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000, il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" a écrit
dans le message de news:Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000, il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : > b) mes cellules étant protégées, cela me
permet de quand-même faire une
sélection multiple de cellules adjascentes
2°) target.value ne donne pas de valeur autre que <impossible de compiler
le
module>
Encore merci de ton aide.
Jean-MarieBonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un
Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la
question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" a
écrit
dans le message de news:Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message
d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000,
il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois
dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr
preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : > b) mes cellules étant protégées, cela me
permet de quand-même faire une
sélection multiple de cellules adjascentes
2°) target.value ne donne pas de valeur autre que <impossible de compiler
le
module>
Encore merci de ton aide.
Jean-Marie
Bonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un
Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la
question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" <JeanMarieGiltaire@discussions.microsoft.com> a
écrit
dans le message de news:
BC9D134B-B74A-4D90-8CA3-574283826763@microsoft.com...
Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message
d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000,
il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois
dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr
preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : > b) mes cellules étant protégées, cela me
permet de quand-même faire une
sélection multiple de cellules adjascentes
2°) target.value ne donne pas de valeur autre que <impossible de compiler
le
module>
Encore merci de ton aide.
Jean-MarieBonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un
Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la
question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" a
écrit
dans le message de news:Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message
d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000,
il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois
dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr
preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Re
Bon ben là c'est plus clair !
Tu ne peux pas indiquer (1,i) à la suite de Target.Value tel quel comme dans
ton code : Select Case target.Value(1, i)
**Ce n'est pas une syntaxe correcte** et je serai surpris que cela
fonctionne avec Excel 2000 !!
Qu'est ce que tu cherches à vérifier par rapport à la Target d'origine ?
S'il s'agit de décaler à partir de l'adresse de Target, tu peux utiliser
Target.Offset(0,1).Value (dans ce cas tu fais référence à la cellule située
à droite de Target soit une colonne de plus)
Cordialement
Pascal
"Jean-Marie Giltaire" a écrit
dans le message de news:Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : > b) mes cellules étant protégées, cela me
permet de quand-même faire une
sélection multiple de cellules adjascentes
2°) target.value ne donne pas de valeur autre que <impossible de compiler
le
module>
Encore merci de ton aide.
Jean-MarieBonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un
Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la
question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" a
écrit
dans le message de news:Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message
d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000,
il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois
dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr
preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Re
Bon ben là c'est plus clair !
Tu ne peux pas indiquer (1,i) à la suite de Target.Value tel quel comme dans
ton code : Select Case target.Value(1, i)
**Ce n'est pas une syntaxe correcte** et je serai surpris que cela
fonctionne avec Excel 2000 !!
Qu'est ce que tu cherches à vérifier par rapport à la Target d'origine ?
S'il s'agit de décaler à partir de l'adresse de Target, tu peux utiliser
Target.Offset(0,1).Value (dans ce cas tu fais référence à la cellule située
à droite de Target soit une colonne de plus)
Cordialement
Pascal
"Jean-Marie Giltaire" <JeanMarieGiltaire@discussions.microsoft.com> a écrit
dans le message de news:
46BFBC81-E809-448E-BD4B-C064D9B3EAC5@microsoft.com...
Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : > b) mes cellules étant protégées, cela me
permet de quand-même faire une
sélection multiple de cellules adjascentes
2°) target.value ne donne pas de valeur autre que <impossible de compiler
le
module>
Encore merci de ton aide.
Jean-Marie
Bonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un
Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la
question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" <JeanMarieGiltaire@discussions.microsoft.com> a
écrit
dans le message de news:
BC9D134B-B74A-4D90-8CA3-574283826763@microsoft.com...
Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message
d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000,
il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois
dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr
preneur.
Je vous souhaite une bonne journée.
Jean-Marie
Re
Bon ben là c'est plus clair !
Tu ne peux pas indiquer (1,i) à la suite de Target.Value tel quel comme dans
ton code : Select Case target.Value(1, i)
**Ce n'est pas une syntaxe correcte** et je serai surpris que cela
fonctionne avec Excel 2000 !!
Qu'est ce que tu cherches à vérifier par rapport à la Target d'origine ?
S'il s'agit de décaler à partir de l'adresse de Target, tu peux utiliser
Target.Offset(0,1).Value (dans ce cas tu fais référence à la cellule située
à droite de Target soit une colonne de plus)
Cordialement
Pascal
"Jean-Marie Giltaire" a écrit
dans le message de news:Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : > b) mes cellules étant protégées, cela me
permet de quand-même faire une
sélection multiple de cellules adjascentes
2°) target.value ne donne pas de valeur autre que <impossible de compiler
le
module>
Encore merci de ton aide.
Jean-MarieBonjour
As-tu toujours moyen de vérifier que ton code fonctionne bien sur un
Excel
2000 ?
Sinon, sur ton Excel 2003 :
1°) For i = 1 To UBound(target.Value, 2)
a) Est-ce que l'erreur intervient sur cette ligne ?
b) Qu'est-ce que tu attends de cette instruction ? (je réitère la
question
de FxM)
2°) Peux-tu tester la valeur de Target.value quand ça plante ?
Cordialement
Pascal
"Jean-Marie Giltaire" a
écrit
dans le message de news:Bonjour et merci pour toutes vos réponses.
Malheureusement, après avoir appliqué vos suggestions, le message
d'erreur
est toujours là. Ce que je ne comprends pas, c'est que sous Excel 2000,
il
n'y avait aucun problème. Je me demandais si ce n'était pas parfois
dans
la
configuration d'Excel, dans les références p.e. mais j'ai installé les
mêmes
(enfin, la version actualisée pour 2003) et ça n'y change rien.
Si je ne trouve pas la solution, je pense que je devrai me résoudre à
réinstaller Excel 2000.
S'il y a encore qq qui trouve une solution ... je suis bien sûr
preneur.
Je vous souhaite une bonne journée.
Jean-Marie