[Déplacé encore de .Net --> VBA] Chemin d'une image a partir d'un dossier et pas

spikevba Messages postés 5 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 4 mai 2010 - 3 mai 2010 à 19:30
spikevba Messages postés 5 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 4 mai 2010 - 4 mai 2010 à 22:11
Bonjour,

Je cherche comment donner une chemin a une fonction VBA a partir d'un dossier.Le but est de pouvoir mettre mon fichier excel sur clef USB et que ma macro recherche son image "quizz.gif" dans le dossier Mes image et pas a partir de son emplacement sur un disque dur

Voici mon code a partir du disque dur et j'aimerai obtenir le même résultat mais uniquement a partir du dossier Mes image.

Sub image()
ActiveSheet.Pictures.Insert("D:\Mes documents\Mes images\quizz.gif").Select
End Sub

J'espère être clair dans ma formulation, j'ai déjà fait des recherches sur le site et je n'ai rien trouvé (ou j'ai peut être mal cherché)

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
3 mai 2010 à 21:03
Salut
"mettre mon fichier excel sur clef USB"
et
"pas a partir de son emplacement sur un disque dur"
Tu veux dire "de son emplacement sur la clé" ?

Quel est ton souci ?
La syntaxe que tu as copiée ici n'est pas correcte ?

Si tu veux simplement passer un paramètre à ta Sub Image (*) :
Sub image(leChemin As String)
  ActiveSheet.Pictures.Insert(leChemin & "\quizz.gif").Select
End Sub
et pour l'appeler
Call image("D:\Mes documents\Mes images")

Sinon, pour récupérer dynamiquement le chemin des dossiers spéciaux :
(à mettre dans un module)
Public Declare Function SHGetSpecialFolderPath Lib "shell32.dll" _
  Alias "SHGetSpecialFolderPathA" (ByVal hwndOwner As Long, ByVal lpszPath As String, _
  ByVal  nFolder As Long, ByVal fCreate As  Long) As Long

Public Function SDossier(NoDossier As Long) As String
    Dim buff As String
    buff =  Space(260)
    SHGetSpecialFolderPath ByVal 0&, buff, NoDossier, ByVal 0&
    SDossier = Left(buff, InStr(1, buff, Chr(0)) - 1)
End Function 

Extrait modifié de <cette source> trouvée en cherchant "répertoire spéciaux"

(*) TRES mauvaise idée d'appeler une procédure avec un mot réservé du système - tu pourrais avoir des surprises un jour

Vala
Jack, =fr MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
spikevba Messages postés 5 Date d'inscription lundi 29 mars 2010 Statut Membre Dernière intervention 4 mai 2010
4 mai 2010 à 22:11
Bonjour,

Merci Jack pour ta réponse, mais je ne suis qu'un modeste débutant en vba.

En fait ce que je cherche a faire c'est trouver la syntaxe qui me permettra d'aller chercher une image en faisant référence uniquement au même dossier que mon fichier excel.

Le but est de pouvoir transporter le tout (fichier excel et images) sur une clef USB. Et suivant le PC dans lequel je l'insère elle aura un nom différent F: ou G: par exemple.

Il doit bien y avoir une syntaxe simple qui permet de faire cela en vba.

Cordialement
0
Rejoignez-nous