Ouvrir un fichier excel [Résolu]

Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 19 janv. 2012 à 21:41 - Dernière réponse :
Messages postés
5531
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 22 janv. 2012 à 10:13
Bonjour

Je débute en VBS et je voudrais écrire un petit programme.

J'ai un fichier excel nommé test1 sous c:\essai

Mon programme serait:

ouvrir mon fichier excel test1 et se positionner en cellule a1 de la feuil1
et que s'il est déjà ouvert (en icône dans la barre des tâches par exemple)
il puisse activer la feuil1 et se positionner en cellule a1

en résumé, je voudrais travaillé dans un fichier excel
l'ouvrir s'il ne l'est pas
et l'activer s'il l'est

Pas facile de décrire ce que l'on veut
Merci de votre aide
Cordialement
Afficher la suite 

Votre réponse

19 réponses

Meilleure réponse
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 20 janv. 2012 à 09:26
3
Merci
 Bonjour à tous,

Exemple pour tester si un fichier Excel est ouvert
Option Explicit
Const MyFile = "d:\MyFile.xls" 
Const ForReading 1, ForWriting 2, ForAppending = 8
Const TristateUseDefault -2, TristateTrue -1, TristateFalse = 0

Dim objFso, objFile 

Set objFso = CreateObject("Scripting.FileSystemObject")

On Error Resume Next    
Set objFile = objFso.OpenTextFile(MyFile, ForAppending, TristateFalse)

If Err.Number <> 0 Then 
   Msgbox "Le fichier est déjà ouvert"&vbCrLf& Err.Number &vbCrLf& _
           Err.Source &vbCrLf& Err.Description : Err.Clear
 Else
   objFile.Close
   MsgBox "Le fichier n'est pas ouvert"
   Dim xlApp, xlBook, xlSheet

   Set xlApp = CreateObject("Excel.Application")
   Set xlBook = xlApp.WorkBooks.Open(MyFile)
   Set xlSheet = xlBook.Sheets("Feuil1")
   xlApp.DisplayAlerts = False
   xlApp.Application.Visible=True 
   MsgBox "Le fichier " & MyFile & " est ouvert"
   xlApp.Quit
   Set xlSheet = Nothing
   Set xlApp = Nothing
   Set xlBook = Nothing
End If
Set objFile = Nothing
Set objFso = Nothing


jean-marc

Merci cs_JMO 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_JMO
Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 21 janv. 2012 à 13:23
3
Merci
je ne comprends vraiment pas le lien que l'on pourrait faire entre tes ??????? (là où ils sont) et l'utilisation de OpenTextFile, qui n'affiche rien !
or, tu dis :
lui dire qu'il me l'affiche en plein écran

qu'il t'affiche quoi, en plein écran ?
et plus grave encore à mon sens : si pas d'erreurs, alors il ne ferme pas le fichier ouvert (for appending) pour le traiter ? ===>> bizarre !
Et de toutes manières : quel rapport, alors, entre ces instructions dans l'ouverture d'un fichier texte (pour y faire quoi ?) et le sujet ouvert (ouvrir un fichier excel) ? ===>> totalement incompréhensible !

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ucfoutu
Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 21 janv. 2012 à 14:44
3
Merci
Non !
1) je ne t'écrirai pas ce code (et ce d'autant que nous t'avons dit et redit comment l'écrire et que, de surcroît, c'est ce que tu as déjà fait !!!!!... c'est déjà dans ton code !!!)
il ne te reste plus (mais ce sera maintenant à tes connaissances en VBA/Excel qu'il te faudra faire appel !)
2) le fait que tu sois débutant ne t'affranchit absolument par de la réflexion
3) ton ouverture d'un fichier texte n'a dans cette affaire absolument rien à voir avec celle d'un fichier excel (tu peux tout supprimer de ce que tu as écrit de ceci :
Set objFile = objFso.OpenTextFile(test1, ForAppending, TristateFalse)

If Err.Number <> 0 Then

?????????

Else
objFile.Close


Enfin quoi ! tu as maintenant un classeur ouvert. Ca y est ! il est représenté par l'objet xlBook.
Tu y as une feuille nommée Feuil1 représentée par l'objet xlsheet
et tu dois travailler sur ces deux objets, à l'aide d'instructions VBA !
Tu veux afficher cette feuille en plein écran ? c'est une instruction VBA en non VBS !
Tu sais quoi ? Ce que je n'aime surtout pas, c'est que l'on "écrive des choses" sans même savoir dans quel but, ni leur sens !
Je te souhaite bonne chance, mais surtout : bonne utilisation de tes neurones.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient

Merci ucfoutu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
14299
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
16 novembre 2018
- 19 janv. 2012 à 22:46
0
Merci
Bonjour,

