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

Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
- - Dernière réponse : eccsup
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018
- 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
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 187 internautes nous ont dit merci ce mois-ci

Commenter la réponse de eccsup
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 187 internautes nous ont dit merci ce mois-ci

Commenter la réponse de eccsup
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
0
Merci
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 ?
Commenter la réponse de Moundir76
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
0
Merci
D'accord ! Merci beaucoup
Commenter la réponse de Moundir76
Messages postés
286
Date d'inscription
dimanche 3 octobre 2010
Statut
Membre
Dernière intervention
16 mai 2014
0
Merci
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"
Commenter la réponse de Moundir76
Messages postés
76
Date d'inscription
jeudi 14 mai 2009
Statut
Membre
Dernière intervention
2 août 2018
0
Merci
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...
Commenter la réponse de eccsup