Problème ouverture d'un fichier

Résolu
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010
- 11 avril 2008 à 14:45
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010
- 14 avril 2008 à 11:02
Bonjour,


Je n'arrive pas à lancer un fichier (extension indifférente) avec ma variable "fich" par contre si je remplace dans le shellexecute ma variable par le chemin de mon fichier cela fonction, auriez vous une idée
Merci


[CODE]
Dim fich As Variant
  Feuil1.Activate
  Cel.Activate
ActiveCell.Offset(0, 1).Select
fich = ActiveCell.Value


'Mon problème ci dessous
ShellExecute 0, "open", fich, "", "", SW_SHOWNORMAL
Exit Sub[CODE]

18 réponses

cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

14 avril 2008 à 11:02
J'ai un peu évolué dans mon problème en ouvrant facilement un .Txt


par contre j ai trouvé qu on pouvait utiliser ceci pour ouvrir un pdf


ShellExecute Me.hwnd, vbNullString, CheminDeAcrobat.exe, ChemindetonFichierPDF "C:", SW_SHOWNORMAL


Mais moi j ai plusieurs documents avec des extensions différentes, n-y a t il pas un moyen d'ouvrir toutes les appli en une commande?
3
pile_poil
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Statut
Membre
Dernière intervention
4 août 2012
6
11 avril 2008 à 14:49
est ce que ta cellule contient le chemin complet du fichier à ouvrir ?
0
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

11 avril 2008 à 14:52
Voila ce que contient ma cellule

C:\Documents and Settings\jdrecq\My Documents\COMPOSANTS OU DOCUMENTS NON RELACHES.pdf

et je pointe bien dessus mais ne se passe...
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
60
11 avril 2008 à 14:57
Salut,
SI tu fais ceci simplement est ce que cela fonctionne?

Dim fich As String
fich = "C:\Documents and Settings\jdrecq\My Documents\COMPOSANTS OU DOCUMENTS NON RELACHES.pdf"
ShellExecute 0, "open", fich, "", "", SW_SHOWNORMAL
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0

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

Posez votre question
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

11 avril 2008 à 15:02
Merci pour ta réponse, mais le problème c'est que mon chemin se trouve parmi une multitude d autres chemin, donc il faut que je fonctionne en variable
Voici mon code complet

Sub Macro_Recherche()
Dim Str_Plage As String
Dim Cel As Range
Dim Feuil As Worksheet
Dim Str_critère As String
Dim X As Byte


 
Str_Plage = "B:B"
Str_critère = InputBox("Article à rechercher ?")
For Each Feuil In Sheets
For Each Cel In Feuil.Range(Str_Plage)
If UCase(Cel) Like "*" & UCase(Str_critère) & "*" Then
 
Feuil.Activate
Cel.Activate
 