Regardes peut être ce lien :
http://www.activexperts.com/activmonitor/windowsmanagement/scripts/msoffice/excel/

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Commenter la réponse de NHenry
Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 20 janv. 2012 à 07:05
0
Merci
Bonjour

Merci pour le lien qui me sera utile ultérieurement
Mais malheureusement, je n'ai pas trouvé réponse à mon problème

Je ne pense pas que cela soit un programme bien compliqué, mais mon manque de connaissance en VBS me bloque dans ma conception

Si une personne peut m'aider, elle sera la bienvenue

Encore merci

Cordialement
Commenter la réponse de timane56
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 janv. 2012 à 08:26
0
Merci
Bonjour,

ce que tu veux faire s'appelle piloter Excel par un script VBS

CETTE LECTURE t'en fera connaître le principe.

Une fois au "poste de pilotage", ce seront tes connaissances en VBA/Excel qui devront être utilisées (applicables à chaque objet ainsi créé, que tu pilotes) et plus (ou presque) VBS


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 janv. 2012 à 08:39
0
Merci
Une petite précision, par ailleurs.
Si un classeur est déjà ouvert, il figure dans la collection WorkBooks. Il n'y figure pas si non ouvert.
(mais ceci, c'est de la connaissance VBA/Excel et non de la connaissance VBS, hein ...)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 20 janv. 2012 à 08:43
0
Merci
Bonjour

Pour être plus clair, si une personne pouvait m'écrire ce script, cela m'aiderait à comprendre le principe du pilotage excel via VBScript

Ainsi je pourrais espérer continuer à progresser dans ce dommaine

Cordialement
Commenter la réponse de timane56
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 janv. 2012 à 08:55
0
Merci
oh !

le principe t'as été montré ! deux fois !

Le reste n'est dépendant que de tes connaissances en VBA/Excel !
Quelles sont tes connaissances en VBA/Excel, donc, avant de parler de "pilotage" de VBA/Excel ?
Montre le code que tu écrirais depuis le classeur lui-même, hors pilotage. Et on verra alors...




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 20 janv. 2012 à 08:59
0
Merci
Et je viens de voir qu'en plus, le lien que t'a montré NHenry, touche précisément à une cellule !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Commenter la réponse de ucfoutu
Messages postés
5531
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 20 janv. 2012 à 09:19
0
Merci
Bonjour,
Je crois que notre ami ne sait pas créer un fichier VBS.
Tu ouvres Notepad, tu copies dedans le code du lien que t'as donné UCFOUTU en changeant le chemin de ton fichier Excel

Option Explicit
'On Error Resume Next
Dim objExcel : Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = true
objExcel.Workbooks.Open "c:\temp\test.xls"'à modifier
objExcel.ActiveWindow.DisplayGridlines = False
'objExcel.Quit


Ensuite tu enregistres ton fichier en choisissant: Tous les fichiers [*.*]
et saisissant par ex: Monfichier.vbs
Là tu auras créé ton fichier vbs
@+Le Pivert
Commenter la réponse de cs_Le Pivert
Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 21 janv. 2012 à 11:49
0
Merci
Bonjour JMO

Enfin quelqu'un de compréhensible envers un novice comme moi !!!

Merci pour le temps passé

Cdlt
Commenter la réponse de timane56
Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 21 janv. 2012 à 13:07
0
Merci
Bonjour

Grâce à vous, j'ai pu réaliser un script qui marche bien, mais j'ai encore un petit souci

A la place des points d'interrogations du script je voudrais lui dire qu'il me l'affiche en plein écran. Est-ce possible?

Pour résumer
Je veux ouvrir le fichier excel essai1
Et s'il est déjà ouvert mais réduit dans la barre des tâches, qu'il me le mette en plein écran.

Merci de votre compréhension sur le fait que je ne suis pas fortiche en VBS !!!

Cordialement

Voici le script créé avec votre aide

Const test1 = "C:\Documents and Settings\Xportable\Bureau\essai1.xls"
Const ForReading 1, ForWriting 2, ForAppending = 8
Const TristateUseDefault -2, TristateTrue -1, TristateFalse = 0

Dim objFso, objFile
Dim xlApp, xlBook, xlSheet

Set objFso = CreateObject("Scripting.FileSystemObject")

On Error Resume Next
Set objFile = objFso.OpenTextFile(test1, ForAppending, TristateFalse)

If Err.Number <> 0 Then

?????????

Else
objFile.Close

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.WorkBooks.Open(test1)
Set xlSheet = xlBook.Sheets("Feuil1")
xlApp.Application.Visible=True

End If
Commenter la réponse de timane56
Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 21 janv. 2012 à 14:26
0
Merci
Bonjour

J'ai bien précisé que j'étais nul en VBS
Et aussi mentionné ce que je voulais faire dans le pavé ci-dessous
Pour résumer
Je veux ouvrir le fichier excel essai1
Et s'il est déjà ouvert mais réduit dans la barre des tâches, qu'il me le mette en plein écran.

Maintenant, puisque tu as l'air d'être balaise en la matière, peux-tu m'écrire en VBS ce que je veux faire

à savoir

ouvrir un fichier excel donné (exemple "C:\test\essai1.xls")
avec la condition que s'il est déjà ouvert et minimisé dans la barre des tâches, il l'affiche en plein écran

C'est tout
Rien de plus simple pour toi, non !

merci de l'aide

Cordialement
Commenter la réponse de timane56
Messages postés
5531
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 21 janv. 2012 à 14:57
0
Merci
En enregistrant une macro quand tu minimises et tu rétablies ta fenêtre tu obtiens ceci:

Application.WindowState = xlMinimized
Application.WindowState = xlMaximized

avec ces 2 lignes de code tu as ta solution. Il s'agit de l'adapter.
Dans les post précédents tu as aussi la solution!!!!!!!!!!!!
@+Le Pivert
Commenter la réponse de cs_Le Pivert
Messages postés
7
Date d'inscription
mardi 11 janvier 2011
Dernière intervention
21 janvier 2012
- 21 janv. 2012 à 17:18
0
Merci
Bonjour

Je n'aime pas la polémique mais je ne trouve pas ta réponse très sympathique.

Je me suis peut-être mal expliquer dans mon sujet
J'ai pris un fichier excel comme j'aurais pu prendre une autre application comme par exemple la calculatrice ou bien le bloc-notes
Donc VBA ne m'est pas utile

Ce que je voudrais me parait simple, mais peut-être compliqué, voir impossible !!!
Mes incompétence en VBS ne me permettent pas de juger.

Je répète mon sujet pour ceux qui pourraient m'aider (sauf pour ucfoutu ça va de soi...)

En VBS, je voudrais ouvrir un fichier(excel, word, etc... par exemple) ou une application (calculatrice, bloc-note,... ou autre)
MAIS que si elle est déjà en icône (dans la barre des tâches), vbs ne m'en ouvre pas une autre
mais bien celle d'origine ET en PLEIN ECRAN

Merci beaucoup à tous ceux qui voudront bien prendre soin d'un vieil homme comme moi qui essaye de se lancer dans la programmation

Cordialement
Commenter la réponse de timane56
Messages postés
1
Date d'inscription
mercredi 5 décembre 2007
Dernière intervention
21 janvier 2012
- 21 janv. 2012 à 17:19
0
Merci
Bonjour,

Excusez-moi de vous interrompre mais je suis dans la même problématique que timane56.

En fait j'ai bien lu le post de timane56, et je recherche la même chose.

Pour résumer, c'est simple, je veux via un script VBS lancer une application (prenons l'exemple d'un fichier texte "post-it.txt") mais si celui-ci est déjà lancé, je souhaite le mettre en premier plan (en gros simuler un clic pour que je voie l'application).

