Comment récupérer le nombre de lignes completé dans EXCEL via VB6 ??

Résolu
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009 - 12 sept. 2007 à 10:35
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009 - 13 sept. 2007 à 13:20
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

jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2007 à 10:50
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
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2007 à 11:48
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
3
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 sept. 2007 à 10:19
Re,

Bah comme ceci

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

@+: Ju£i?n
Pensez: Réponse acceptée
3
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 11:13
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
0

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

Posez votre question
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 11:22
Mais c pas du VBA to script ??

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2007 à 11:29
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
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 11:38
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
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 12:03
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
12 sept. 2007 à 14:26
Ben si tu n'as pas Office, comment veux-tu ouvrir des fichiers Excel et utiliser des références à Excel ???

MPi
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 14:42
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
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 15:07
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
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
12 sept. 2007 à 15:07
Merci a toi jrivet sans ton code j'aurais pas trouvé ^^

MerZi ... Zi ... Zi ... PtitCat   
                                 P.S:DSL pour l'orthographe
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 sept. 2007 à 15:19
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
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 21
12 sept. 2007 à 15:31
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
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
13 sept. 2007 à 09:42
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
0
VB_PtitCat Messages postés 197 Date d'inscription mercredi 30 mai 2007 Statut Membre Dernière intervention 13 mai 2009
13 sept. 2007 à 13:20
GG !!!

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