Ouvrir un fichier avec VB Excel [Résolu/Fermé]

Signaler
-
 Vbbbaaaaaa -
J'ai un fichier Excel qui à la colonne B à un numéro du genre 10245. avec ce numéro, je souhaite ouvrir un fichier qui s'appelle "blabla10245blabla.bla"
ce fichier peut être un .xls mais aussi un .rtf, .doc, .tif, .jpg, .pdf,...

je pense donc récupérer le numéro et lui demander d'ouvrir *10245*.*. ce que je ne sais pas faire c'est ouvrir un fichier autre qu'un .xls depuis excel.

Pour simplifier, est-il possible d'avoir la (ou les) ligne(s) de commande qui permettent d'ouvrir "monimage.jpg" à partir d'excel. avec çà, je me démerderai

Merci d'avance

19 réponses

Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-)

Shell (Chemin d'acrobat reader & " " & chemin du pdf)

;-) Testé...
9
Merci

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

CCM 65492 internautes nous ont dit merci ce mois-ci


Ok, ca marche impec mais je voudrais en plus que lorsque le fichier s'ouvre, la fenetre s'affiche devant le fichier excel.
Est-ce possible?
Messages postés
4
Date d'inscription
mardi 14 décembre 2010
Statut
Membre
Dernière intervention
21 décembre 2010

Bonsoir WhiteFang.

si j'ai mon nom de fichier en variable ça ne marche pas, pouquoi?

MaDate=right(date,4)
MomFichier= "Nom du fichier" & MaDate & ".pdf"
Shell (Chemin d'acrobat reader & " " & chemin du fichier" & MonFichier)
pour l'afficher devant ton fichier excel tu rajoute , 1 derrière ton code
Shell (Chemin d'acrobat reader & " " & chemin du fichier" & MonFichier), 1
Shell "explorer.exe " & fichier

avec l'adresse du fichier stockée dans la variable,
çà marche avec les doc, rtf, tif, tiff, jpg, jpeg et xls

par contre avec les pdf, çà essaye de les ouvrir avec "imaging" donc çà marche pas.

une idée quelque part?

Bonjour,
J'ai créé ceci et cela fonctionne très bien chez moi:

Sub open_help()
ThisWorkbook.FollowHyperlink "\\SMBADOC03\xxx\PROCEDURE DE GENERATION DES ECRITURES TECHNIQUES.pdf"
End Sub


En esperant que cela vous aide.
Lorsque je fait ca le ppt que je veux ouvrire se referme a la fin de la macro, tu saurais comment garder le document ouvert?!
Messages postés
1
Date d'inscription
vendredi 21 juillet 2006
Statut
Membre
Dernière intervention
12 décembre 2011

bizarre, mon ppt reste ouvert. est-ce que dans ta macro, tu aurais une fonction qui va refermer ton fichier ex: MonFichier.closeou aller fermer l'application? montre moi ta macro au pire ...
Messages postés
82
Date d'inscription
jeudi 17 juin 2004
Statut
Membre
Dernière intervention
20 juillet 2011
7
Salut,
Ce que tu veux faire en faite c'estr créer un lien hypertext? Dans ce cas la tu peux enregistrer une macro et faire la démarche pour créer un lien hypertexte.
en fait, ce que je veux, c'est créer un bouton qui, lorsque l'on clique dessus, récupère le nombre de la deuxième cellule de la ligne ou l'une des cellules est sélectionnée (exemple 10236) et ouvre le fichier *10236*.* présent dans un répertoire prédéfini.
en fait oui, c'est créer un lien hypertexte mais également l'ouvrir
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-)

Dans VBA, tu as une fonction "INSTR" qui te renvoie la position du 1er caractère trouvé dans la chaine que tu recherches...

Ex : Si tu fais un INSTR de 10245 dans la chaine qui contient le nom du fichier, il va te renvoyer un N°... Si celui-ci est >0, c'est que la chaine est trouvée, donc tu peux ouvrir ton fichier...

;-)
ok pour instr, ça marche très bien comme fonction
seulement ça c'est pas dur, le plus compliquer je pense c'est bien d'ouvrir le fichier dans excel fichier qui peut être n'importe koi!
essaye le conteneur OLE activ x qui est avec VB je suppose que VBA doit aussi l'avoir, sinon va sur www.vbfrance.fr
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-)

Non, c'est pas plus compliqué ! Outre Instr, tu as aussi Left, Rigth, Mid...

Un petit Right sur 3 et tu récupères l'extension pour la tester avec un Select Case... En //, tu as prévu des petites procédures spécifiques à chaque type de fichier et le tour est joué...

;-)
Ok

et en ce qui concerne les petites procédures, quelles sont ces procédures que je peux appliquer.