Du coup, ce n'est pas en VBA mais bien du VBS.

Je cherche en gros un script qui fasse ceci:

set WshShell = createObject("WScript.shell")

If "post-it.txt - Bloc-notes" = dans la barre des taches Then
Selectionner "post-it.txt - Bloc-notes"
Mettre "post-it.txt - Bloc-notes" au premier plan
Else
Wshshell.run "notepad.exe C:\post-it.txt"


Merci
Commenter la réponse de TGV6773
Messages postés
5531
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 22 janv. 2012 à 09:40
0
Merci
Tu avoueras que le titre de ton post ne reflète pas ta demande: Ouvrir un exe
Je pense que si tu avez bien intitulé ton post cette polémique n'aurait pas eu lieu. Et tu aurais eu ta réponse immédiatement.
Voici donc le code, que tu modifieras en fonction de l'exe:

Option Explicit
Dim WshShell
Set WshShell = wscript.CreateObject("WScript.Shell")
 WshShell.Run "Notepad.exe", 1, True

PS tu te trouves vieux qu'est ce que je devrais dire!

Le Pivert
Commenter la réponse de cs_Le Pivert
Messages postés
5531
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 novembre 2018
- 22 janv. 2012 à 10:13
0
Merci
Pour répondre à TGV6773 voici le code:

Option Explicit
Dim WshShell, Str_Wegg, chemin 
Set WshShell = wscript.CreateObject("WScript.Shell")
   chemin = "C:\Windows"
    Str_Wegg = "cmd /c " & chemin & "Notepad.exe " & "chemin du fichier.txt"
     WshShell.Run Str_Wegg, 0, True
Set WshShell = Nothing 


@+Le Pivert
Commenter la réponse de cs_Le Pivert

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.