X = MsgBox("Mot """ & Str_critère & """ trouvé :" & Chr(13) & _
"Sur la feuille : " & Feuil.Name & Chr(13) & _
"à la cellule : " & Cel.Address(0, 0) & Chr(13) & Chr(13) & _
"Oui : Lancer fichier" & Chr(13) & _
"Non : on continue la recherche " & Chr(13), vbDefaultButton2 + _
vbQuestion + vbYesNo, "MOT TROUVÉ")
Select Case X
Case 6


Dim fich As Variant


 
  Feuil1.Activate
  Cel.Activate
  '  ActiveCell.Offset(0, 1).Select
'Fich = ActiveCell
ActiveCell.Offset(0, 1).Select
fich = ActiveCell.Value


'ShellExecute 0, vbNullString, fich, vbNullString, vbNullString, vbNormalFocus
'ShellExecute 0, "open", fich, "", "", 1
ShellExecute 0, "open", fich, "", "", SW_SHOWNORMAL
    Exit Sub


Case 2 'annuler on sort
    Exit Sub
Case Else 'Non=7
'on fait rien, mais on pourrait
End Select
End If
Next Cel
Next Feuil
MsgBox ("pas trouvé")
End Sub
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
60
11 avril 2008 à 15:14
Salut,
oui je me doute qu'il faut que tu fonctionnes en varaibles, mais j'esaie de faire par élimination.

Si le code que je te propose marche, c'est que la valeur de la cellule n'est pas excatement égale à ce que tu crois (peu etre des espaces parasites)

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_faucheuse
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

11 avril 2008 à 15:27
Ca ne serait pas parce que ta cellule ne contient pas les guillemets.

Si pour que ca fonctionne il faut "C:\machin.pdf"
Dans ta cellule je pense que ca ne fonctionnera pas si tu a machin.pdf.
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
60
11 avril 2008 à 15:33
Re,
>[auteur/FAUCHEUSE/1265966.aspx faucheuse]: non il ne faut PAS les guillemets justement

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
11 avril 2008 à 21:48
"...il ne faut PAS les guillemets justement..."

Ben si le chemin du fichier contient des espaces, il y a des chance qu'il faille justement l'encadrer de guillemets pour que le système le reconnaisse en entier. Sinon il va s'arreter au premier espace

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_casy
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
11 avril 2008 à 21:51
A vérifier aussi si le nom du fichier ne contient pas une apostrophe en premier caractère. Ce qui est souvnet le cas sous Excel pour que le contenu d'une celulle soit considéré comme une string.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
0
cs_faucheuse
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

12 avril 2008 à 10:52
Faudrait que tu lance ta macro en mode debugage (c'est a dire avec un point d'arret, a la premiere ligne c'est mieux) et lorsque tu a passer la ligne
fich = ...

tu passe ta souris sur fich, comme ca tu sera fixé de ce que contient la variable.
0
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

14 avril 2008 à 07:40
Bonjour et merci pour vos réponses...
J'ai essayé avec les guillements ça ne répond pas, le chemin ne comporte aucune apostrophe.

J'ai lancé le mode débuggage, et lorsque que je passe la souris sur ma variable fich il m'indique que celle ci est égale à "" c'est à dire à rien pourtant la cellule active comporte bien une valeur
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
60
14 avril 2008 à 08:06
Salut,
Dans ce cas essaie peu être de remplacer .Value par .Text

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

14 avril 2008 à 08:22
J'ai réessayé avec text et ma variable fich comporte bien le contenu de ma cellule, mais toujours rien ne s'ouvre

Je pense que je ne dois pas bien utiliser la commande ci dessous
ShellExecute 0, "open", fich, "", "", SW_SHOWNORMAL
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
60
14 avril 2008 à 08:33
Re,
Maintenant que tu retrouves bien un "chemin", verifie que celui ci est bien valide et qu'il ne possède pas des espaces ou des caractere parasites.

Autre idee voit ce que te retourne Dir(fich)

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

14 avril 2008 à 08:45
Non le chemin est nickel, car avant d'utiliser une variable j'avais indiqué le chemin complet dans le shellexecute, et cela m'ouvrait correctement le fichier

Sinon coté test Dir(fich) m affiche une erreur "nom ou numéro de fichier incorrect"

Merci de ton aide
0
jrivet
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
60
14 avril 2008 à 08:57
Re,
OU la, sombre problème.
Je ne sais pas si cela va t'aider mais ceci fonctionne

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub CommandButton1_Click()

Dim Fich As String
Feuil1.Select
Fich = Range("A1").Text 'Contient C:\Test Loader\Test.pdf

If Dir(Fich) <> vbNullString Then
   Call ShellExecute(0, "open", Fich, "", "", SW_SHOWMAXIMIZED)
End If

End Sub<hr />
, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
cs_jeyjey1
Messages postés
46
Date d'inscription
mardi 3 avril 2007
Statut
Membre
Dernière intervention
8 février 2010

14 avril 2008 à 09:19
Merci, mais le problème c'est que dans mon programme la variable change tout le temps suivant une requête donc je ne peux pas dire que A1 est égale a un chemin spécifique,
merci quand même
0