Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Passage Excel 2000 à 2003 : "Nombre arguments incorrect ..."

10 réponses
Avatar
Jean-Marie Giltaire
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.

10 réponses

Avatar
papou
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.


Avatar
Jean-Marie Giltaire
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 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.







Avatar
papou
M'enfin ?!

Ben dis-donc sur ce coup-là je vais être un peu fainéant moi ! ;-)
Mais peux-tu déjà simplement vérifier dans l'éditeur VBA :
Outils, Options, onglet Général,
que "Arrêt sur les erreurs non gérées" est coché ?

Cordialement
Pascal

"Jean-Marie Giltaire" a écrit
dans le message de news:

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 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.









Avatar
FxM
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 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.








Avatar
Misange
ah ben tiens ! y en un qui a vu de la lumière, des têtes connues et qui
est venu faire un petit coucou ! comme quoi le début d'année donne des
envies de bonnes résolutions à certains :-)
salut FxM :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

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
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.










Avatar
Jean-Marie Giltaire
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
Avatar
papou
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


Avatar
Jean-Marie Giltaire
Bonjour Pascal et merci de ta rapidité.
Cela fonctionne toujours bien sur 2000.
1°) a)l'erreur intervient ici : Select Case target.Value(1, i)
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" 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







Avatar
papou
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-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









Avatar
Jean-Marie Giltaire
Et ben, tu me croiras si tu veux, mais ... ça marche ! :-))))
Mais je te jure que sur 2000, ça passe.

Encore un tout grand merci et 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-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