VBS et excel [Résolu]

pcastain 43 Messages postés mardi 15 juillet 2003Date d'inscription 7 novembre 2006 Dernière intervention - 30 août 2006 à 09:28 - Dernière réponse : ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention
- 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 

Votre réponse

13 réponses

Meilleure réponse
jrivet 7401 Messages postés mercredi 23 avril 2003Date d'inscription 6 avril 2012 Dernière intervention - 30 août 2006 à 09:49
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

Merci jrivet 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de jrivet
Meilleure réponse
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 1 sept. 2006 à 13:26
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

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de cs_JMO
pcastain 43 Messages postés mardi 15 juillet 2003Date d'inscription 7 novembre 2006 Dernière intervention - 30 août 2006 à 09:52
0
Merci
Merci jrivet,
je vais essayer tout de suite.

Merci encore de ta réponse rapide.

Pascal
Commenter la réponse de pcastain
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 30 août 2006 à 10:15
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
pcastain 43 Messages postés mardi 15 juillet 2003Date d'inscription 7 novembre 2006 Dernière intervention - 1 sept. 2006 à 13:15
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
pcastain 43 Messages postés mardi 15 juillet 2003Date d'inscription 7 novembre 2006 Dernière intervention - 1 sept. 2006 à 14:34
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
cs_JMO 1855 Messages postés jeudi 23 mai 2002Date d'inscription 24 juin 2018 Dernière intervention - 1 sept. 2006 à 14:44
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
pcastain 43 Messages postés mardi 15 juillet 2003Date d'inscription 7 novembre 2006 Dernière intervention - 1 sept. 2006 à 15:04
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
pcastain 43 Messages postés mardi 15 juillet 2003Date d'inscription 7 novembre 2006 Dernière intervention - 1 sept. 2006 à 15:18
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 12 sept. 2012 à 16:39
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
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 12 sept. 2012 à 18:17
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.