Comment récupérer le nombre de lignes completé dans EXCEL via VB6 ?? [Résolu]

Signaler
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009
-
Bonjour, voilà je doit créer une toute petite appli qui consiste a compléter une combobox avec les valeurs de la première colonne de ma table excel, problème je ne sais pas vraiment comment faire, si vous pouviez m'aider ...
Donc voilà pour commencer j'aimerais savoir comment je peux récupérer le nombres de lignes complétées dans ma table EXCEL ...

Mrc d'avance de l'aide que vous m'apporterais

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe

16 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,
Tiens regarde ce que fait ce code VB6

Option Explicit
'Dans le menu références du projet
'Ajouter Microsoft Excel 9.0 Object Library
'(9.0 ou équivalent)
Private Sub Form_Load()
Dim ExcelApp As New Excel.Application
Dim XLSSource As Workbook
Dim Cel As Range
   'on rend invisible EXCEL
   ExcelApp.Visible = False
   'on ouvre le classeur source
   Set XLSSource = ExcelApp.Workbooks.Open("C:\Test.xls")
   'on sélectionne la colonne A de la Feuille d'indice 1
   XLSSource.Worksheets(1).Columns("A:A").Select
   'Pour chaque cellule de la selection
   For Each Cel In Selection
       'Si la cellule est vide on sort de la boucle
       If IsEmpty(Cel) Then Exit For
       'ON ajoute à la Combo la valeur de la cellule
       Call CboColA.AddItem(Cel.Text)
   Next
   CboColA.ListIndex = 0
   
   'On ferme le classeur sans sauver
   Call XLSSource.Close(False)
   'on quitte Excel
   Call ExcelApp.Quit
   'on détruit les objets
   Set ExcelApp = Nothing
   Set XLSSource = Nothing
   Set Cel = Nothing
End Sub<hr />, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Re,
Dans ce cas essaie peu etre ceci:

Option Explicit
'Dans le menu références du projet
'Ajouter Microsoft Excel 9.0 Object Library
'(9.0 ou équivalent)
Private Sub Form_Load()
Dim ExcelApp As New Excel.Application
Dim XLSSource As Workbook
Dim NumLigne As Long
   'on rend invisible EXCEL
   ExcelApp.Visible = False
   'on ouvre le classeur source
   Set XLSSource = ExcelApp.Workbooks.Open("C:\Test.xls")

   'On Commence à la ligne 3 et
   'on s'arrêtera a la premiere cellule vide
   NumLigne = 3
   XLSSource.Worksheets(1).Range("A" & NumLigne).Activate
   While Not IsEmpty(ActiveCell)
       'ON ajoute à la Combo la valeur de la cellule
       Call CboColA.AddItem(ActiveCell.Text)
   Wend
   CboColA.ListIndex = 0

   'On ferme le classeur sans sauver
   Call XLSSource.Close(False)
   'on quitte Excel
   Call ExcelApp.Quit
   'on détruit les objets
   Set ExcelApp = Nothing
   Set XLSSource = Nothing
   Set Cel = Nothing
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Re,

Bah comme ceci

selection = XLSSource.Worksheets("HFH").Range("A" & Cstr(lign)).Text

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

J'ai fait quelque modification, mais il me dit que le type est incompatible en : 
XLSSource.Worksheets(1).Columns("A:1").Select

Option Explicit
'Dans le menu références du projet
'Ajouter Microsoft Excel 9.0 Object Library
'(9.0 ou équivalent)
Private Sub Form_Load()
Dim ExcelApp As New Excel.Application
Dim XLSSource As Workbook
Dim Cel As Range
   'on rend invisible EXCEL
   ExcelApp.Visible = False
    'on ouvre le classeur source
   Set XLSSource = ExcelApp.Workbooks.Open("C:\Documents and Settings\admin\Bureau\TRANE_Fane-coil\Identification schéma.xls")
   'on sélectionne la colonne A de la Feuille d'indice 1
   XLSSource.Worksheets(1).Columns("A:1").Select
   'Pour chaque cellule de la selection
   For Each Cel In Selection
       'Si la cellule est vide on sort de la boucle
       If IsEmpty(Cel) Then Exit For
       'ON ajoute à la Combo la valeur de la cellule
       Call CbxNshm.AddItem(Cel.Text)
   Next
   CboColA.ListIndex = 0
   
    'On ferme le classeur sans sauver
   Call XLSSource.Close(False)
   'on quitte Excel
   Call ExcelApp.Quit
   'on détruit les objets
   Set ExcelApp = Nothing
   Set XLSSource = Nothing
   Set Cel = Nothing
