P
PaulMic
Guest
Bonjour et merci d'accueillir ma question.
Excel 2007 ; Xp pro
Je cherche à copier une zone de cellules d'une feuille à une autre à l'aide de la macro suivante, implantée dans la feuille "Feuil7". Je suis obligé de désactiver les calculs sur plusieurs feuilles et de déprotéger la feuille destination. L'erreur "1004" se produit quelque soit la forme que je donne au Range
***********
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Index As Integer
Dim LigneClick As Long, LgHistorap As Long, ColonneClick As Integer
Worksheets("Feuil2").EnableCalculation = False
Worksheets("Feuil3").EnableCalculation = False
Worksheets("Feuil4").EnableCalculation = False
Worksheets("Feuil1").EnableCalculation = False
Sheets("Feuil1").Unprotect "motdepasse"
LigneClick = Application.ActiveCell.Row
ColonneClick = Application.ActiveCell.Column
LgHistorap = Sheets("Feuil1").Cells(1, 1).Value + 3
If ColonneClick <> 1 Then Exit Sub
If LigneClick < 3 Or LigneClick > Cells(1, 1).Value Then Exit Sub
' range ok
Range(Cells(LigneClick, 1), Cells(LigneClick, 17)).Select
Selection.Copy
' changement de feuille
Sheets("Feuil1").Activate
'******* je ne passe sous aucune des trois formes du range ci-dessous
'Range("A" & CStr(LgHistorap)).Select
'Range(Cells(LgHistorap, 1), Cells(LgHistorap, 17)).Select
Sheets("Feuil1").Range(Cells(LgHistorap, 1), Cells(LgHistorap, 17)).Select
' la copie ne se fait pas bien sûr !!!!!
ActiveSheet.Paste
' je rétablis les possibilités de calculs et la protection
Sheets("Feuil7").Activate
Application.CutCopyMode = False
Cancel = True
Worksheets("Feuil2").EnableCalculation = True
Worksheets("Feuil3").EnableCalculation = True
Worksheets("Feuil4").EnableCalculation = True
Worksheets("Feuil1").EnableCalculation = True
Sheets("Feuil1").Protect "motdepasse"
End Sub
Excel 2007 ; Xp pro
Je cherche à copier une zone de cellules d'une feuille à une autre à l'aide de la macro suivante, implantée dans la feuille "Feuil7". Je suis obligé de désactiver les calculs sur plusieurs feuilles et de déprotéger la feuille destination. L'erreur "1004" se produit quelque soit la forme que je donne au Range
***********
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Index As Integer
Dim LigneClick As Long, LgHistorap As Long, ColonneClick As Integer
Worksheets("Feuil2").EnableCalculation = False
Worksheets("Feuil3").EnableCalculation = False
Worksheets("Feuil4").EnableCalculation = False
Worksheets("Feuil1").EnableCalculation = False
Sheets("Feuil1").Unprotect "motdepasse"
LigneClick = Application.ActiveCell.Row
ColonneClick = Application.ActiveCell.Column
LgHistorap = Sheets("Feuil1").Cells(1, 1).Value + 3
If ColonneClick <> 1 Then Exit Sub
If LigneClick < 3 Or LigneClick > Cells(1, 1).Value Then Exit Sub
' range ok
Range(Cells(LigneClick, 1), Cells(LigneClick, 17)).Select
Selection.Copy
' changement de feuille
Sheets("Feuil1").Activate
'******* je ne passe sous aucune des trois formes du range ci-dessous
'Range("A" & CStr(LgHistorap)).Select
'Range(Cells(LgHistorap, 1), Cells(LgHistorap, 17)).Select
Sheets("Feuil1").Range(Cells(LgHistorap, 1), Cells(LgHistorap, 17)).Select
' la copie ne se fait pas bien sûr !!!!!
ActiveSheet.Paste
' je rétablis les possibilités de calculs et la protection
Sheets("Feuil7").Activate
Application.CutCopyMode = False
Cancel = True
Worksheets("Feuil2").EnableCalculation = True
Worksheets("Feuil3").EnableCalculation = True
Worksheets("Feuil4").EnableCalculation = True
Worksheets("Feuil1").EnableCalculation = True
Sheets("Feuil1").Protect "motdepasse"
End Sub