Code Vba

Résolu
Bonjour chers amis,

J'essaie en double cliquant en colonne A qui contient cette formule : =SI(ESTVIDE(F27);"";A26+1)
sur le numéro d'ordre (ex. 20) pour que ça m’ouvre la facture 20.pdf enregistrée dans le même dossier et qui se trouve sur le bureau.
Ce pour chaque numéro d'enregistrement quel que soit le logiciel PDF.
J'ai essayer ce code, mais il ne fonctionne pas.
Ne maitrisant pas le Vba je suis perdu.
Je vous remercie de bien vouloir m'éclairer.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 Then
Dim Siret As String
Dim CheminDOc As String
CheminDOc = ChDir("E:\Utilisateurs\Castor\Bureau\Facture rénovation maison")
Siret = Target
If Siret <> "" Then
 Shell "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe " & CheminDOc & "\" & Siret
Shell "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe " & CheminDOc & "\" & Siret
 Else
MsgBox "La cellule est vide, veuillez double cliquer sur une autre cellule"
End If
End Sub

13 réponses

  1. Bonjour,
    Il faudrait rajouter l’extension du fichier PDF à ouvrir

    & Siret &".PDF"
    0
    1. Bonjour M-12
      Je te remercie de t'intéresser à ma demande
      J"ai fonction ou variable attendu ici
      CheminDOc = ChDir("E:\Utilisateurs\Castor\Bureau\Facture rénovation maison") & Siret & ".PDF"
      0
      1. Re,
        Teste comme ceci
        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        Dim Siret As String
        Dim CheminDOc As String
        If Target.Column = 1 Then
        CheminDOc = ChDir("E:\Utilisateurs\Castor\Bureau\Facture rénovation maison")
        Siret = Target
        If Siret <> "" Then
        Shell "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe " & CheminDOc & "\" & Siret & ".pdf"
        Shell "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe " & CheminDOc & "\" & Siret & ".pdf"
        Else
        MsgBox "La cellule est vide, veuillez double cliquer sur une autre cellule"
        End If
        End If
        End Sub
        0
        1. Re,
          Même problème à ChDir
          0
          1. Autant pour moi, il faut l'ôter le CHDIR

            Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
            Dim Siret As String
            Dim CheminDOc As String
            If Target.Column = 1 Then
            CheminDOc = "E:\Utilisateurs\Castor\Bureau\Facture rénovation maison"
            Siret = Target
            If Siret <> "" Then
            Shell "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe " & CheminDOc & "\" & Siret & ".pdf"
            Shell "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe " & CheminDOc & "\" & Siret & ".pdf"
            Else
            MsgBox "La cellule est vide, veuillez double cliquer sur une autre cellule"
            End If
            End If
            End Sub
            0
            1. Re,
              Cette ligne est surlignée en jaune
              Shell "C:\Program Files\Foxit Software\Foxit Reader\FoxitReader.exe " & CheminDOc & "\" & Siret & ".pdf"
              0
              1. Re,

                As-tu FOXIT Reader installé sur ta machine ?
                Si OUI
                Le chemin d'accès est -il le bon ?

                Idem pour Adobe
                0
                1. Re,
                  Oui tout ce chemin est bon
                  J'ai corrigé
                  C:\Program Files(x86)\Foxit Software\Foxit Reader\FoxitReader.exe
                  et c'est pareil
                  0
                  1. Re

                    Teste Ceci, sinon je ne vois pas

                    Option Explicit
                    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 Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
                    Dim Siret As String
                    Dim CheminDOc As String
                    If Target.Column = 1 Then
                    CheminDOc = "E:\Utilisateurs\Castor\Bureau\Facture rénovation maison"""
                    Siret = Target
                    If Siret <> "" Then
                    Const SW_SHOWMAXIMIZED = 3
                    ShellExecute 0&, "open", CheminDOc & "\" & Siret & ".pdf", 0&, 0&, SW_SHOWMAXIMIZED
                    Else
                    MsgBox "La cellule est vide, veuillez double cliquer sur une autre cellule"
                    End If
                    End If

                    End Sub

                    0
                    1. Re,
                      Non il ne se passe rien, désolé
                      0
                      1. Bonjour
                        En reprenant votre code du début, après CHDIR, il ne doit pas y avoir de parenthèses
                        ChDir "E:\Utilisateurs\Castor\Bureau\Facture rénovation maison"
                        Siret = Target
                        Peut-être que cela solutionnera votre problème.
                        Cdlt
                        0
                        1. Bonjour Frenchie83,
                          Je te remercie mais ça met : Attendu fin d'instruction
                          0