End Sub

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Mais c pas du VBA to script ??

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Le titre de ta question est
Comment récupérer le nombre de lignes completé dans EXCEL via
VB6


Alors moi "bêtement"  je te donne un code VB6.....

Columns("A:1").Select ne veut strictemtn rien dire.
Comment souhaites tu le modifier?
Si tu veux selectionner la cellule A1 c'est  XLSSource.Worksheets(1).Range("A1").Select qu'il faut mettre

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Non je me doute bien, mais ca arrive de faire des erreur ^^
moi j'm'y connais tjs pas trop en VB donc quand j'ai vue Worksheets, jme suis dit tien comme en VBA point, als je vérifie ce que je trouve normal.
Bref  il me dit au bout de 10 bonne seconde, que la méthode select de la classe range a échoué ...
c'est peut etre parce que moi j'ai mis range("A3"), car c'est seulement a partir de la ligne 3 que les information me sont utile

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Bah maintenant y mdit que c'est la méthode Activate de la classe qui a échoué.
Mais je commence a croire que le problème vien de mon VB, car en faite des que je le demarre il me demande d'installer Office 2000, j'annule y m'ouvre quand même VB, et lorsque je lance l'appli, il me redemande d'installer l'office 2000, mais moi j'en ai pas au travail, donc je suppose que c'est aussi peut être ca qui fait que l'appli ne fonctionne pas, als la je continue a éssayé de faire marcher ton script qui ma l'air bon ... et en même temps je cherche un office digne de ce nom !!

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Ben si tu n'as pas Office, comment veux-tu ouvrir des fichiers Excel et utiliser des références à Excel ???

MPi
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Mais j'ai pas dit que j'avais pas office, soit logique comment j'aurais crée mon fichier excel, franchement, c'est just que ca merdouille des fois de toute manière je sais que le problème ne vien pas de mon pc, vu que j'ai test l'app sur un autre pc, c'est just une erreur de syntaxe ... alors quand on ne sais pas lire correctement les post, on ne post pas de connerie derière mrc !!
MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Et ma solution est :
Option Explicit
'Dans le menu références du projet
'Ajouter Microsoft Excel 9.0 Object Library
'(9.0 ou équivalent)
Private Sub Form_Load()
Dim ExcelApp As New Excel.Application
Dim XLSSource As Workbook
Dim selection As String
Dim lign As Integer
lign = 3
'Dim Cel As Range
   'on rend invisible EXCEL
   ExcelApp.Visible = False
   'on ouvre le classeur source
   Set XLSSource = _
     ExcelApp.Workbooks.Open("C:\Documents and Settings\admin\Bureau\TRANE_Fane-coil\Identification schéma.xls")
   'on sélectionne la colonne A de la Feuille d'indice 1
   
   selection = XLSSource.Worksheets("HFH").Range("A3").Cells(lign, 1)
   While (selection <> "")
       Call CbxNshm.AddItem(selection)
       lign = lign + 1
       selection = XLSSource.Worksheets("HFH").Range("A3").Cells(lign, 1)
   Wend
   
   'On ferme le classeur sans sauver
   Call XLSSource.Close(False)
   'on quitte Excel
   Call ExcelApp.Quit
   'on détruit les objets
   Set ExcelApp = Nothing
   Set XLSSource = Nothing
End Sub, ----
(Coloration syntaxique automatique par Kenji)

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

Merci a toi jrivet sans ton code j'aurais pas trouvé ^^

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Re,
Mais il n'y a pas de quoi.
Petite amélioration il me smeble que ceci

   selection = XLSSource.Worksheets("HFH").Range("A3").Cells(lign, 1)

Pourrait s'écrire simplement

   selection = XLSSource.Worksheets("HFH").Range("A3").Text (enfin je crois)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Désolé, mais ce que j'ai lu portait à confusion...
>> il me redemande d'installer l'office 2000, mais moi j'en ai pas au travail,
pas besoin de grimper dans les rideaux

MPi
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

bah je n'est pas de CD c'tout, mail lorsqu'il demande d'installer c'est just un ptit fichier, genre ca t'la jamais fait ?

jrivet ==>> moi jpe pas mète ca, même si je pense aussi que ca doit marché, car il faut que je parcours toute ma colonne donc avec le .text comment je fait pour changer de lign ^^

Bref sujet clos !!

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
Messages postés
197
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
13 mai 2009

GG !!!

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe