Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

controle sous VB6 .

7 réponses
Avatar
PHIL
Bonsoir,

j'ai un form avec une zone de texte( txtname):
ou apparait ce type de texte: "100- A VOIR"
et sur ce form je selectionne un fichier excel ou dans A1 j'ai du texte.

et j'ai un bouton de commande sur ce form, ou je souhaite faire un controle:
c'est a dire.
si dans le texte de la cellule A1,du fichier selectionner(le fichier
selectionné apparait dans une zone du texte(txtname2) du form) qui n'est pas
encore ouvert mais qui existe, j'ai la valeur 100 et que dans la zone de
texte(txtname) de ma form j'ai aussi 100,alors lancé l'execution,sinon
afficher un message d'erreur du type "vous vous etes trompé de fichier"

Connaisez vous le code,qui me permmettrai de faire ceci?

merci

7 réponses

Avatar
Patrick Philippot
> Connaisez vous le code,qui me permmettrai de faire ceci?



Bonjour,

Méthode late binding (peu recommandée mais simple):
-----------------------------

Dim objExcel As Object
Set objExcel = GetObject("monfichier.xls")

le contenu de A1 est dans objExcel.activesheet.cells(1, 1)

(si l'indexation commence bien à 1 - je ne sais plus).



Méthode avec early binding (beaucoup plus propre mais un peu plus
lourde)
--------------------------------------

Vous créez une référence sur Microsoft Excel xx.x Object Library

Vous déclarez une variable de type Excel.application

Dim objExcel As Excel.application
set objExcel = New Excel.application

Vous utilisez ensuite le modèle objet d'Excel pour effectuer les
opérations de chargement du fichier et de récupération des données. Ce
modèle est décrit là:

http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/dv_wrcore/html/wrtskhowtoopenworkbooks.asp

C'est le même que celui accessible depuis VBA.

Avantage de l'early binding:

1. Le type est connu donc Intellisense peut fonctionner.
2. On peut capturer les événements.
3. Les erreurs sur les noms de propriétés ou de méthodes sont détectées
à la compilation et non à l'exécution.
4. Ça va plus vite.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
testou
il faut savoir que le nom du fichier je ne doit pas le rentrer dans le code
en dur.
car le choix du fichier depend du choix de l'utilisateur.

comment serait mon code du coup?

merci

"Patrick Philippot" a écrit :

> Connaisez vous le code,qui me permmettrai de faire ceci?

Bonjour,

Méthode late binding (peu recommandée mais simple):
-----------------------------

Dim objExcel As Object
Set objExcel = GetObject("monfichier.xls")

le contenu de A1 est dans objExcel.activesheet.cells(1, 1)

(si l'indexation commence bien à 1 - je ne sais plus).



Méthode avec early binding (beaucoup plus propre mais un peu plus
lourde)
--------------------------------------

Vous créez une référence sur Microsoft Excel xx.x Object Library

Vous déclarez une variable de type Excel.application

Dim objExcel As Excel.application
set objExcel = New Excel.application

Vous utilisez ensuite le modèle objet d'Excel pour effectuer les
opérations de chargement du fichier et de récupération des données. Ce
modèle est décrit là:

http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/dv_wrcore/html/wrtskhowtoopenworkbooks.asp

C'est le même que celui accessible depuis VBA.

Avantage de l'early binding:

1. Le type est connu donc Intellisense peut fonctionner.
2. On peut capturer les événements.
3. Les erreurs sur les noms de propriétés ou de méthodes sont détectées
à la compilation et non à l'exécution.
4. Ça va plus vite.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
PHIL
il faut savoir que le nom du fichier je ne doit pas le rentrer dans le code
en dur.
car le choix du fichier depend du choix de l'utilisateur.

comment serait mon code du coup?

merci


"testou" wrote:

il faut savoir que le nom du fichier je ne doit pas le rentrer dans le code
en dur.
car le choix du fichier depend du choix de l'utilisateur.

comment serait mon code du coup?

merci

"Patrick Philippot" a écrit :

> > Connaisez vous le code,qui me permmettrai de faire ceci?
>
> Bonjour,
>
> Méthode late binding (peu recommandée mais simple):
> -----------------------------
>
> Dim objExcel As Object
> Set objExcel = GetObject("monfichier.xls")
>
> le contenu de A1 est dans objExcel.activesheet.cells(1, 1)
>
> (si l'indexation commence bien à 1 - je ne sais plus).
>
>
>
> Méthode avec early binding (beaucoup plus propre mais un peu plus
> lourde)
> --------------------------------------
>
> Vous créez une référence sur Microsoft Excel xx.x Object Library
>
> Vous déclarez une variable de type Excel.application
>
> Dim objExcel As Excel.application
> set objExcel = New Excel.application
>
> Vous utilisez ensuite le modèle objet d'Excel pour effectuer les
> opérations de chargement du fichier et de récupération des données. Ce
> modèle est décrit là:
>
> http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/dv_wrcore/html/wrtskhowtoopenworkbooks.asp
>
> C'est le même que celui accessible depuis VBA.
>
> Avantage de l'early binding:
>
> 1. Le type est connu donc Intellisense peut fonctionner.
> 2. On peut capturer les événements.
> 3. Les erreurs sur les noms de propriétés ou de méthodes sont détectées
> à la compilation et non à l'exécution.
> 4. Ça va plus vite.
>
> --
> Patrick Philippot - Microsoft MVP
> MainSoft Consulting Services
> www.mainsoft.fr
>
>
>


Avatar
PHIL
je souhaite tester en plus une valeur dans une zone de texte.
a savoir dans ma cellule A1, j'aurai par exemple "100 a savoir" comme chaine
de charactere, et sur ma zone de texte j'aurai "A revoir 100",moi je souhaite
controler,si il ya a 100 dans la premiere chaine de caractere,et aussi 100
dans la seconde chaine de caractère,alors c'est OK.et je lance le fichier.
sinon message d'erreur "vous vous etes trompé de fichier"

merci


"PHIL" a écrit :

il faut savoir que le nom du fichier je ne doit pas le rentrer dans le code
en dur.
car le choix du fichier depend du choix de l'utilisateur.

comment serait mon code du coup?

merci


"testou" wrote:

> il faut savoir que le nom du fichier je ne doit pas le rentrer dans le code
> en dur.
> car le choix du fichier depend du choix de l'utilisateur.
>
> comment serait mon code du coup?
>
> merci
>
> "Patrick Philippot" a écrit :
>
> > > Connaisez vous le code,qui me permmettrai de faire ceci?
> >
> > Bonjour,
> >
> > Méthode late binding (peu recommandée mais simple):
> > -----------------------------
> >
> > Dim objExcel As Object
> > Set objExcel = GetObject("monfichier.xls")
> >
> > le contenu de A1 est dans objExcel.activesheet.cells(1, 1)
> >
> > (si l'indexation commence bien à 1 - je ne sais plus).
> >
> >
> >
> > Méthode avec early binding (beaucoup plus propre mais un peu plus
> > lourde)
> > --------------------------------------
> >
> > Vous créez une référence sur Microsoft Excel xx.x Object Library
> >
> > Vous déclarez une variable de type Excel.application
> >
> > Dim objExcel As Excel.application
> > set objExcel = New Excel.application
> >
> > Vous utilisez ensuite le modèle objet d'Excel pour effectuer les
> > opérations de chargement du fichier et de récupération des données. Ce
> > modèle est décrit là:
> >
> > http://msdn.microsoft.com/library/fre/default.asp?url=/library/FRE/dv_wrcore/html/wrtskhowtoopenworkbooks.asp
> >
> > C'est le même que celui accessible depuis VBA.
> >
> > Avantage de l'early binding:
> >
> > 1. Le type est connu donc Intellisense peut fonctionner.
> > 2. On peut capturer les événements.
> > 3. Les erreurs sur les noms de propriétés ou de méthodes sont détectées
> > à la compilation et non à l'exécution.
> > 4. Ça va plus vite.
> >
> > --
> > Patrick Philippot - Microsoft MVP
> > MainSoft Consulting Services
> > www.mainsoft.fr
> >
> >
> >


Avatar
Patrick Philippot
testou wrote:
il faut savoir que le nom du fichier je ne doit pas le rentrer dans
le code en dur.
car le choix du fichier depend du choix de l'utilisateur.

comment serait mon code du coup?



Eh bien allez chercher le nom du fichier là où il se trouve, stockez le
dans une variable de type chaîne et passez cette variable à GetObject.
Vous n'êtes pas obligé de passer une chaîne en dur. C'était juste pour
l'exemple.

je souhaite controler,si il ya a 100 dans la premiere
chaine de caractere,et aussi 100 dans la seconde
chaine de caractère



Connaissez vous la fonction InStr? Elle vous permet de faire exactement
ce que vous décrivez.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
PHIL
pourai tu me donner un exemple

merci

"Patrick Philippot" wrote:

testou wrote:
> il faut savoir que le nom du fichier je ne doit pas le rentrer dans
> le code en dur.
> car le choix du fichier depend du choix de l'utilisateur.
>
> comment serait mon code du coup?

Eh bien allez chercher le nom du fichier là où il se trouve, stockez le
dans une variable de type chaîne et passez cette variable à GetObject.
Vous n'êtes pas obligé de passer une chaîne en dur. C'était juste pour
l'exemple.

> je souhaite controler,si il ya a 100 dans la premiere
> chaine de caractere,et aussi 100 dans la seconde
> chaine de caractère

Connaissez vous la fonction InStr? Elle vous permet de faire exactement
ce que vous décrivez.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr





Avatar
Patrick Philippot
PHIL wrote:
pourai tu me donner un exemple



Un exemple de quoi? Si c'est de InStr, la documentation de cette
fonction contient un exemple:

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP" ' String to search in.
SearchChar = "P" ' Search for "P".

MyPos = Instr(4, SearchString, SearchChar, 1)

Il suffit de remplacer par vos propres variables.

MyPos = InStr(1, MaChaine, "100 a savoir", 1)

Si la valeur de retour est différente de 0 ou de null, c'est que la
deuxième chaîne est présente dans la première.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr