IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Compatibilité Vba excel et Powershel


Sujet :

VBA

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité photographe
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité photographe

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Par défaut Compatibilité Vba excel et Powershel
    Bonjour à tous, je vous prie d'excuser mes éventuelles maladresses c'est la première fois que je poste.
    J'essaie de me fabriquer un gestionnaire de catalogue photo avec Excel, en utilisant des userforms.
    les données photo sont extraites des fichiers avec exiftool.
    pour test j'ai écris ceci :
    exiftool -FileName -FileNumber D:\D7X_5763.NEF >> D:\toto.csv

    ou D7X.....est le nom du fichier a ouvrir et D:\toto.csv le fichier recevant les infos

    si je lance avec powershell le fichier se crée et contient bien les informations.
    je fais un copié collé de cette chaine de caractères dans un userform avec le bout de programme ci dessous


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Option Explicit
    Public TamponChemDestin As String
     
    Private Sub CommandButton5_Click()
     
        TamponChemDestin = TextBox29.Text
        TextBox30.Text = TamponChemDestin
     
        Dim Lance
        Lance = Shell(TamponChemDestin, vbNormalFocus)
     
     End Sub
    un textbox recevant la chaine, un autre textbox la réaffichant pour vérifier qu'elle a bien été lue, ce qui est le cas.
    mais, dans ce cas rien ne se passe au niveau création fichier.
    et ceci n'est qu'une partie de mes soucis, mais si déjà je pouvais régler ça.
    d'avance merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Je ne connais pas Powershell ni exiftool.

    La réponse que je peux apporter n'est probablement pas celle que tu attends.

    On peut tout faire en VBA, avec Microsoft Scripting Runtime,, on peut récupérer les données relatives aux fichiers.

    Un tuto qui décrit Microsoft Scripting Runtime : http://warin.developpez.com/access/fichiers/

    A toi de voir.
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  3. #3
    Futur Membre du Club
    Homme Profil pro
    retraité photographe
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité photographe

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Par défaut
    Bonjour, merci pour cette réponse, je vais explorer cette voie. Je pense que le problème vient d'Exiftool qui utilise >> pour déclarer le fichier cible, ce que vba n'apprécie peut être pas.
    j'ai utilisé le même processus pour déclencher ViewNX 2 et j'obtiens le résultat attendu, par contre il faut maintenant que je travaille pour remplacer la déclaration explicite du chemin du fichier à ouvrir par ce programme par un string qui récupère un chemin dans un fichier.
    J'avais également un problème d'invocation de Shell, mais en le mettant après un bouton tout se passe bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
              Shell ("C:\Program Files\Nikon\ViewNX 2\ViewNX 2\ViewNX2.exe D:\D7X_5763.NEF")  '  """""prend en compte l'image visée
    End Sub
     
    Private Sub CommandButton2_Click()
               Shell ("exiftool -xmp -csv -k D:\D7X_5763.NEF >>toto.csv")
              TextBox1.Text = "toto"
    End Sub
     
    Private Sub CommandButton3_Click()
              TextBox1.Text = " "
    End Sub
    Pour Exiftool le programme se lance bien mais bloque à partir de >> , il devrait créer toto.csv s'il ne le trouve pas et rien ne se passe.
    Encore merci

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Par défaut
    Salut,

    Voilà un code que j'utlise dans un classeur xl pour récupérer tous les fichiers contenus dans un répertoire et ses sous-répertoires.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Option Explicit
     
    Dim xlWS As Worksheet
    Dim intI As Integer
     
     
    Sub AjoutFeuille()
    'Macro pincipale
    Dim oDlg As FileDialog
     
    Set oDlg = Application.FileDialog(msoFileDialogFolderPicker)
    Set xlWS = ActiveWorkbook.Sheets.Add
    intI = 1
    xlWS.Name = Format(Date, "yyyy-mm-dd")
    oDlg.Show
    RemplirFeuille (oDlg.SelectedItems(1))
     
     
    End Sub
     
     
     
    Function RemplirFeuille(stPath As String) As Long
    Dim oFSO As FileSystemObject
    Dim Element As Variant
     
    Set oFSO = New FileSystemObject
     
    For Each Element In oFSO.GetFolder(stPath).Files
     
    'xlWS.Activate
    'Debug.Print Element.Path; "  "; ActiveCell.Rows
    xlWS.Cells(intI, 1) = Element.Name
    xlWS.Cells(intI, 2) = Element.Path
    xlWS.Cells(intI, 3) = Element.DateLastModified
    intI = intI + 1
     
    Next Element
        'Parcourir chaque sous dossier
        For Each Element In oFSO.GetFolder(stPath).SubFolders
          RemplirFeuille = RemplirFeuille + RemplirFeuille(Element.Path)
        Next Element
     
    RemplirFeuille = 10
     
     
     
    End Function
    J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ?
    Débutez en VBA

    Mes articles


    Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus !

  5. #5
    Futur Membre du Club
    Homme Profil pro
    retraité photographe
    Inscrit en
    Février 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité photographe

    Informations forums :
    Inscription : Février 2014
    Messages : 3
    Par défaut
    Bonjour, solution magique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub CommandButton4_Click()
              Shell ("explorer.exe " & TamponRep)                                     '  ça marche
    End Sub
    ceci provoque le lancement d'un logiciel d'affichage d'image, ViewNX 2 en l'occurrence et pointe sur l'image désirée, mais ça peu en être un autre.
    Mais, en préalable TamponRep contient le chemin complet de la photo à afficher et le logiciel assurant l'affichage doit avoir été cliqué comme programme par défaut dans "ouvrir avec" de Windows.
    Cordialement à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Compatibilité vba Excel 2007 et vba Excel 2013
    Par Lexot2 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 28/12/2014, 22h07
  2. Compatibilite VBA excel et Outlook express
    Par Andejen dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/12/2007, 20h23
  3. Compatibilité VBA excel 2002-2003-2007
    Par VGUVSA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/10/2007, 18h31
  4. Compatibilité VBA Excel
    Par Matthieu_56 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/08/2007, 10h22
  5. [VBA-E] Compatibilité de Date dans VBA Excel
    Par dorschner dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/05/2006, 19h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo