Re bonjour,
J'ai quelques questions sur l'ouverture d'un fichier excel via vba.
J'ai une variable globale appexcel que j'initialise en début de prog; à l'aide d'un filedialog, l'utilisateur choisit son fichier excel, je l'ouvre en readonly (du moins je le pense) et ensuite je fais mes traitements pour recupérer les données.
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 ' var globale dim appexcel as Excel.application .... sub lectureExcel() .... Set appexcel = CreateObject("Excel.Application") Set fd = Application.FileDialog(msoFileDialogFilePicker) fd.AllowMultiSelect = False fd.Filters.Clear fd.Filters.Add "fichiers excel", "*.xls" With fd If .Show = -1 Then fichiersource = .SelectedItems(1) Set appexcel = CreateObject("Excel.Application") appexcel.Workbooks.Open fichiersource, ReadOnly:=True appexcel.Workbooks(1).Worksheets(3).Activate For ligne_courante = 2 To appexcel.ActiveCell.Row val = appexcel.worksheets(3).cells(ligne_courante,2) Next End If End With appexcel.Application.Quit Set appexcel = Nothing
A partir de ce code j'ai 2 questions :
- Comment récupérer le nombre de ligne de la 3eme feuille du fichier excel. Par nombre de ligne, j'entend la derniere ligne ou il y a au moins une donnée. Moi je suis obligé de faire un activate sur la feuille 3, puis je determine ce nbre grace a la position du curseur (ce qui veut dire que si le curseur est sur la ligne 1, il renverra 1...)
- comment fermer le fichier sans que j'ai une boite de dialogue qui s'affiche et qui me demande si je veux enregistrer les modifs (alors que je suis en lecture seule normalement)
merci pour vos réponses
Partager