Re bonjour,

J'ai quelques questions sur l'ouverture d'un fichier excel via vba.
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
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.

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