Insérer le contenu d'une cellule excel dans une textbox vb6

Signaler
Messages postés
5
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
4 juin 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

Je suis entrain de réaliser un programme VB6 permettant de faire le suivi d'interventions réalisées au sein d'un service informatique.

Mon programme dispose de plusieurs textbox que l'on rempli avec le nom de l'intervenant, du demandeur ...
Une fois toutes ces informations saisies, elles sont stockées dans un fichier Excel.

J'ai créé un menu à mon programme permettant d'enregistrer le suivi, en créer un nouveau, enregistrer etc.

Je voudrai par le biais de la fonction ouvrir, choisir un fichier Excel d'une intervention précédente et que les informations qu'il contient soit recopier dans les textboxs correspondante.

Pour le moment lorsque je clic sur ouvrir, cela m'ouvre la fenêtre permettant de choisir le fichier mais je ne sais pas comment faire après pour que les informations qu'il contient soit copiées dans les bonnes textbox.

Voici pour le moment le code que j'ai :
*********************************************************
Private Sub ouvrir_Click()
    'Déifnition des propriétés de la boite de dialogue Ouvrir du menu Fichier
    cmd.DialogTitle = "Ouvrir"
    cmd.CancelError = False
    cmd.Filter = "Ecxel (*.xls)"
    cmd.FilterIndex = 1
    cmd.InitDir = "\\srvblad\baseteck\Suivi d'intervention"
    cmd.ShowOpen
      
    'Transfert des valeurs
    nomintervenant.Value = Xl.Range("b" & 1).Value
End Sub
*********************************************************

12 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Si tu es vraiment sous VB6 (et pas sous VBA de Excel) :
- Le CommonDialog ne permet que de sélectionner l'emplacement et le nom du fichier
  Il te faut ensuite l'ouvrir
- Une fois que tu l'auras ouvert, il sera facile de récupérer la valeur d'une des cellules pour la stocker dans ta TextBox

Pour tout cela, suffit de chercher "ouvrir excel" parmi les sources du site et tu sauras tout.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
5
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
4 juin 2008

Merci de ton aide mais comment puis-je récupérer le nom du fichier sélectionné dans la fenêtre ouvrir pour ensuite demander à mon programme de l'ouvrir?
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
salut,

çà doit être msgbox cmd.filename...
il n'y a pas d'aide (F1) dans office?

ps : le bouton valider sert à valider la réponse donnant la solution finale au pb.... si tu valides tout c'est qu'il n'y a plus de question non?
Messages postés
5
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
4 juin 2008

Pourquoi office? Moi ce qui m'intéresse c'est de récupérer le nom de fichier sélectionné dans la fenêtre ouvrir (comme dans tout autre programme) mais de visual basic 6.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
t'en fais quoi de ton document ouvert......
comment tu sélectionnes une cellule si tu n'as pas au moins la référence à excel....
tu as testé .filename ?

et F1 reste F1, par chance
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Ouvre les yeux, Batix : cmd.filename
Maintenant que tu as le nom du fichier, il faut ouvrir le fichier Excel.
Pour ça, charge et regarde des sources qui parlent de Excel.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Peut-être aussi une recherche sur
Excel.Application

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
5
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
4 juin 2008

J'ai réussi à trouver.
Voici le bout de code :

************************************************************
    'Définition des propriétés de la boite de dialogue Ouvrir du menu Fichier
    cmd.DialogTitle = "Ouvrir suivi"
    cmd.CancelError = False
    cmd.Filter = "Excel (*.xls)"
    cmd.FilterIndex = 1
    cmd.InitDir = "[file://\\chemin répertoire \\chemin répertoire]"
    cmd.ShowOpen
    
    'Ouverture du fichier Excel séléctionné
    Dim fichier As String
    Dim DevisExcel As Object


    fichier = cmd.FileName
   
    Set DevisExcel = CreateObject("excel.Application")
    DevisExcel.Visible = True
    Workbooks.Open FileName:=fichier, Editable:=True
************************************************************

Au final quand je passe par le menu et que je fais ouvrir, cela m'ouvre bien mon fichier Excel. Il ne me reste plus qu'à trouver comment transférer les informations qu'il contient vers mes textbox. Si quelqu'un a une suggestion.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
47
euh.....
cette ligne fonctionne? : Workbooks.Open FileName:=fichier, Editable:=True
certain de ne pas être en VBA (dans excel)? eu non pas VB6?!

à moins que Workbooks soit déclarée quelquepart?
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Tu peux te créer d'autres variables qui agiront comme WorkBook et WorkSheet
    Dim wkBook As Object
    Dim wkSheet as object

    Set DevisExcel = CreateObject("Excel.Application")
    DevisExcel.Workbooks.Open FileName:=fichier, Editable:=True
    Set wkBook = DevisExcel.ActiveWorkbook
    Set wkSheet = wkBook .ActiveSheet ' ou Sheets("NomDeLaFeuille")

'Pour inscrire des données
    wkSheet.Range("A1") = MaValeur

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Messages postés
5
Date d'inscription
mardi 22 juillet 2003
Statut
Membre
Dernière intervention
4 juin 2008

Workbooks.Open FileName:=fichier, Editable:=True

Cette ligne fonctionne. Si je ne l'a met pas, mon classeur s'ouvre et se referme.
Et je t'assure que je suis bien sous VB6.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Il faudrait voir le code de ta procédure pour mieux comprendre.
Es-tu certain de ne pas avoir mis de Close dans cette procédure ?

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI