Donc je reviens pour une question, j'ai un classeur (sources) se nommant RapHebdo, de ce classeur, existe la possibilité de faire un "Bilan", seul problème, si l'utilisateur clique sur "Faire le bilan" alors qu'il n'existe aucun rapport, je vous laisse deviner la suite :-), ça bug...
Je vous poste le code qui génère le rapport :
Sub bilan(control As IRibbonControl)
'Ici je déclare mes variables Dim wk1 As Workbook Dim wk2 As Workbook Dim sh As Worksheet Dim Nom_Feuille As String Dim total As String Dim hzc As String Dim trpen As String Dim nuit As String Dim rep As String Dim ClasseurPath As String Dim sem As String Dim section As String Dim l As Integer
Set wk1 = ThisWorkbook l = 2 'ouverture du classeur Set wk2 = Workbooks.Open(ClasseurPath) For Each sh In wk1.Worksheets If sh.Name <> "MATRICE" And sh.Name <> "VIERGE" Then 'ton code Nom_Feuille = sh.Name 'Copie des noms des feuilles dans une colonne wk2.Sheets(1).Cells(l, 1).Value = Nom_Feuille 'Copie de la semaine dans une colonne sem = sh.Range("AZ8").Value wk2.Sheets(1).Cells(l, 2).Value = sem 'Copie de la section dans une colonne section = sh.Range("Z11").Value wk2.Sheets(1).Cells(l, 3).Value = section 'copie des nombres totales d'heure de chantiers total = sh.Range("CW18").Value wk2.Sheets(1).Cells(l, 4).Value = total 'copie des nombres totales d'heures en ZC hzc = sh.Range("CW21").Value wk2.Sheets(1).Cells(l, 5).Value = hzc 'copie des nombres totales de travaux pénibles trpen = sh.Range("CW23").Value wk2.Sheets(1).Cells(l, 6).Value = trpen 'copie des nombres totales d'heure de nuits nuit = sh.Range("CW25").Value wk2.Sheets(1).Cells(l, 7).Value = nuit l = l + 1 Else
sh.Visible = xlSheetHidden ' ou xlSheetVeryHidden End If Next
si l'utilisateur clique sur "Faire le bilan" alors qu'il n'existe aucun rapport, je vous laisse deviner la suite :-), ça bug...
Ca bug... certe... mais tu as un message d'erreur.... et il serait bien de nous le donner !
J'oubliais, la ligne pointée pour l'erreur est celle-ci :
sh.Visible = xlSheetHidden
..Ce qui ne semble pas être en rapport avec la réponse de Pivert....
Ces feuilles sont déjà masquées non ? voir même sont en xlSheetVeryHidden si ça se trouve....
il faudrait commencer par, le temps de tests du moins, ajouter quelques debug.print sur certaines variables afin de comprendre d'où vient exactement le souci....
Et puis... avant de la masquer.. s'assurer qu'elle est visible :
if sh.Visible = True Then...
Else
debug.print "Nom de la feuille : " & sh.Name
debug.print "Visibilité de la feuille : " & sh.Visible
if sh.Visible = True then sh.Visible = xlSheetHidden ' ou xlSheetVeryHidden
End If
Et bien sûr.. tester ton code en mode pas à pas serait un plus pour comprendre d'où vient le souci....
J'ai répondu un peu vite, si le fichier n'existe pas, mais qu'il y a un chemin il faut faire ceci:
Option Explicit
Dim ClasseurPath As String
Dim verifier As Boolean
Private Sub CommandButton1_Click()
ClasseurPath = rep & "\Documents\POINTAGES\bilanHebdo.xlsm"
verifier = ExisteFichier(ClasseurPath)
If verifier = False Then Exit Sub
Workbooks.Open (ClasseurPath)
End Sub
Public Function ExisteFichier(S As String) As Boolean
Dim fichier As Object
Set fichier = CreateObject("Scripting.FileSystemObject")
ExisteFichier = fichier.FileExists(S)
End Function
Vous n’avez pas trouvé la réponse que vous recherchez ?
Bonjour,
ce qui, au bout du compte, semble être ceci :
Private Sub CommandButton2_Click() For Each sh In wk1.Worksheets Select Case sh.Name Case "MATRICE", "VIERGE" sh.Visible = True Case Else sh.Visible = False End Select Next End Sub
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Donc le fichier bilanHebdo est existant, et se trouve dans le dossier "mes documents" (comme RapHebdo)
RapHebdo et bilanHebdo sont 2 fichiers bien distint
En fait, le but est que si il n'y a pas de rapport fait, alors si l'intervenant clique sur faire le bilan, un message dise "veuillez faire au moins un rapport"...
Désolé pour mon manque de détailles.... encore...lol
MAis déjà, je pense qu'avec ce que vous m'avez fourni je devrais pouvoir me dépatouiller...