J'ai une macro ci-dessous qui g=E9n=E8re une liste de cr=E9neaux horaires e=
n fonction de dates et d'heures de d=E9but et de fin et d'une incr=E9mentat=
ion horaire.
Cette macro fonctionne parfaitement avec Excel 2003 et 2007 mais avec Excel=
2010 j'obtiens a VBA runtime error "51" en=20
nParJour =3D Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + _
0.000001)) + 1
---------------------------------------------------------------------------=
------------
Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date
Dim V As Variant, S As String
Dim nParJour As Integer, nIntervalles As Integer
Jr1 =3D CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "", "7=
/27/10"))
Jr2 =3D CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10", "", "7/=
29/10"))
Hh1 =3D CDate(InputBox("Starting Time e.g. 10:00 AM", "", "10:00 AM"))
Hh2 =3D CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30 PM"))
Pas =3D CDate(InputBox("Increment e.g. 00:30 for a 30 minutes interval"=
, "", "00:30"))
Bonjour, Sans les données, on ne peut pas vooir grand-chose. Donne les valeurs de toutes les variables de la ligne en erreur. Cordialement. Daniel
Bonjour:
J'ai une macro ci-dessous qui génère une liste de créneaux horaires en fonction de dates et d'heures de début et de fin et d'une incrémentation horaire.
Cette macro fonctionne parfaitement avec Excel 2003 et 2007 mais avec Excel 2010 j'obtiens a VBA runtime error "51" en nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + _ 0.000001)) + 1
--------------------------------------------------------------------------------------- Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date Dim V As Variant, S As String Dim nParJour As Integer, nIntervalles As Integer
Jr1 = CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "", "7/27/10")) Jr2 = CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10", "", "7/29/10")) Hh1 = CDate(InputBox("Starting Time e.g. 10:00 AM", "", "10:00 AM")) Hh2 = CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30 PM")) Pas = CDate(InputBox("Increment e.g. 00:30 for a 30 minutes interval", "", "00:30"))
V = Evaluate(S) ---------------------------------------------------------------------------------------
Remerciements,
Christophe
Bonjour,
Sans les données, on ne peut pas vooir grand-chose. Donne les valeurs
de toutes les variables de la ligne en erreur.
Cordialement.
Daniel
Bonjour:
J'ai une macro ci-dessous qui génère une liste de créneaux horaires en
fonction de dates et d'heures de début et de fin et d'une incrémentation
horaire.
Cette macro fonctionne parfaitement avec Excel 2003 et 2007 mais avec Excel
2010 j'obtiens a VBA runtime error "51" en nParJour = Int(((Hh2 - Hh1 +
IIf(Hh2 < Hh1, 1, 0)) / Pas + _ 0.000001)) + 1
---------------------------------------------------------------------------------------
Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date
Dim V As Variant, S As String
Dim nParJour As Integer, nIntervalles As Integer
Jr1 = CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "",
"7/27/10")) Jr2 = CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10",
"", "7/29/10")) Hh1 = CDate(InputBox("Starting Time e.g. 10:00 AM", "",
"10:00 AM")) Hh2 = CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30
PM")) Pas = CDate(InputBox("Increment e.g. 00:30 for a 30 minutes
interval", "", "00:30"))
Bonjour, Sans les données, on ne peut pas vooir grand-chose. Donne les valeurs de toutes les variables de la ligne en erreur. Cordialement. Daniel
Bonjour:
J'ai une macro ci-dessous qui génère une liste de créneaux horaires en fonction de dates et d'heures de début et de fin et d'une incrémentation horaire.
Cette macro fonctionne parfaitement avec Excel 2003 et 2007 mais avec Excel 2010 j'obtiens a VBA runtime error "51" en nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + _ 0.000001)) + 1
--------------------------------------------------------------------------------------- Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date Dim V As Variant, S As String Dim nParJour As Integer, nIntervalles As Integer
Jr1 = CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "", "7/27/10")) Jr2 = CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10", "", "7/29/10")) Hh1 = CDate(InputBox("Starting Time e.g. 10:00 AM", "", "10:00 AM")) Hh2 = CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30 PM")) Pas = CDate(InputBox("Increment e.g. 00:30 for a 30 minutes interval", "", "00:30"))
V = Evaluate(S) ---------------------------------------------------------------------------------------
Remerciements,
Christophe
christophe.joly
Bonjour,
Ci-dessous la macro plus complète. Elle fonctionne sur Excel 2003 et 2007 mais bug sur Excel 2010.
Remerciements,
Christophe
Sub DATEandTIME()
If MsgBox(Prompt:="You are going to Reset the Dates & Times of you r scheduling project", Buttons:=vbYesNo + vbQuestion, _ Title:="Change Dates & Times") = vbNo Then Exit Sub End If ' Daniel M. Sheets("DateTime").Select Range("B2:B65536").Select Selection.ClearContents
Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date Dim V As Variant, S As String Dim nParJour As Integer, nIntervalles As Integer
Jr1 = CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "", "7 /27/10")) Jr2 = CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10", "", "7/ 29/10")) Hh1 = CDate(InputBox("Starting Time e.g. 10:00 AM", "", "10:00 AM")) Hh2 = CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30 PM")) Pas = CDate(InputBox("Increment e.g. 00:30 for a 30 minutes interval" , "", "00:30"))
Sheets("Country Appointments").Select Sheets("Country Appointments").Range("B2").Resize(nIntervalles) = App lication.Transpose(V) Range("B1").End(xlDown).Offset(1, 0).Select ActiveCell.FormulaR1C1 = "NO TIME SET (Int'l visitor request) (01)" ActiveCell.Offset(1, 0).Select
End Sub
Bonjour,
Ci-dessous la macro plus complète. Elle fonctionne sur Excel 2003 et 2007 mais bug sur Excel 2010.
Remerciements,
Christophe
Sub DATEandTIME()
If MsgBox(Prompt:="You are going to Reset the Dates & Times of you r scheduling project", Buttons:=vbYesNo + vbQuestion, _
Title:="Change Dates & Times") = vbNo Then
Exit Sub
End If
' Daniel M.
Sheets("DateTime").Select
Range("B2:B65536").Select
Selection.ClearContents
Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date
Dim V As Variant, S As String
Dim nParJour As Integer, nIntervalles As Integer
Jr1 = CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "", "7 /27/10"))
Jr2 = CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10", "", "7/ 29/10"))
Hh1 = CDate(InputBox("Starting Time e.g. 10:00 AM", "", "10:00 AM"))
Hh2 = CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30 PM"))
Pas = CDate(InputBox("Increment e.g. 00:30 for a 30 minutes interval" , "", "00:30"))
Ci-dessous la macro plus complète. Elle fonctionne sur Excel 2003 et 2007 mais bug sur Excel 2010.
Remerciements,
Christophe
Sub DATEandTIME()
If MsgBox(Prompt:="You are going to Reset the Dates & Times of you r scheduling project", Buttons:=vbYesNo + vbQuestion, _ Title:="Change Dates & Times") = vbNo Then Exit Sub End If ' Daniel M. Sheets("DateTime").Select Range("B2:B65536").Select Selection.ClearContents
Dim Jr1 As Date, Jr2 As Date, Hh1 As Date, Hh2 As Date, Pas As Date Dim V As Variant, S As String Dim nParJour As Integer, nIntervalles As Integer
Jr1 = CDate(InputBox("Starting Date as mm/dd/yy e.g. 7/27/10", "", "7 /27/10")) Jr2 = CDate(InputBox("Ending Date as mm/dd/yy e.g. 7/29/10", "", "7/ 29/10")) Hh1 = CDate(InputBox("Starting Time e.g. 10:00 AM", "", "10:00 AM")) Hh2 = CDate(InputBox("Ending Time e.g. 5:30 PM", "", "5:30 PM")) Pas = CDate(InputBox("Increment e.g. 00:30 for a 30 minutes interval" , "", "00:30"))
Stop x = Hh2 - Hh1 y = IIf(Hh2 < Hh1, 1, 0) z = Pas + 0.000001 nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
Passe la commande STOP juste avant ces 3 lignes de code, de sorte que tu pourras les exécuter pas à pas en utilisant la touche F8. Cela devrait te permettre d'identifier la section qui pose problème et les valeurs associées aux variables lorsque l'erreur est générée.
Stop
x = Hh2 - Hh1
y = IIf(Hh2 < Hh1, 1, 0)
z = Pas + 0.000001
nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
Passe la commande STOP juste avant ces 3 lignes de code, de sorte que tu
pourras les exécuter pas à pas en utilisant la touche F8. Cela devrait te
permettre d'identifier la section qui pose problème et les valeurs associées
aux variables lorsque l'erreur est générée.
Stop x = Hh2 - Hh1 y = IIf(Hh2 < Hh1, 1, 0) z = Pas + 0.000001 nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
Passe la commande STOP juste avant ces 3 lignes de code, de sorte que tu pourras les exécuter pas à pas en utilisant la touche F8. Cela devrait te permettre d'identifier la section qui pose problème et les valeurs associées aux variables lorsque l'erreur est générée.
En fait, lorsque j'execute les ligne pas à pas, il n'y pas d'erreur jussq u'à ce que j'arrive sur nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1 ou j'obtiens une erreur de type 51.
Sinon, en fin de macro par 2 fois, remplacer Sheets("DateTime") en lieu et place de Sheets("Country Appointments") mais ce n'est pas ce qui provoque l 'erreur ci-dessus.
En fait, lorsque j'execute les ligne pas à pas, il n'y pas d'erreur jussq u'à ce que j'arrive sur nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
ou j'obtiens une erreur de type 51.
Sinon, en fin de macro par 2 fois, remplacer Sheets("DateTime") en lieu et place de Sheets("Country Appointments") mais ce n'est pas ce qui provoque l 'erreur ci-dessus.
Sur un forum microsoft US j'ai trouvé une erreur comparable avec access 2 010 pour des dates mais peut-être cela n'a strictement rien à voir.
http://answers.microsoft.com/en-us/office/forum/office_2010-access/access-2 010-variant-date-division-runtime-error-51/b0d94022-bd80-42a8-8093-b062b072 1025
En fait, lorsque j'execute les ligne pas à pas, il n'y pas d'erreur jussq u'à ce que j'arrive sur nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1 ou j'obtiens une erreur de type 51.
Sinon, en fin de macro par 2 fois, remplacer Sheets("DateTime") en lieu et place de Sheets("Country Appointments") mais ce n'est pas ce qui provoque l 'erreur ci-dessus.
Comme indiqué dans mon post précédent, l'exécution du code pas à pas à l'aide de F8, ne révèle pas d'erreur en x = Hh2 - Hh1, ni en y = IIf(Hh2 < Hh1, 1, 0) et ni en z = Pas + 0.000001.
Ai-je manqué quelque chose?
Remerceiements,
Christophe
Bonjour MichD,
Désolé mais, sauf erreur de ma part, je croyais avoir appliqué ta sug gestion i.e.
Scindé la ligne de code comme suit:
Stop
x = Hh2 - Hh1
y = IIf(Hh2 < Hh1, 1, 0)
z = Pas + 0.000001
Comme indiqué dans mon post précédent, l'exécution du code pas à pas à l'aide de F8, ne révèle pas d'erreur en x = Hh2 - Hh1, ni en y = IIf(Hh2 < Hh1, 1, 0) et ni en z = Pas + 0.000001.
Comme indiqué dans mon post précédent, l'exécution du code pas à pas à l'aide de F8, ne révèle pas d'erreur en x = Hh2 - Hh1, ni en y = IIf(Hh2 < Hh1, 1, 0) et ni en z = Pas + 0.000001.
Ai-je manqué quelque chose?
Remerceiements,
Christophe
MichD
| l'exécution du code pas à pas à l'aide de F8, ne révèle | pas d'erreur en | x = Hh2 - Hh1 | ni en y = IIf(Hh2 < Hh1, 1, 0) | et ni en z = Pas + 0.000001
Tu nous ne donnes pas la valeur des variables X, Y et Z...
As-tu tenté de simplement réécrire la ligne de code sans utiliser le copier-coller simplement pour t’assurer qu'il n'y a pas un parasite quelconque sur cette ligne de code et d'effacer complètement la ligne originale. nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
| l'exécution du code pas à pas à l'aide de F8, ne révèle
| pas d'erreur en
| x = Hh2 - Hh1
| ni en y = IIf(Hh2 < Hh1, 1, 0)
| et ni en z = Pas + 0.000001
Tu nous ne donnes pas la valeur des variables X, Y et Z...
As-tu tenté de simplement réécrire la ligne de code sans
utiliser le copier-coller simplement pour t’assurer qu'il
n'y a pas un parasite quelconque sur cette ligne de code
et d'effacer complètement la ligne originale.
nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
| l'exécution du code pas à pas à l'aide de F8, ne révèle | pas d'erreur en | x = Hh2 - Hh1 | ni en y = IIf(Hh2 < Hh1, 1, 0) | et ni en z = Pas + 0.000001
Tu nous ne donnes pas la valeur des variables X, Y et Z...
As-tu tenté de simplement réécrire la ligne de code sans utiliser le copier-coller simplement pour t’assurer qu'il n'y a pas un parasite quelconque sur cette ligne de code et d'effacer complètement la ligne originale. nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.000001)) + 1
On Wednesday, April 3, 2013 12:44:22 PM UTC+2, MichD wrote:
| l'exécution du code pas à pas à l'aide de F8, ne révèle | pas d'erreur en | x = Hh2 - Hh1 | ni en y = IIf(Hh2 < Hh1, 1, 0) | et ni e n z = Pas + 0.000001 Tu nous ne donnes pas la valeur des variables X, Y e t Z... As-tu tenté de simplement réécrire la ligne de code sans utili ser le copier-coller simplement pour tassurer qu'il n'y a pas un parasit e quelconque sur cette ligne de code et d'effacer complètement la ligne o riginale. nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.00 0001)) + 1 MichD ---------------------------------------------------------- -----
ReBonjour:
J'ai réécrit la ligne de code mais cela ne change rien. je ne suis pas certain de comprendre ce que tu veux que je fasse. J'ai scindé le code en 3 lignes comme indiqué. Lorsque je lance la Macro elle s'arrête en Mode Break sur Stop, puis lors que j'utilise la touche F8, la macro s'arrête à nouveau sur chacune des lignes de code x, y et z sans provoquer de message d'erreur. Ceci dit je n e sais pas ou trouver la valeur des variables X, Y et Z.
Remerciements,
Christophe
On Wednesday, April 3, 2013 12:44:22 PM UTC+2, MichD wrote:
| l'exécution du code pas à pas à l'aide de F8, ne révèle | pas d'erreur en | x = Hh2 - Hh1 | ni en y = IIf(Hh2 < Hh1, 1, 0) | et ni e n z = Pas + 0.000001 Tu nous ne donnes pas la valeur des variables X, Y e t Z... As-tu tenté de simplement réécrire la ligne de code sans utili ser le copier-coller simplement pour tassurer qu'il n'y a pas un parasit e quelconque sur cette ligne de code et d'effacer complètement la ligne o riginale. nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.00 0001)) + 1 MichD ---------------------------------------------------------- -----
ReBonjour:
J'ai réécrit la ligne de code mais cela ne change rien.
je ne suis pas certain de comprendre ce que tu veux que je fasse.
J'ai scindé le code en 3 lignes comme indiqué.
Lorsque je lance la Macro elle s'arrête en Mode Break sur Stop, puis lors que j'utilise la touche F8, la macro s'arrête à nouveau sur chacune des lignes de code x, y et z sans provoquer de message d'erreur. Ceci dit je n e sais pas ou trouver la valeur des variables X, Y et Z.
On Wednesday, April 3, 2013 12:44:22 PM UTC+2, MichD wrote:
| l'exécution du code pas à pas à l'aide de F8, ne révèle | pas d'erreur en | x = Hh2 - Hh1 | ni en y = IIf(Hh2 < Hh1, 1, 0) | et ni e n z = Pas + 0.000001 Tu nous ne donnes pas la valeur des variables X, Y e t Z... As-tu tenté de simplement réécrire la ligne de code sans utili ser le copier-coller simplement pour tassurer qu'il n'y a pas un parasit e quelconque sur cette ligne de code et d'effacer complètement la ligne o riginale. nParJour = Int(((Hh2 - Hh1 + IIf(Hh2 < Hh1, 1, 0)) / Pas + 0.00 0001)) + 1 MichD ---------------------------------------------------------- -----
ReBonjour:
J'ai réécrit la ligne de code mais cela ne change rien. je ne suis pas certain de comprendre ce que tu veux que je fasse. J'ai scindé le code en 3 lignes comme indiqué. Lorsque je lance la Macro elle s'arrête en Mode Break sur Stop, puis lors que j'utilise la touche F8, la macro s'arrête à nouveau sur chacune des lignes de code x, y et z sans provoquer de message d'erreur. Ceci dit je n e sais pas ou trouver la valeur des variables X, Y et Z.