[Catégorie modifiée VB6 -> VBA] Valeur tapée en dehors des limites
FMAILYS
-
21 nov. 2012 à 14:36
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 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
A voir également:
[Catégorie modifiée VB6 -> VBA] Valeur tapée en dehors des limites
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
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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é.