Aide avec userform

Bonjour le forum,

je viens vers vous afin de vous demander de m'aidez, j'ai créer un userform avec une combobox et CommandButton1,

je souhaite une fois sélectionner le nom sur le combobox il m'ouvre le PDF qui correspond au nom choisi.

voilà le code :

Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim i As Integer
   If Me.ComboBox1.ListIndex = 0 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 2
  For i = 1 To 20

  Next i
End Sub

Private Sub CommandButton1_Click()
Application.Visible = True
UserForm1.Hide

End Sub

Private Sub CommandButton2_Click()
Dim Ligne As Long
Dim i As Integer

  If Me.ComboBox1.ListIndex = 0 Then Exit Sub 'On sort si pas de sélection
 Ligne = Me.ComboBox1.ListIndex + 2
ActiveWorkbook.FollowHyperlink Address:=Sheets("Données").Cells(Ligne, 3), NewWindow:=True

End Sub

merci encore de votre aide

13combobox.xlsm (19.93 Ko)

Si je ne m'abuse, lorsque aucun élément n'est sélectionné dans une combobox, combobox.ListIndex vaut -1. Il faut donc corriger tes tests.

merci d3d9x pour la réponse même avec ses corrections il me fait une débogage au niveau de cette ligne :

ActiveWorkbook.FollowHyperlink Address:=Sheets("Données").Cells(Ligne, 3), NewWindow:=True

merci encore

Voilà une procédure à ajouter. Cette procédure permet l'ouverture d'un PDF

Public Sub openPDF(ByVal cheminPDF As String)
    Dim Shex As Object
    Set Shex = CreateObject("Shell.Application")
    If Dir(cheminPDF) = "" Then
        MsgBox "Fichier suivant non trouvé:" & vbCr & cheminPDF
    Else
        Shex.Open (cheminPDF)
    End If

End Sub

et la ligne à REMPLACER:

ActiveWorkbook.FollowHyperlink Address:=Sheets("Données").Cells(Ligne, 3), NewWindow:=True

PAR

openPDF ActiveWorkbook.FollowHyperlink Address:=Sheets("Données").Cells(Ligne, 3)

ATTENTION:

Il faut que ta cellule contienne le chemin COMPLET du fichier, par exemple "C:\Users\TOTO\Documents\monPDF.pdf"

merci encore d3d9x pour ton aide, j'ai suivi tes propositions mais toujours j'ai une erreur de compilation sur la ligne :

openPDF ActiveWorkbook.FollowHyperlink Address:=Sheets("Données").Cells(Ligne, 3)

cordialement

Excuse moi j'ai commis deux grossières erreurs:

openPDF Sheets("Données").Cells(Ligne, 3).Value
Public Sub openPDF(ByVal cheminPDF As String)
Dim Shex As Object
Set Shex = CreateObject("Shell.Application")
If Dir(cheminPDF) = "" Then
    MsgBox "Fichier suivant non trouvé:" & vbCr & cheminPDF
Else
    Shex.Open (cheminPDF)
End If
End Sub

j'ai toujours une erreur ici :

Private Sub CommandButton2_Click()
Dim Ligne As Long
Dim i As Integer

  If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
 Ligne = Me.ComboBox1.ListIndex + 2
openPDF Sheets("Données").Cells(Ligne, 3).Value

End Sub

Public Sub openPDF(ByVal G:\momo\moi.pdf  As String)
Dim Shex As Object
Set Shex = CreateObject("Shell.Application")
If Dir G:\momo\moi.pdf = "" Then
    MsgBox "Fichier suivant non trouvé:" & vbCr & G:\momo\moi.pdf
Else
    Shex.Open G:\momo\moi.pdf
End If
End Sub

Il ne fallait pas modifier la fonction openPDF !!!!

'PAS TOUCHE, NE RIEN MODIFIER DANS CETTE FONCTION
Public Sub openPDF(ByVal cheminPDF As String)
Dim Shex As Object
Set Shex = CreateObject("Shell.Application")
If Dir(cheminPDF) = "" Then
    MsgBox "Fichier suivant non trouvé:" & vbCr & cheminPDF
Else
    Shex.Open (cheminPDF)
End If
End Sub

Private Sub CommandButton2_Click()
Dim Ligne As Long
Dim i As Integer

  If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'On sort si pas de sélection
Ligne = Me.ComboBox1.ListIndex + 2
openPDF Sheets("Données").Cells(Ligne, 3).Value
'Sheets("Données").Cells(Ligne, 3).Value contient quelquechose de ce type : "C:\TOTO\Documents\unPDF.pdf")
'openPDF Sheets("Données").Cells(Ligne, 3).Value doit être compris dans le sens:
'la variable cheminPDF prend la valeur "C:\TOTO\Documents\unPDF.pdf". Exécute le reste du code de la procédure.
End Sub

ah ok opss, désolé car je suis novice en vba,

j'ai changé les codes par rapport ce que tu m'a dis mais il ne trouve pas le chemin.

question si je souhaite faire plus de CommandButton sur userform, je doit changer le code pour chaque CommandButton ou juste la ligne ou il y'a le lien hypertext?

merci encoe

voilà,

merci

cordialement

9combobox.xlsm (20.85 Ko)

Le premier chemin est:

G:\momo\moi.pdf.pdf

Tu as pas un .pdf en trop par hasard?

oui désolé je l'ai vu au dernier moment, entre temps j'ai supprimer mais sa fait la même chose.

cordialement

Ok mets tout ça de côté. Dans un nouveau fichier excel, exécute le code suivant:

Private Sub checkData()

file = Dir("G:\momo\*.pdf")

While file <> ""
    Msgbox file
    file = Dir
Wend
End Sub

Si rien n'est affiché, c'est que dans ton répertoire "G:\momo\" il n'y a AUCUN pdf.

  • > tu as mal tapé le répertoire, la syntaxe doit être la même.
  • > tu n'as pas mis le bon répertoire
  • > il n'y a pas de PDF dans le répertoire

il me trouve le fichier moi.pdf

cordialement

Rechercher des sujets similaires à "aide userform"