Bonjour,
Nouveau sur le forum, je viens solliciter votre aide pour un problème - je pense - de compatibilité entre du VBA 2010 et 2013.
J'ai créé un fichier avec macros sous Excel 2010 pour des utilisateurs travaillant avec Excel 2007. Cela fonctionne très bien.
Depuis peu, un nouvel utilisateur travaille sous Excel 2013.
Or un problème apparait durant l'exécution d'une macro. Comme c'est la première fois qu'un utilisateur rapporte un tel problème, je suspecte un problème de compatibilité avec la nouvelle version d'Excel.
Voici le code qui génère une erreur 1004:
(Comme j'obtiens tout de même un résultat partiel, je suspecte que l'erreur survienne après la partie en bleu.)
Sub New_Month()
On Error GoTo Err_Block
Dim NewBook As String
Dim VarAnswer As Long
sht1Menu.Select
VarAnswer = MsgBox("ARE YOU SURE THAT YOU WANT TO GENERATE THE NEXT MONTH ?", vbOKCancel, "WARNING")
If VarAnswer = 2 Then Exit Sub
Application.ScreenUpdating = False
Application.EnableCancelKey = xlDisabled
ProtectAll (False)
'copy/paste final balance'
sht4Payroll.Range("as10:as36").Copy
sht4Payroll.Range("aw10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'save present/old month workbook
ProtectAll (True)
ActiveWorkbook.Save
'start new/next month workbook
'create new month file name
sht1Menu.Select
NewBook = Range("n11").Value
ProtectAll (False)
ChDir ThisWorkbook.Path
'ActiveWorkbook.SaveAs (NewBook)
If Application.Dialogs(xlDialogSaveAs).Show(NewBook) = False Then
GoTo Err_Block
End If
'Application.Dialogs(xlDialogSaveAs).Show (NewBook)
'("NewBook.xls")
'changing date and year for next month
Application.Calculation = xlCalculationManual
sht1Menu.Range("c17") = sht91SetUp.Range("b5")
sht1Menu.Range("c15") = sht91SetUp.Range("b11")
'sheet menu: erase required cells
sht1Menu.Range("j15, i17:j17, c19, c21").ClearContents
'sheets Crew list: copy/paste and erase obsolete datas
sht2CrewList.Range("e37:m63").ClearContents
sht2CrewList.Range("t37:w63").ClearContents
'sheet allotment: erase obsolete datas
sht3Allotments.Range("f15:g41, f65:g91").ClearContents
'sheets Crew payroll: copy/paste and erase obsolete datas
sht4Payroll.Range("ar10:ar36") = sht4Payroll.Range("aw10:aw36").Value
sht4Payroll.Range("r10:r36, v10:v36, x10:z36, ah10:aj36, am10:ao36").ClearContents
sht4Payroll.Range("r42:r68, v42:v68, x42:z68, ah42:aj68, am42:ao68, ar42:ar68").ClearContents
sht4Payroll.Range("aw10:aw36") = 0
Exit_Block:
'resetting workbook parameters
sht1Menu.Range("c19").Select
Application.ScreenUpdating = True
Application.EnableCancelKey = xlInterrupt
Application.Calculation = xlAutomatic
ProtectAll (True)
ChDir ThisWorkbook.Path
ActiveWorkbook.Save
Exit Sub
Err_Block:
MsgBox "Error during macro execution. Please contact the office. Error #" & Err.Number & vbCr & Err.Description
Resume Exit_Block
'
End Sub
Merci d'avance pour votre aide. 🙂
Nouveau sur le forum, je viens solliciter votre aide pour un problème - je pense - de compatibilité entre du VBA 2010 et 2013.
J'ai créé un fichier avec macros sous Excel 2010 pour des utilisateurs travaillant avec Excel 2007. Cela fonctionne très bien.
Depuis peu, un nouvel utilisateur travaille sous Excel 2013.
Or un problème apparait durant l'exécution d'une macro. Comme c'est la première fois qu'un utilisateur rapporte un tel problème, je suspecte un problème de compatibilité avec la nouvelle version d'Excel.
Voici le code qui génère une erreur 1004:
(Comme j'obtiens tout de même un résultat partiel, je suspecte que l'erreur survienne après la partie en bleu.)
Sub New_Month()
On Error GoTo Err_Block
Dim NewBook As String
Dim VarAnswer As Long
sht1Menu.Select
VarAnswer = MsgBox("ARE YOU SURE THAT YOU WANT TO GENERATE THE NEXT MONTH ?", vbOKCancel, "WARNING")
If VarAnswer = 2 Then Exit Sub
Application.ScreenUpdating = False
Application.EnableCancelKey = xlDisabled
ProtectAll (False)
'copy/paste final balance'
sht4Payroll.Range("as10:as36").Copy
sht4Payroll.Range("aw10").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
'save present/old month workbook
ProtectAll (True)
ActiveWorkbook.Save
'start new/next month workbook
'create new month file name
sht1Menu.Select
NewBook = Range("n11").Value
ProtectAll (False)
ChDir ThisWorkbook.Path
'ActiveWorkbook.SaveAs (NewBook)
If Application.Dialogs(xlDialogSaveAs).Show(NewBook) = False Then
GoTo Err_Block
End If
'Application.Dialogs(xlDialogSaveAs).Show (NewBook)
'("NewBook.xls")
'changing date and year for next month
Application.Calculation = xlCalculationManual
sht1Menu.Range("c17") = sht91SetUp.Range("b5")
sht1Menu.Range("c15") = sht91SetUp.Range("b11")
'sheet menu: erase required cells
sht1Menu.Range("j15, i17:j17, c19, c21").ClearContents
'sheets Crew list: copy/paste and erase obsolete datas
sht2CrewList.Range("e37:m63").ClearContents
sht2CrewList.Range("t37:w63").ClearContents
'sheet allotment: erase obsolete datas
sht3Allotments.Range("f15:g41, f65:g91").ClearContents
'sheets Crew payroll: copy/paste and erase obsolete datas
sht4Payroll.Range("ar10:ar36") = sht4Payroll.Range("aw10:aw36").Value
sht4Payroll.Range("r10:r36, v10:v36, x10:z36, ah10:aj36, am10:ao36").ClearContents
sht4Payroll.Range("r42:r68, v42:v68, x42:z68, ah42:aj68, am42:ao68, ar42:ar68").ClearContents
sht4Payroll.Range("aw10:aw36") = 0
Exit_Block:
'resetting workbook parameters
sht1Menu.Range("c19").Select
Application.ScreenUpdating = True
Application.EnableCancelKey = xlInterrupt
Application.Calculation = xlAutomatic
ProtectAll (True)
ChDir ThisWorkbook.Path
ActiveWorkbook.Save
Exit Sub
Err_Block:
MsgBox "Error during macro execution. Please contact the office. Error #" & Err.Number & vbCr & Err.Description
Resume Exit_Block
'
End Sub
Merci d'avance pour votre aide. 🙂
Dernière édition: