Extraire donné d'une cellule excel [Résolu]

Signaler
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
-
eccsup
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018
-
Bonjour,

Je souhaiterais récuperer des valeurs d'un tableau excel via mon application VB.

J'arrive bien a ouvrir un .xls mais pas à extraire de données.

Je ne comprends pas comment extraire en indiquant à la fois la colonne et a la fois la ligne


Merci d'avance

6 réponses

Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018

Salut, voici un morceau de code extrait d'une de mes fonction qui marche très bien, a toi de l'adapter...

Private sub .....
Dim xlApp As Excel.Application
            Dim xlWorkBook As Excel.Workbook
            Dim xlWorkSheet As Excel.Worksheet
            Dim range As Excel.Range
            Dim rCnt As Integer
            Dim cCnt As Integer
            Dim Obj As Object

            xlApp = New Excel.Application
            xlWorkBook = xlApp.Workbooks.Open(nomFichierExcel)
            xlWorkSheet = xlWorkBook.Worksheets(1)

            range = xlWorkSheet.UsedRange
            
            For rCnt = 1 To range.Rows.Count
                For cCnt = 1 To range.Columns.Count
                    Obj = CType(range.Cells(rCnt, cCnt), Excel.Range)
                    MsgBox(Obj.value)
                    'Obj.value correspond au contenu de ta case
                Next
                
            Next

                        xlWorkBook.Close()
            xlApp.Quit()

            releaseObject(xlApp)
            releaseObject(xlWorkBook)
            releaseObject(xlWorkSheet)
end sub

 Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018

oui,

Si tu ne met pas ca, tu ne peut pas ouvrir ton fichier depuis Excel, l'ordinateur te dit qu'il 'est occupé par un autre processus', meme si l'execution du programme est terminée
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

Merci beaucoup pour ce code qui m'a permis de comprendre comment utiliser la fonction Range.

Cependant je ne comprends pas la fin de ton code

Private Sub releaseObject(ByVal obj As Object)
        Try
            System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
            obj = Nothing
        Catch ex As Exception
            obj = Nothing
        Finally
            GC.Collect()
        End Try
    End Sub
 



Ce code a t il pour but de fermer le fichier excel ?
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

D'accord ! Merci beaucoup
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014

Cependant, je ne comprends pas pourquoi un processus EXCEL.EXE reste dans le gestionnaire des taches et je ne peux l'enlever que par la manip "Terminer le Processus"
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018

Ferme ta session et relance la, ce processus devait rester de tes précédents éssais, ou d'un autre morceau de ton code où les ressources liées au fichier Excelsont mal libérées...