avec Shell, j'ai des pb à cause de certains fichiers qui ont un espace dans le nom.
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-)

Shell, tu l'utilise quand tu veux lancer une appli... Là, tu veux ouvrir dans Excel ? Le plus simple, dans ce cas, et si tu as des fichiers test (style 1 txt, 1 csv...), tu utilise l'enregistrement automatique... ensuite, dans l'éditeur, tu changes le nom et tu passes le nom du fichier en variable... Ca te permet d'appeler la procédure en balancant le nom du fichier...

;-)
Ok, mais comment dire à VBExcel que c'est avec Acrobat Reader qu'il doit ouvrir les pdf???
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-)
Tu testes l'extension du fichier... Si c'est PDF, tu fais ton shell avec Acrobat, sinon, ton shell avec l'explorateur...
;-)
Le pb, c'est que j'arrive pas à faire un shell avec acrobat reader

t'as un code à me proposer?
bonjour a tous,,
je m'appelle cesar et je suis en train de developper une application visual basic où à l'enregistrement des données sur un formulaire de l'appication je dois visionner ces données sur une page excel. je souhaite recevoir recevoir de l'aide de toute personne pouvant me dire comment relier une application vb à excel. merci d'avance.
je ne veux pas "ouvrir dans Excel" mais "à partir d'Excel, ouvrir les fichier dans le programme adéquat"

c'est à dire que dans mon fichier Excel de base, je récupère le numéro de la question (je traite des questions et leurs réponses), puis automatiquement, le fichier de la réponse s'ouvre. ce fichier est indiférement un rtf, doc, pdf, jpg, jpeg, tif, tiff, bmp, xls.

Merci pour vos réponses, on y arrivera
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-) Ha, oké !! ;-)

Dans ce cas, il faut avoir les bibliothèques d'objets ouvertes...

Chaque appli dispose de ses biblio, tu rajoutes les biblio pour lire les jpg (cela dépend de tes softs) et autres...

Ensuite, dans le code, tu fais des "createobject" ou des "dim as xxx.application", et ça se pilote comme Access, par exemple....

Je n'ai pas essayé avec des appli traitant des jpg, mais surtout Access et les applis office, en fait, et ça se pilote comme ça (au plus simple) :

-Après avoir rajouté les bibliothèques d'objets-

Dim AppAccess As New Access.Application (au moment où tu tapes l'espace après New, tu as la liste de tout ce qu'il y a en ligne, ton appli s'y trouvera)

Ensuite, tu utilises cette variable objet comme tu veux (dont les propriétés, méthodes, etc...) style AppAccess.OpenDatabase xxx

Tu vois le principe...

;-)
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-) Acrobat Reader.... ?
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-) Je regarde...
comment je peux ouvrire un fichier (word, ppt....) a partire d'une commande (VBA) sur excel?
Messages postés
2056
Date d'inscription
dimanche 1 septembre 2002
Statut
Membre
Dernière intervention
15 février 2008
200
;-)

Cela dépends de ce que tu veux faire, en fait... Tu as la commande Shell qui fonctionne sur tout, mais ça ne dit pas ce que tu veux faire en "ouvrant" ce fichier... ??

Ps : Ouvrir (sans E)

;-)
Re!

Tu definis la valeur de ta cellule comme une variable et tu l'insere dans le sub

apres je ne sais pas dans quel cas tu veux ouvrir le fichier

Exemple

Sub test()
Dim NomFichier As Variant
Range("b2").Select
If ActiveCell <> "" Then
NomFichier = ActiveCell.Value
Call open_help(NomFichier)
Else
Exit Sub
End If
End Sub

Sub open_help(NomFichier As Variant)
ThisWorkbook.FollowHyperlink "blablabla" + NomFichier + "bla.pdf"
End Sub

Dans ton hyperlink tu peux mettre des parties fixes en les mettant entre guillemets et des parties variables (que tu as définit au préalable via des procédés divers et variés) tout doit bien entendu etre compilé avec des +.

Exemple:


'numLigne ou se trouve le curseur
FICnl = Left(ActiveCell.Row, 10)


ThisWorkbook.FollowHyperlink "bla" + Value1 + FICnl + "blabla" + NomFichier + "bla" + ValueZ + ".pdf"

A+
Bonjour,

Ce que tu souhaites faire n'est pas compliqué.
Déja il te faut valider Microsoft Excel dans la liste des références à ton projet VB.
Ensuite tu vas sur www.vbfrance.fr et tu trouveras ton bonheur,
N'hésites pas à me recontacter en cas de soucis.
à l'attention de Memes :
J'ai exactement le même besoin que vous. Pb je suis une véritable quiche en VB.
Pourriez-vous m'envoyer la macro si vous l'avez finalisée?
Merci merci merci