Erreur 1004 sur macro - VB/VBA/VBS - Programmation
Marsh Posté le 23-06-2008 à 11:49:39
ReplyMarsh Posté le 23-06-2008 à 11:59:31
Merci ... ça fonctionnera peut-être mieux que le marc de café ...
Marsh Posté le 23-06-2008 à 12:05:59
Qui sait....
Ce que ca veut dire, c'est que si tu ne mets pas la ligne qui bugue ou un bout de code, cela va être dur de te répondre...
Marsh Posté le 23-06-2008 à 12:57:26
OK ... là j'ai compris :-)
Voila mon problème....
Sub MiseAZéro()
'
' MiseAZéro Macro
' Macro enregistrée le 15/02/2006 par hauller
'
'
Sheets(Array("Stock initial", "Achats vin en vrac", "Récolte", _
"Mise en bouteilles", "Ventes de vrac", "Achats confirmés" )). _
Select
Sheets("Stock initial" ).Activate
ActiveWindow.SmallScroll Down:=-24
Range("B10:G13" ).Select
Range("G13" ).Activate
Selection.ClearContents
Range("B17:D20" ).Select
Range("D20" ).Activate
Selection.ClearContents
Range("B24:F27" ).Select
Range("F27" ).Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=12
Range("B31:I34" ).Select
Range("I34" ).Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=6
Range("B38:J41" ).Select
Range("J41" ).Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=15
Range("B45:G48" ).Select
Range("G48" ).Activate
Selection.ClearContents
Range("B52:F55" ).Select
Range("F55" ).Activate
Selection.ClearContents
Range("B59:H62" ).Select
Range("H62" ).Activate
Selection.ClearContents
ActiveWindow.SmallScroll Down:=12
Range("B66:F69" ).Select
Range("F69" ).Activate
Selection.ClearContents
Range("B73:F76" ).Select
Range("F76" ).Activate
Selection.ClearContents
Range("B80:F83" ).Select
Range("F83" ).Activate
Selection.ClearContents
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
ActiveWindow.SmallScroll Down:=-45
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
ActiveWindow.SmallScroll Down:=-42
Range("B10:G13" ).Select
Range("G13" ).Activate
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Stock initial" ).Select
Range("B10" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=1
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
Range("B17:D20" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B17:D20" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
Range("B24:F27" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B24:F27" ).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=6
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
ActiveWindow.SmallScroll Down:=6
Range("B31:I34" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B31" ).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=12
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
ActiveWindow.SmallScroll Down:=9
Range("B38:J41" ).Select
Range("J38" ).Activate
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B38" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
Range("B45:G48" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B45" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
ActiveWindow.SmallScroll Down:=15
Range("B52:F55" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
ActiveWindow.SmallScroll Down:=12
Range("B52" ).Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=9
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
Range("B59:H62" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
ActiveWindow.SmallScroll Down:=3
Range("B59" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
ActiveWindow.SmallScroll Down:=9
Range("B66:F69" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B66" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=1
Sheets("Stock final" ).Select
Range("B73:F76" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B73:F76" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock final" ).Select
Range("B80:F83" ).Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock initial" ).Select
Range("B80:F83" ).Select
ActiveSheet.Paste
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Stock final" ).Select
ActiveWindow.SmallScroll Down:=-54
Range("B10:G13,B17:D20,B24:F27" ).Select
Range("B24" ).Activate
ActiveWindow.SmallScroll Down:=15
Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41" ).Select
Range("B38" ).Activate
ActiveWindow.SmallScroll Down:=21
Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41,B45:G48,B52:F55,B59:H62" ).Select
Range("B59" ).Activate
ActiveWindow.SmallScroll Down:=9
Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41,B45:G48,B52:F55,B59:H62,B66:F69,B73:F76,B80:F83" ).Select
Range("B80" ).Activate
Application.CutCopyMode = False
Selection.ClearContents
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
ActiveWindow.ScrollWorkbookTabs Sheets:=-1
Sheets("Synthèse" ).Select
Range("B13" ).Select
Range("B13:G15,B19:G19,I13:K15,I19:K19" ).Select
Range("K19" ).Activate
ActiveWindow.SmallScroll ToRight:=10
Range("B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19" ).Select
Range("M19" ).Activate
ActiveWindow.SmallScroll ToRight:=2
Range("B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19" ).Select
Range("Y19" ).Activate
ActiveWindow.SmallScroll ToRight:=11
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19" _
).Select
Range("AI19" ).Activate
ActiveWindow.SmallScroll ToRight:=10
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19" _
).Select
Range("AV19" ).Activate
ActiveWindow.SmallScroll ToRight:=10
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19,AX13:BD15,AX19:BD19" _
).Select
Range("BC19" ).Activate
ActiveWindow.SmallScroll ToRight:=5
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19,AX13:BD15,AX19:BD19,BF13:BJ15,BF19:BJ19,BL13:BP15,BL19:BP19,BR13:BV15,BR19:BV19" _
).Select
Range("BV19" ).Activate
ActiveWindow.SmallScroll Down:=12
Selection.ClearContents
Range("B4" ).Select
End Sub
Slts
Marsh Posté le 23-06-2008 à 13:29:03
Et à quelle ligne ca plante ?
Marsh Posté le 23-06-2008 à 17:16:59
Salut, tu pourrais dans un premier temps nettoyer ton code
Supprimer tous les ActiveWindow.SmallScroll Down:=.. ,ActiveWindow.ScrollWorkbookTabs Sheets:=..
Un autre exemple
|
devient
Sheets("Stock initial" ).Range("B10:G13" ).ClearContents |
Pour fournir un exemple complet zippé utiliser http://cjoint.com/
A part cela, je n'ai pas de msg d'erreur
Marsh Posté le 24-06-2008 à 09:18:04
Bonjour,
merci pour ton aide ... mais le message s'affiche toujours chez moi :-(
Marsh Posté le 24-06-2008 à 10:01:33
PetiteLuciole a écrit : Bonjour, |
Repostes ton code nettoyé pour voir...
Marsh Posté le 24-06-2008 à 10:41:00
je me suis peut être plantée en "nettoyant" ...
Sub MiseAZéro()
'
' MiseAZéro Macro
' Macro enregistrée le 15/02/2006 par hauller
'
'
Sheets(Array("Stock initial", "Achats vin en vrac", "Récolte", _
"Mise en bouteilles", "Ventes de vrac", "Achats confirmés" )). _
Select
Sheets("Stock initial" ).Range("B10:G13" ).ClearContents
Range("B17:D20" ).ClearContents
Range("B24:F27" ).ClearContents
Range("B31:I34" ).ClearContents
Range("B38:J41" ).ClearContents
Range("B45:G48" ).ClearContents
Range("B52:F55" ).ClearContents
Range("B59:H62" ).ClearContents
Range("B66:F69" ).ClearContents
Range("B73:F76" ).ClearContents
Range("B80:F83" ).ClearContents
Sheets("Stock initial" ).Select
Sheets("Stock final" ).Select
Range("B10:G13" ).Select
Range("G13" ).Activate
Selection.Copy
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("Stock initial" ).Select
Range("B10" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B17:D20" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B17:D20" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B24:F27" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B24:F27" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B31:I34" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B31" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B38:J41" ).Select
Range("J38" ).Activate
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B38" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B45:G48" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B45" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B52:F55" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B52" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B59:H62" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B59" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B66:F69" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B66" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B73:F76" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B73:F76" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B80:F83" ).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Stock initial" ).Select
Range("B80:F83" ).Select
ActiveSheet.Paste
Sheets("Stock final" ).Select
Range("B10:G13,B17:D20,B24:F27" ).Select
Range("B24" ).Activate
Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41" ).Select
Range("B38" ).Activate
Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41,B45:G48,B52:F55,B59:H62" ).Select
Range("B59" ).Activate
Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41,B45:G48,B52:F55,B59:H62,B66:F69,B73:F76,B80:F83" ).Select
Range("B80" ).Activate
Application.CutCopyMode = False
Selection.ClearContents
Sheets("Synthèse" ).Select
Range("B13" ).Select
Range("B13:G15,B19:G19,I13:K15,I19:K19" ).Select
Range("K19" ).Activate
Range("B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19" ).Select
Range("M19" ).Activate
ActiveWindow.SmallScroll ToRight:=2
Range("B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19" ).Select
Range("Y19" ).Activate
ActiveWindow.SmallScroll ToRight:=11
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19" _
).Select
Range("AI19" ).Activate
ActiveWindow.SmallScroll ToRight:=10
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19" _
).Select
Range("AV19" ).Activate
ActiveWindow.SmallScroll ToRight:=10
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19,AX13:BD15,AX19:BD19" _
).Select
Range("BC19" ).Activate
ActiveWindow.SmallScroll ToRight:=5
Range( _
"B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19,AX13:BD15,AX19:BD19,BF13:BJ15,BF19:BJ19,BL13:BP15,BL19:BP19,BR13:BV15,BR19:BV19" _
).Select
Range("BV19" ).Activate
Selection.ClearContents
Range("B4" ).Select
End Sub
Marsh Posté le 24-06-2008 à 10:57:04
Il faut que tu places ta macro dans un module et non sur ta feuille. Quand tu es sous VB, Insertion -> Module et ca marchera
Marsh Posté le 24-06-2008 à 11:11:56
Je suis pas sûre d'avoir fait une bonne manip ...
J'ai inséré un module et fait un copié/collé de ma macro dedans ...
Du coup quand j'active le bouton, j'ai un message " nom ambigu détecté : mise à zéro"...
Et est ce que je dois créer un module par macro ? Il y en a d'autre de réduction et d'agrandissement de colonnes associées à ce tableur...
Mais le pire c'est que l'erreur 1004 est tjs là chez moi ...
Marsh Posté le 24-06-2008 à 11:33:35
Il faut que tu supprimes la macro de ta feuille et que ne la laisses uniquement sur le module
Un module accepte plus d'une macro
Marsh Posté le 24-06-2008 à 12:06:28
bonjour,
je pense que tes cellules sont proteges, il faut oter la protection
et ton code nettoye est:
Sub MiseAZéro()
Sheets(Array("Stock initial", "Achats vin en vrac", "Récolte", _
"Mise en bouteilles", "Ventes de vrac", "Achats confirmés" )). _
Select
Sheets("stock initial" ).Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41,B45:G48,B52:F55,B59:H62,H62,B66:F69,B73:F76,B80:F83" ).ClearContents
Sheets("stock final" ).Range("B10:G13" ).Copy
Sheets("stock initial" ).Range("B10" ).Activate
ActiveSheet.Paste
Sheets("stock final" ).Range("B17:D20" ).Copy
Sheets("stock initial" ).Range("B17" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B24:F27" ).Copy
Sheets("stock initial" ).Range("B24" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B31:I34" ).Copy
Sheets("stock initial" ).Range("B31" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B38:J41" ).Copy
Sheets("stock initial" ).Range("B10" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B45:G48" ).Copy
Sheets("stock initial" ).Range("B38" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B52:F55" ).Copy
Sheets("stock initial" ).Range("B52" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B59:H62" ).Copy
Sheets("stock initial" ).Range("B59" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B66:F69" ).Copy
Sheets("stock initial" ).Range("B66" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B73:F76" ).Copy
Sheets("stock initial" ).Range("B73" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B80:F83" ).Copy
Sheets("stock initial" ).Range("B80" ).Activate
ActiveSheet.Paste
Sheets("Stock final" ).Range("B10:G13,B17:D20,B24:F27,B31:I34,B38:J41,B45:G48,B52:F55,B59:H62,B66:F69,B73:F76,B80:F83" ).ClearContents
Sheets("Synthese" ).Range("B13:G15,B19:G19,I13:K15,I19:K19,M13:Q15,M19:Q19,S13:Y15,S19:Y19,AA13:AI15,AA19:AI19,AK13:AP15,AK19:AP19,AR13:AV15,AR19:AV19,AX13:BD15,AX19:BD19,BF13:BJ15,BF19:BJ19,BL13:BP15,BL19:BP19,BR13:BV15,BR19:BV19" ).ClearContents
End Sub
Marsh Posté le 24-06-2008 à 12:07:19
C'est fait ... mais j'ai toujours ce même message "erreur 1004" au même endroit ...
Marsh Posté le 24-06-2008 à 12:10:07
Effectivement une partie des cellules est protégées. J'ai oté la protection sur toutes les feuilles et cela a fonctionné ...
Pour "automatiser" la suppression de la protection, je suppose que je dois faire une macro ...
Marsh Posté le 23-06-2008 à 11:45:26
Bonjour,
Je suis novice en macro, et j'en ai reprise une. Il s'agit de mettre à zéro un fichier dont lune partie des cellules des feuilles sont partiellement protégées - (10 feuilles à mettre à zéro reprises dans une feuille de synthèse).
J'ai simplement supprimé une feuille de référence dans la macro, et rajouté des cellules à mettre à zéro.
Seulement depuis, à l'exécution, ce message s'affiche :
"erreur d'exécution 1004" La cellule ou le graphique est protéhgé en lecture seule
Après X heures de recherches, je ne sais pas d'où ça vient :-(
Quelqu'un a une suggestion ?
Merci
---------------
Petite-Luciole