VBS et excel

Résolu
pcastain Messages postés 43 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 novembre 2006 - 30 août 2006 à 09:28
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 12 sept. 2012 à 18:17
Bonjour,
je voudrais, avec un fichier vbs, chercher un mot dans un tableau excel,
et que le vbs me dise dans une msgbox : le mot "toto" ce trouve ligne x colonne x dans le fichier x.
Ce qui me manque, c'est la recherche dans le fichier et la remonter ligne x , colonne x.
Merci de votre aide.

Pascal

13 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
30 août 2006 à 09:49
Salut,


Le Script suivant Recherche le mot Julien dans le classeur C:\1.XLS et te retourne la ligne et la colonne de la premiere cellule correspondant a la recherche.


NOTE: Je n'ai fait qu un exemple qui "MARCHE" a toi de faire en sorte que cela fonctionne meme si le mot n'est pas trouver dedans (pour l'instant cela donne une exception a la ligne  XlWorkBook.ActiveSheet.Cells.Find(Recherche).Select 




'Variable D'excel


Dim XlApp 
Dim XlWorkBook 

'parametre recherche
Dim Recherche 

'Ligne et Colone trouvée
Dim LLigne 
Dim LColonne 

'Creation de l'application
Set XlApp =   CreateObject ("Excel.Application") 
'Ouverture du Classeur
Set XlWorkBook  = XlApp.Workbooks.Open("C:\1.xls") 

'Parametre de recherche
Recherche =  "Julien" 

'Selection de la case possédant le parametre de recherhce
XlWorkBook.ActiveSheet.Cells.Find(Recherche).Select 
'recuperation de l a ligne et de la colonne de la selection
LLigne = XlApp.Selection.Row 
LColonne = XlApp.Selection.Column 
'Affichage du résultat
Call  MsgBox ("Le mot " & Recherche & " à été trouvé:" & vbCrLf & "Ligne: " & LLigne & vbCrLf & "Colonne: " & LColonne, vbInformation) 

'Ferme le classeur sans le sauver
Call XlWorkBook.Close(False) 
'Quitte excel
Call XlApp.Quit 

'Destruction des Objets
Set XlApp  = Nothing 
Set XlWorkBook = Nothing 
 







<small> Coloration syntaxique automatique [AFCK]</small>

       









 






@+,   Ju£i?n
3
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
1 sept. 2006 à 13:26
 Bonjour,

N'oublie pas de valider la réponse précédente de Julien !!!

var2 = "test_de_replace"
var1 = """"
MsgBox var1

jean-marc
3
pcastain Messages postés 43 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 novembre 2006
30 août 2006 à 09:52
Merci jrivet,
je vais essayer tout de suite.

Merci encore de ta réponse rapide.

Pascal
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
30 août 2006 à 10:15
 Bonjour,

Merci à Pascal d'avoir posé cette question.
Merci à Julien d'y avoir répondu.

Etant intéressé par un tel code, je viens de le tester.
Comme le précise Julien, il "suffit" de rajouter:
- test si le mot n'a pas été trouvé;
- boucle pour préciser toutes les lignes/colonnes où
le mot a été trouvé.

jean-marc
0

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

Posez votre question
pcastain Messages postés 43 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 novembre 2006
1 sept. 2006 à 13:15
Rebonjour,


ça marche super bien merci julien,


j'ai une autre question,


dans ma page html, sur une checkbox, est ce que c'est possible


que l'option title face reference a une variable du script.


je sais pas si je suis clair.


je voudrais que dans la fenetre info quand on passe sur la checkbox,


le texte change suivant ce que la moulinette en vbs a trouvé.
exemple:

Merci d'avance
Pascal
0
pcastain Messages postés 43 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 novembre 2006
1 sept. 2006 à 14:34
bonjour jean-marc


ok j'ai validé la reponse de julien, j'avais pas vu le bouton.


J'ai testé ce que tu m'a envoyé,
je suppose qu'il faut tout mettre dans une balise vbscript,
mais l'input ne s'affiche pas dans ma page html,
et j'ai un message" fin d'instruction attendu"
et pourquoi la msgbox?

Pascal
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
1 sept. 2006 à 14:44
 Bonjour,

J'ai pas tout compris !!!
Le post est dans la rubrique "Thèmes / VB.NET et VB 2005 / Divers / Débutants / VBS et excel "
Donc, je n'aurai pas du répondre !
La 1ère question concernait l'utilisation de Excel en VBS.
La 2ème question : VB.Net ou VB6 ??? + javascript ???

Maintenant, je sais que ce n'est pas du "pur" vbs.....
Peux-tu préciser les languages utilisés.

jean-marc  
0
pcastain Messages postés 43 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 novembre 2006
1 sept. 2006 à 15:04
J'ai une page html,
dans cette page j'ai du "pur" vbs.
j'ai des checkbox qui représente plusieur applis, si on les cochent et que l'on valide en bas de page,
ça installe les applis cochées.
Toutes les applis avec leur version et leur chemin sur le serveur sont répertorier dans un fichier excel
(voila pourquoi j'avais besoin de la reponse de julien que j'ai mis dans une fonction)
je voudrais que lorsque je passe la sourie sur les cases à coché le title soit renseigné par le fichier excel.
et pas par une reponse fixe, car pour mettre a jour je veux que l'on ne touche qu'au fichier excel.
voila j'espere que je suis clair.

Merci, d'avance

Pascal
0
pcastain Messages postés 43 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 novembre 2006
1 sept. 2006 à 15:18
Jean-marc,


c'est bon j'ai trouvé,


j'ai mis document.write à la place de msgbox


et pour l'erreur quelque guillemet en plus on régler le problème


en tout cas merci de ton aide

Pascal
0
Bonjour
Mon problème est un peu similaire sauf que j'utilise le VB script sur Artisan
Je récupère des données je les stocke dans un fichier Excel, et pour éviter les répétitions je veux créer une fonction pour rechercher si la donnée existe dans une colonne donné ou pas
J'ai utilisé ce que vous avez proposé et aussi autre chose sans avoir à sélectionner une case
Set Maplage = feuille.Range("C1:C20") 
Ligne= Maplage.Find("toto").Row

Ceci me récupère la ligne quand elle existe mais quand elle n'existe pas là est tout le problème, tout plante, j'ai erreur suivante : object.required:'Maplage.Find()'
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 sept. 2012 à 16:39
Bonjour, amouna98

Ma plage est un objet.
Lorsqu'un objet n'existe pas, il est = à rien.
Une expression confitionnelle pour le vérifier ?
Ouvre ton aide VBA sur le mot Nothing et lis.
Puis voies ce qu'est l'opérateur Is
(que serait alors Is Nothing ?)

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
moi c'est du VBScript et pas du VBA
si j'ai bien compris c'est ce que tu me propose de faire
if Maplage.Find("toto").Row is Nothing  then
feuille.Rows(10).insert 
feuille.Cells(10,2).Value='NO'
else
Ligne = Maplage.Find("toto").Row
feuille.Cells(Ligne,3).Value="Ok"					end if

ca marche pas
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 sept. 2012 à 18:17
moi c'est du VBScript et pas du VBA


Set Maplage = feuille.Range("C1:C20")

n'est pas du VBS, mais du VBA
Même si tu "pilotes" Excel depuis VBS, ce que tu ^passes" est du VBA.
Ouvre donc s'il te plait ton aide VBA sur la méthode Find. Elle est assortie d'un exemple clair.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous