VBS et excel [Résolu]

Messages postés
43
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2006
- - Dernière réponse : ucfoutu
Messages postés
18039
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
Afficher la suite 

13 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
45
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 219 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jrivet
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
3
Merci
 Bonjour,

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

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

jean-marc

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 219 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_JMO
Messages postés
43
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2006
0
Merci
Merci jrivet,
je vais essayer tout de suite.

Merci encore de ta réponse rapide.

Pascal
Commenter la réponse de pcastain
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
 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
Commenter la réponse de cs_JMO
Messages postés
43
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2006
0
Merci
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
Commenter la réponse de pcastain
Messages postés
43
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2006
0
Merci
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
Commenter la réponse de pcastain
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Statut
Membre
Dernière intervention
24 juin 2018
23
0
Merci
 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  
Commenter la réponse de cs_JMO
Messages postés
43
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2006
0
Merci
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
Commenter la réponse de pcastain
Messages postés
43
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 novembre 2006
0
Merci
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
Commenter la réponse de pcastain
0
Merci
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()'
Commenter la réponse de amouna98
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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
Commenter la réponse de ucfoutu
0
Merci
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
Commenter la réponse de amouna98
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
214
0
Merci
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
Commenter la réponse de ucfoutu