• Initiateur de la discussion Initiateur de la discussion PaulMic
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
Re : Une erreur "range"

Bonjour PaulMic et bienvenue (malgré ton grand âge 😛..., non, je rigole) 🙂
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 LgHistorap As Integer
'Quitte à sortir de la Sub, je le ferais en premier, surtout que tu ne rétablis pas les EnableCalculation, et surtout la protection de la feuille...
If Target.Column <> 1 Then Exit Sub
If Target.Row < 3 Or Target.Row > Cells(1, 1).Value Then Exit Sub
'Je sais pas si c'est voulu, mais là, tu fais appel à la feuil7...
Worksheets("Feuil2").EnableCalculation = False
Worksheets("Feuil3").EnableCalculation = False
Worksheets("Feuil4").EnableCalculation = False
Worksheets("Feuil1").EnableCalculation = False
Sheets("Feuil1").Unprotect "motdepasse"
Pourquoi passer par ActiveCell plutôt que Target ?
LgHistorap = Sheets("Feuil1").Cells(1, 1).Value + 3
' range ok
Range(Cells(Target.Row, 1), Cells(Target.Row, 17)).Copy Sheets("Feuil1").Range("A" & LgHistorap)
' je rétablis les possibilités de calculs et la protection
Cancel = True
Worksheets("Feuil2").EnableCalculation = True
Worksheets("Feuil3").EnableCalculation = True
Worksheets("Feuil4").EnableCalculation = True
Worksheets("Feuil1").EnableCalculation = True
Sheets("Feuil1").Protect "motdepasse"
End Sub
Dis nous ce que ça donne 😎
 
Re : Une erreur "range"

Un grand merci à JNP,

la copie des cellules marche exactement comme je le voulais !

J'avoue m'être "autoformé Excel 97" (donc pas forcément bien) et que je n'utilise pas "target", cet exemple me permettra de revoir mes pratiques. Par habitude une solution qui marche est conservée... même s'il y en a de meilleures.

Merci au forum d'exister !
PaulMic (anarchiste révolutionnaire bien que conservateur 🙂🙂🙂)
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
1
Affichages
324
Réponses
3
Affichages
256
Réponses
5
Affichages
912
Retour