message d'erreur sur ouverture fichier via listbox ?

assniok

XLDnaute Occasionnel
Bonjour a tous,

j'utilise ce code:

Code:
Private Sub Bouton2_Click()
Dim Presence As Boolean
Presence = False
TextBox4.Value = Workbooks("test.xls").Sheets("Instructions").Range("A5").Value
TextBox4.BackColor = &HFFFF&
With Me.Listbox1
For Each w In Workbooks
If w.Name = Selected(i) Then Presence = True
Next w
If Presence = True Then
Workbooks(Selected(i)).Activate
Else
    For i = 0 To Me.Listbox1.ListCount - 1
        If .Selected(i) Then
            Workbooks.Open (path & .List(i))
            'Unload Me
        End If
    Next i
End If
End With
'Unload Me
End Sub

pour ouvrir un fichier excel via une listbox, j'essaye de faire en sorte qu'il n'y est pas de message d'erreur dans le cas ou l'on cherche a ouvrir deux fois le meme fichier... mais ça ne fonctionne pas :(
pouvez vous m'aider ?

merci d'avance et bonne journée.
@+
 

assniok

XLDnaute Occasionnel
Re : message d'erreur sur ouverture fichier via listbox ?

bon j'ai plus ou moins resolu mon pb puisque je n'ai plus de message d'erreur me renvoyant a VB

Code:
Private Sub Bouton2_Click()
TextBox4.Value = Workbooks("test.xls").Sheets("Instructions").Range("A5").Value
TextBox4.BackColor = &HFFFF&
With Me.Listbox1
    For i = 0 To Me.Listbox1.ListCount - 1
        If .Selected(i) Then
        On Error Resume Next
            Workbooks.Open (path & .List(i))
            If Err <> 0 Then
                MsgBox "ça ne sert a rien d'ouvrir deux fois le même fichier !"
                On Error GoTo 0
            End If
        End If
    Next i
End With
End Sub

mais ça laisse tout de meme la possibilité de repondre oui et d'ouvrir a nouveau le fichier deja ouvert... j'aurais aimé trouver une solution pour ne pas avoir ce choix mais bon tampi..

@+
 

bqtr

XLDnaute Accro
Re : message d'erreur sur ouverture fichier via listbox ?

Bonjour assniok,

Si j'ai bien compris test ceci:

Code:
Function Test_Fichier(Fich As String) As Boolean
Dim Wb As Workbook
On Error Resume Next
Set Wb = Workbooks(Fich)
 If Err = 0 Then
   Test_Fichier = True
 Else
   Test_Fichier = False
 End If
End Function

Le code de ton bouton

Code:
Private Sub CommandButton1_Click()
Dim i As Integer

TextBox4.Value = Workbooks("test.xls").Sheets("Instructions").Range("A5").Value
TextBox4.BackColor = &HFFFF&
With Me.ListBox1
    For i = 0 To Me.ListBox1.ListCount - 1
        If .Selected(i) Then
            If Test_Fichier(Dir(.List(i))) = False Then
              Workbooks.Open (.List(i))
            Else
              MsgBox "Fichier déjà ouvert"
            End If
        End If
    Next i
End With

End Sub

La fonction "Test_Fichier" reçoit le nom du fichier sélectionné dans la listbox (pas le chemin complet) et teste si ce fichier est ouvert.
Si OUI elle te l'indique et n'ouvre pas de nouveau le fichier.
Si NON le fichier sélectionné est ouvert.

A+
 

Statistiques des forums

Discussions
312 206
Messages
2 086 202
Membres
103 157
dernier inscrit
youma