[Catégorie modifiée VB6 -> VBA] Valeur tapée en dehors des limites

FMAILYS - 21 nov. 2012 à 14:36
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 22 nov. 2012 à 10:13
Bonjour

J'ai fait ce petit programme dans le cadre du travail
Vous y trouverez un bouton qui enregistre imprime et efface les données sur chaque feuille sauf le menu
Quand je clique sur le bouton de la feuille "ICL OUVRIERS TP", il me met le message suivant "Valeur tapée en dehors des limites"

Voici ma VBA :


Sub SaveFeuilleActive()
Dim Sh As Shape
ActiveSheet.Copy
'Affiche la boîte de dialogue
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.PrintOut
For Each Sh In ActiveSheet.Shapes
If Sh.Name Like "Button*" Then Sh.Delete
Next Sh
ActiveWorkbook.Save
ActiveWorkbook.Close
Select Case ActiveSheet.Name
Case "ICL Cadres Métallurgie"
Range("B1:B4,B6,B9,B10,B13,E3:E14,B40,B42").ClearContents
MsgBox "les données sont effacées"
Case "ICL Etam Ouvriers Métallurgie"
Range("B1:B6,B9,B10,B13,E3:E14,B35,B37").ClearContents
MsgBox "les données sont effacées"
Case "ICL Ouvriers TP", "ICL Ouvriers Bâtiment"
Range("B1:B4,B6,B9,B10,B13,E3:E15,B36,B38").ClearContents
MsgBox "les données sont effacées"
Case "ICL Cadres Intermittents", "ICL Non Cadres Intermittents"
Range("B1:B4,B6,B9,B10,B14,E3:E14,B31,B33").ClearContents
MsgBox "les données sont effacées"
Case "ICL IAC Bâtiment", "ICL Etam Bâtiment", "ICL IAC TP", "ICL ETAM TP"
Range("B1:B4,B6,B9,B10,B13,F3:F15,E14,B38,B40").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite IAC TP", "Ind Retraite IAC Bâtiment", "Ind Retraite ETAM TP", "Ind Retraite ETAM Bâtiment"
Range("B1:B4,B6,B9,B10,F3:F14,E14").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite Métallurgie", "Ind Retraite Intermittents"
Range("B1:B6,B9,B10,F3:F14").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite SYNTEC"
Range("B1:B6,B9,B10,E14,F3:F14").ClearContents
MsgBox "les données sont effacées"
Case "ICL CADRES SYNTEC"
Range("B1:B4,B6,B9,B10,B14,B31,B33,E3:E14").ClearContents
MsgBox "les données sont effacées"
Case "ICL ETAM SYNTEC"
Range("B1:B4,B6,B9,B10,B13,B34,B36,E14,F3:F14").ClearContents
MsgBox "les données sont effacées"
Case "ICL Exploit. Forest."
Range("B1:B6,B9,B10,B14,B31,B33,E3:E14").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite Exploit."
Range("B1:B6,B9,B10,F3:F14").ClearContents
MsgBox "les données sont effacées"
End Select
Sheets("Menu").Select
Range("A1:L1").Select
End Sub

Si je clique sur le même bouton de la feuille "ICL IAC TP", je n'ai pas de débogage.
Vous trouverez mon fichier ici : http://cjoint.com/?3KvonFxLOkx
Mot de passe pour débloquer les feuilles : rupture 2012

Je vous remercie pour l'aide que vous pourrez m'apporter

Cdt

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
21 nov. 2012 à 14:56
Salut

Fais attention à la catégorie de ta question, stp.

ActiveWorkbook.Close
Si tu fermes le classeur avant, c'est peut-être un peu normal.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Merci beaucoup de ton aide
Donc si je comprends bien, il me faut le code suivant :

Sub SaveFeuilleActive()
Dim Sh As Shape
ActiveSheet.Copy
'Affiche la boîte de dialogue
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.PrintOut
For Each Sh In ActiveSheet.Shapes
If Sh.Name Like "Button*" Then Sh.Delete
Next Sh
ActiveWorkbook.Save
Select Case ActiveSheet.Name
Case "ICL Cadres Métallurgie"
Range("B1:B4,B6,B9,B10,B13,E3:E14,B40,B42").ClearContents
MsgBox "les données sont effacées"
Case "ICL Etam Ouvriers Métallurgie"
Range("B1:B6,B9,B10,B13,E3:E14,B35,B37").ClearContents
MsgBox "les données sont effacées"
Case "ICL Ouvriers TP", "ICL Ouvriers Bâtiment"
Range("B1:B4,B6,B9,B10,B13,E3:E15,B36,B38").ClearContents
MsgBox "les données sont effacées"
Case "ICL Cadres Intermittents", "ICL Non Cadres Intermittents"
Range("B1:B4,B6,B9,B10,B14,E3:E14,B31,B33").ClearContents
MsgBox "les données sont effacées"
Case "ICL IAC Bâtiment", "ICL Etam Bâtiment", "ICL IAC TP", "ICL ETAM TP"
Range("B1:B4,B6,B9,B10,B13,F3:F15,E14,B38,B40").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite IAC TP", "Ind Retraite IAC Bâtiment", "Ind Retraite ETAM TP", "Ind Retraite ETAM Bâtiment"
Range("B1:B4,B6,B9,B10,F3:F14,E14").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite Métallurgie", "Ind Retraite Intermittents"
Range("B1:B6,B9,B10,F3:F14").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite SYNTEC"
Range("B1:B6,B9,B10,E14,F3:F14").ClearContents
MsgBox "les données sont effacées"
Case "ICL CADRES SYNTEC"
Range("B1:B4,B6,B9,B10,B14,B31,B33,E3:E14").ClearContents
MsgBox "les données sont effacées"
Case "ICL ETAM SYNTEC"
Range("B1:B4,B6,B9,B10,B13,B34,B36,E14,F3:F14").ClearContents
MsgBox "les données sont effacées"
Case "ICL Exploit. Forest."
Range("B1:B6,B9,B10,B14,B31,B33,E3:E14").ClearContents
MsgBox "les données sont effacées"
Case "Ind Retraite Exploit."
Range("B1:B6,B9,B10,F3:F14").ClearContents
MsgBox "les données sont effacées"
End Select
ActiveWorkbook.Close
Sheets("Menu").Select
Range("A1:L1").Select
End Sub

Merci pour le changement de catégorie

Cdt
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 nov. 2012 à 10:13
Quand tu colles du code, utilises la coloration syntaxique (3ème icone à droite) = plus lisible

Il faut aussi donner des infos.
Jeter du code comme ça n'incite pas à répondre.

"je n'ai pas de débogage"
Ça veut dire quoi ?

Ajoute ceci avant le Select Case :
MsgBox ActiveSheet.Name
et compare lettre à lettre avec le texte que tu as utilisé dans les Case qui suivent.

C'est tout ce qu'on peut pour toi.
Tu as déplacé le ActiveWorkbook.Close en fin de code.
Comprends-tu ce que fait cette instruction ?
Si tu fermes le classeur, inutile de vouloir ensuite afficher une feuille nommée "Menu" : Elle n'est plus là : le classeur est fermé.
0
Rejoignez-nous