Extraire donné d'une cellule excel

Résolu
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014 - 30 mai 2011 à 15:19
eccsup Messages postés 77 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 14 novembre 2022 - 1 juin 2011 à 10:13
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

eccsup Messages postés 77 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 14 novembre 2022
30 mai 2011 à 15:33
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
3
eccsup Messages postés 77 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 14 novembre 2022
31 mai 2011 à 08:44
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
3
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
30 mai 2011 à 15:50
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 ?
0
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
31 mai 2011 à 10:13
D'accord ! Merci beaucoup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Moundir76 Messages postés 281 Date d'inscription dimanche 3 octobre 2010 Statut Membre Dernière intervention 16 mai 2014
31 mai 2011 à 10:36
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"
0
eccsup Messages postés 77 Date d'inscription jeudi 14 mai 2009 Statut Membre Dernière intervention 14 novembre 2022
1 juin 2011 à 10:13
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...
0
Rejoignez-nous