Bonjour à tous, j'ai fait avec vb une petite appli qui doit m'ouvrir un classeur Excel précis avec des boutons représentants les différents onglets de ce meme classeur.
Quand j'appui sur un boutton il doit m'ouvrir mon fichier et me renvoyer vers la feuille concernée. Mais je rencontre un probème : l'appli se lance mais des que j'appui sur un boutton il m'ouvre le classeur sans me renvoyer vers la feuille concernée. De plus, des que j'appui sur un autre boutton pour changer de feuilles, il me met une erreur d'execution "Indice Hors de la plage". Je ne vois pas où est le problème... Je suis un pur novice
J'ai d'abord rajouter un module à mon projet contenant 3 variables, et dans mon forms j'ai fait une fonction me permettant de verifier si le fichier est deja ouvert au cas ou je souhaiterai voir une feuille, puis une autre,.. Quelqu'un pourrait m'aider et m'apporter une solution ? Merci bien !
Voici le code :
Module :
Et dans mon Forms :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public appExcel As Excel.Application Public wbExcel As Excel.Workbook 'Classeur Excel Public wsExcel As Excel.Worksheet 'Feuille Excel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 Function VerifOuvertureClasseur(Fichier As String) As Boolean Dim x As Integer On Error Resume Next x = FreeFile() Open Fichier For Input Lock Read As #x Close x If Err.Number = 0 Then VerifOuvertureClasseur = False If Err.Number = 70 Then VerifOuvertureClasseur = True End Function Private Sub Command1_Click(Index As Integer) 'Ouverture d'un fichier Excel If VerifOuvertureClasseur("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") Then Set wsExcel = wbExcel.Worksheets(13) Else Set appExcel = CreateObject("Excel.Application") Set wbExcel = appExcel.Workbooks.Open("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") appExcel.Visible = True 'wsExcel correspond à la première feuille du fichier Set wsExcel = wbExcel.Worksheets(13) End If End Sub Private Sub Command2_Click(Index As Integer) 'Ouverture d'un fichier Excel If VerifOuvertureClasseur("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") Then Set wsExcel = wbExcel.Worksheets(12) Else Set appExcel = CreateObject("Excel.Application") Set wbExcel = appExcel.Workbooks.Open("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") appExcel.Visible = True 'wsExcel correspond à la première feuille du fichier Set wsExcel = wbExcel.Worksheets(12) End If End Sub Private Sub Command3_Click(Index As Integer) 'Ouverture d'un fichier Excel If VerifOuvertureClasseur("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") Then Set wsExcel = wbExcel.Worksheets(7) Else Set appExcel = CreateObject("Excel.Application") Set wbExcel = appExcel.Workbooks.Open("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") appExcel.Visible = True 'wsExcel correspond à la première feuille du fichier Set wsExcel = wbExcel.Worksheets(7) End If End Sub Private Sub Command4_Click(Index As Integer) 'Ouverture d'un fichier Excel If VerifOuvertureClasseur("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") Then Set wsExcel = wbExcel.Worksheets(9) Else Set appExcel = CreateObject("Excel.Application") Set wbExcel = appExcel.Workbooks.Open("S:\PROD-GAR\Revue de perf GAR\2010\TDB_liaison.xls") appExcel.Visible = True 'wsExcel correspond à la première feuille du fichier Set wsExcel = wbExcel.Worksheets(9) End If End Sub Private Sub Fermer_Click() Workbooks("TDB_liaison.xls").Saved = True End Sub
Partager