Bonjour,
Cela devrait aller comme ça :
Je suppose qu'il y a une variable Rst de déclarer
comme étant le "RecordSet , sinon il faudra l'ajouter
Dim Rst As New ADODB.Recordset à la déclaration
des variables.
'---------------------------------------
Private Sub UserForm_Initialize()
Dim GestionErreur As String
Dim Rg As Range
Dim Critere As Long
On Error GoTo GestionErreur
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
requete = "SELECT [N°devis], Nom FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.GetRows
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
End With
Exit Sub
GestionErreur:
MsgBox "La procédure a rencontré un pépin " & _
"de ce type: " & vbCrLf & _
Err.Number & ", " & Err.Description
End Sub
'---------------------------------------
"Peponne31" a écrit dans le message de groupe de
discussion :
Bonsoir à tous,
Dans ce code , je voudrai récupérer le message d'erreur
si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
Private Sub UserForm_Initialize()
Dim Rg As Range
Dim Critere As Long
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
8.0;HDR=Yes;"""
requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
Rg.Address(0, 0) _
& "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
a = Rst.RecordCount
x = Rst.GetRows
With Me.ListBox1
'If .List >= 1 Then '<--ici pour l'erreur
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
'Else
' MsgBox "Aucune sélection de faite dans la liste !"
' End If
End With
End Sub
Merci à vous pour votre aide
Peponne31
Bonjour,
Cela devrait aller comme ça :
Je suppose qu'il y a une variable Rst de déclarer
comme étant le "RecordSet , sinon il faudra l'ajouter
Dim Rst As New ADODB.Recordset à la déclaration
des variables.
'---------------------------------------
Private Sub UserForm_Initialize()
Dim GestionErreur As String
Dim Rg As Range
Dim Critere As Long
On Error GoTo GestionErreur
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
requete = "SELECT [N°devis], Nom FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.GetRows
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
End With
Exit Sub
GestionErreur:
MsgBox "La procédure a rencontré un pépin " & _
"de ce type: " & vbCrLf & _
Err.Number & ", " & Err.Description
End Sub
'---------------------------------------
"Peponne31" <Peponne31@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : F52297DC-C341-4F09-AF9C-F133E7AAAA1A@microsoft.com...
Bonsoir à tous,
Dans ce code , je voudrai récupérer le message d'erreur
si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
Private Sub UserForm_Initialize()
Dim Rg As Range
Dim Critere As Long
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
8.0;HDR=Yes;"""
requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
Rg.Address(0, 0) _
& "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
a = Rst.RecordCount
x = Rst.GetRows
With Me.ListBox1
'If .List >= 1 Then '<--ici pour l'erreur
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
'Else
' MsgBox "Aucune sélection de faite dans la liste !"
' End If
End With
End Sub
Merci à vous pour votre aide
Peponne31
Bonjour,
Cela devrait aller comme ça :
Je suppose qu'il y a une variable Rst de déclarer
comme étant le "RecordSet , sinon il faudra l'ajouter
Dim Rst As New ADODB.Recordset à la déclaration
des variables.
'---------------------------------------
Private Sub UserForm_Initialize()
Dim GestionErreur As String
Dim Rg As Range
Dim Critere As Long
On Error GoTo GestionErreur
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
requete = "SELECT [N°devis], Nom FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.GetRows
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
End With
Exit Sub
GestionErreur:
MsgBox "La procédure a rencontré un pépin " & _
"de ce type: " & vbCrLf & _
Err.Number & ", " & Err.Description
End Sub
'---------------------------------------
"Peponne31" a écrit dans le message de groupe de
discussion :
Bonsoir à tous,
Dans ce code , je voudrai récupérer le message d'erreur
si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
Private Sub UserForm_Initialize()
Dim Rg As Range
Dim Critere As Long
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
8.0;HDR=Yes;"""
requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
Rg.Address(0, 0) _
& "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
a = Rst.RecordCount
x = Rst.GetRows
With Me.ListBox1
'If .List >= 1 Then '<--ici pour l'erreur
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
'Else
' MsgBox "Aucune sélection de faite dans la liste !"
' End If
End With
End Sub
Merci à vous pour votre aide
Peponne31
Bonjour,
Cela devrait aller comme ça :
Je suppose qu'il y a une variable Rst de déclarer
comme étant le "RecordSet , sinon il faudra l'ajouter
Dim Rst As New ADODB.Recordset à la déclaration
des variables.
'---------------------------------------
Private Sub UserForm_Initialize()
Dim GestionErreur As String
Dim Rg As Range
Dim Critere As Long
On Error GoTo GestionErreur
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
requete = "SELECT [N°devis], Nom FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.GetRows
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
End With
Exit Sub
GestionErreur:
MsgBox "La procédure a rencontré un pépin " & _
"de ce type: " & vbCrLf & _
Err.Number & ", " & Err.Description
End Sub
'---------------------------------------
"Peponne31" a écrit dans le message de groupe de
discussion :
Bonsoir à tous,
Dans ce code , je voudrai récupérer le message d'erreur
si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
Private Sub UserForm_Initialize()
Dim Rg As Range
Dim Critere As Long
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
8.0;HDR=Yes;"""
requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
Rg.Address(0, 0) _
& "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
a = Rst.RecordCount
x = Rst.GetRows
With Me.ListBox1
'If .List >= 1 Then '<--ici pour l'erreur
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
'Else
' MsgBox "Aucune sélection de faite dans la liste !"
' End If
End With
End Sub
Merci à vous pour votre aide
Peponne31
Bonjour,
Cela devrait aller comme ça :
Je suppose qu'il y a une variable Rst de déclarer
comme étant le "RecordSet , sinon il faudra l'ajouter
Dim Rst As New ADODB.Recordset à la déclaration
des variables.
'---------------------------------------
Private Sub UserForm_Initialize()
Dim GestionErreur As String
Dim Rg As Range
Dim Critere As Long
On Error GoTo GestionErreur
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
requete = "SELECT [N°devis], Nom FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.GetRows
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
End With
Exit Sub
GestionErreur:
MsgBox "La procédure a rencontré un pépin " & _
"de ce type: " & vbCrLf & _
Err.Number & ", " & Err.Description
End Sub
'---------------------------------------
"Peponne31" <Peponne31@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : F52297DC-C341-4F09-AF9C-F133E7AAAA1A@microsoft.com...
Bonsoir à tous,
Dans ce code , je voudrai récupérer le message d'erreur
si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
Private Sub UserForm_Initialize()
Dim Rg As Range
Dim Critere As Long
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
8.0;HDR=Yes;"""
requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
Rg.Address(0, 0) _
& "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
a = Rst.RecordCount
x = Rst.GetRows
With Me.ListBox1
'If .List >= 1 Then '<--ici pour l'erreur
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
'Else
' MsgBox "Aucune sélection de faite dans la liste !"
' End If
End With
End Sub
Merci à vous pour votre aide
Peponne31
Bonjour,
Cela devrait aller comme ça :
Je suppose qu'il y a une variable Rst de déclarer
comme étant le "RecordSet , sinon il faudra l'ajouter
Dim Rst As New ADODB.Recordset à la déclaration
des variables.
'---------------------------------------
Private Sub UserForm_Initialize()
Dim GestionErreur As String
Dim Rg As Range
Dim Critere As Long
On Error GoTo GestionErreur
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & ThisWorkbook.FullName & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"""
requete = "SELECT [N°devis], Nom FROM [" & _
Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
x = Rst.GetRows
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
End With
Exit Sub
GestionErreur:
MsgBox "La procédure a rencontré un pépin " & _
"de ce type: " & vbCrLf & _
Err.Number & ", " & Err.Description
End Sub
'---------------------------------------
"Peponne31" a écrit dans le message de groupe de
discussion :
Bonsoir à tous,
Dans ce code , je voudrai récupérer le message d'erreur
si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
Private Sub UserForm_Initialize()
Dim Rg As Range
Dim Critere As Long
Me.Caption = ThisWorkbook.Name
With Worksheets("JournalDevis")
Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
End With
Set Conn = New ADODB.Connection
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
8.0;HDR=Yes;"""
requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
Rg.Address(0, 0) _
& "]"
Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
a = Rst.RecordCount
x = Rst.GetRows
With Me.ListBox1
'If .List >= 1 Then '<--ici pour l'erreur
.ColumnCount = 2
.ColumnWidths = "50;85"
.List = Application.Transpose(x)
'Else
' MsgBox "Aucune sélection de faite dans la liste !"
' End If
End With
End Sub
Merci à vous pour votre aide
Peponne31
à titre d'exemple ceci : http://cjoint.com/?kcaxXPD2wD
si tu veux tester si ton listbox n'a aucune sélection,
Sub test1()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "No sélection"
Else
'Affiche la sélection (2 colonnes)
MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 0) & _
vbTab & Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
End If
End Sub
"Peponne31" a écrit dans le message de groupe de
discussion :
Bonsoir Michdenis,
C'est pareil, à partir du moment ou il ni a aucune sélection de faite
il me dit:
Erreur d'exécution 381
Impossible de lire la propriété List. Index de table de propriété non valide
Merci encore
Peponne31
"michdenis" a écrit :
> Bonjour,
>
> Cela devrait aller comme ça :
>
> Je suppose qu'il y a une variable Rst de déclarer
> comme étant le "RecordSet , sinon il faudra l'ajouter
> Dim Rst As New ADODB.Recordset à la déclaration
> des variables.
>
> '---------------------------------------
> Private Sub UserForm_Initialize()
>
> Dim GestionErreur As String
> Dim Rg As Range
> Dim Critere As Long
>
> On Error GoTo GestionErreur
>
> Me.Caption = ThisWorkbook.Name
> With Worksheets("JournalDevis")
> Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
> End With
>
> Set Conn = New ADODB.Connection
>
> Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & ThisWorkbook.FullName & ";" & _
> "Extended Properties=""Excel 8.0;HDR=Yes;"""
>
> requete = "SELECT [N°devis], Nom FROM [" & _
> Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
>
> Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
>
> x = Rst.GetRows
> With Me.ListBox1
> .Clear
> .ColumnCount = 2
> .ColumnWidths = "50;85"
> .List = Application.Transpose(x)
> End With
> Exit Sub
>
> GestionErreur:
> MsgBox "La procédure a rencontré un pépin " & _
> "de ce type: " & vbCrLf & _
> Err.Number & ", " & Err.Description
>
> End Sub
> '---------------------------------------
>
>
>
> "Peponne31" a écrit dans le message de groupe de
> discussion :
> Bonsoir à tous,
>
> Dans ce code , je voudrai récupérer le message d'erreur
> si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
>
> Private Sub UserForm_Initialize()
> Dim Rg As Range
> Dim Critere As Long
> Me.Caption = ThisWorkbook.Name
> With Worksheets("JournalDevis")
> Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
> End With
> Set Conn = New ADODB.Connection
> Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
> ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
> 8.0;HDR=Yes;"""
> requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
> Rg.Address(0, 0) _
> & "]"
> Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
> a = Rst.RecordCount
> x = Rst.GetRows
> With Me.ListBox1
> 'If .List >= 1 Then '<--ici pour l'erreur
> .ColumnCount = 2
> .ColumnWidths = "50;85"
> .List = Application.Transpose(x)
> 'Else
> ' MsgBox "Aucune sélection de faite dans la liste !"
> ' End If
> End With
> End Sub
>
> Merci à vous pour votre aide
> Peponne31
>
à titre d'exemple ceci : http://cjoint.com/?kcaxXPD2wD
si tu veux tester si ton listbox n'a aucune sélection,
Sub test1()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "No sélection"
Else
'Affiche la sélection (2 colonnes)
MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 0) & _
vbTab & Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
End If
End Sub
"Peponne31" <Peponne31@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : 2748A89F-5A67-4DEF-9B59-4611EEC256D1@microsoft.com...
Bonsoir Michdenis,
C'est pareil, à partir du moment ou il ni a aucune sélection de faite
il me dit:
Erreur d'exécution 381
Impossible de lire la propriété List. Index de table de propriété non valide
Merci encore
Peponne31
"michdenis" a écrit :
> Bonjour,
>
> Cela devrait aller comme ça :
>
> Je suppose qu'il y a une variable Rst de déclarer
> comme étant le "RecordSet , sinon il faudra l'ajouter
> Dim Rst As New ADODB.Recordset à la déclaration
> des variables.
>
> '---------------------------------------
> Private Sub UserForm_Initialize()
>
> Dim GestionErreur As String
> Dim Rg As Range
> Dim Critere As Long
>
> On Error GoTo GestionErreur
>
> Me.Caption = ThisWorkbook.Name
> With Worksheets("JournalDevis")
> Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
> End With
>
> Set Conn = New ADODB.Connection
>
> Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & ThisWorkbook.FullName & ";" & _
> "Extended Properties=""Excel 8.0;HDR=Yes;"""
>
> requete = "SELECT [N°devis], Nom FROM [" & _
> Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
>
> Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
>
> x = Rst.GetRows
> With Me.ListBox1
> .Clear
> .ColumnCount = 2
> .ColumnWidths = "50;85"
> .List = Application.Transpose(x)
> End With
> Exit Sub
>
> GestionErreur:
> MsgBox "La procédure a rencontré un pépin " & _
> "de ce type: " & vbCrLf & _
> Err.Number & ", " & Err.Description
>
> End Sub
> '---------------------------------------
>
>
>
> "Peponne31" <Peponne31@discussions.microsoft.com> a écrit dans le message de groupe de
> discussion : F52297DC-C341-4F09-AF9C-F133E7AAAA1A@microsoft.com...
> Bonsoir à tous,
>
> Dans ce code , je voudrai récupérer le message d'erreur
> si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
>
> Private Sub UserForm_Initialize()
> Dim Rg As Range
> Dim Critere As Long
> Me.Caption = ThisWorkbook.Name
> With Worksheets("JournalDevis")
> Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
> End With
> Set Conn = New ADODB.Connection
> Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
> ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
> 8.0;HDR=Yes;"""
> requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
> Rg.Address(0, 0) _
> & "]"
> Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
> a = Rst.RecordCount
> x = Rst.GetRows
> With Me.ListBox1
> 'If .List >= 1 Then '<--ici pour l'erreur
> .ColumnCount = 2
> .ColumnWidths = "50;85"
> .List = Application.Transpose(x)
> 'Else
> ' MsgBox "Aucune sélection de faite dans la liste !"
> ' End If
> End With
> End Sub
>
> Merci à vous pour votre aide
> Peponne31
>
à titre d'exemple ceci : http://cjoint.com/?kcaxXPD2wD
si tu veux tester si ton listbox n'a aucune sélection,
Sub test1()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "No sélection"
Else
'Affiche la sélection (2 colonnes)
MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 0) & _
vbTab & Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
End If
End Sub
"Peponne31" a écrit dans le message de groupe de
discussion :
Bonsoir Michdenis,
C'est pareil, à partir du moment ou il ni a aucune sélection de faite
il me dit:
Erreur d'exécution 381
Impossible de lire la propriété List. Index de table de propriété non valide
Merci encore
Peponne31
"michdenis" a écrit :
> Bonjour,
>
> Cela devrait aller comme ça :
>
> Je suppose qu'il y a une variable Rst de déclarer
> comme étant le "RecordSet , sinon il faudra l'ajouter
> Dim Rst As New ADODB.Recordset à la déclaration
> des variables.
>
> '---------------------------------------
> Private Sub UserForm_Initialize()
>
> Dim GestionErreur As String
> Dim Rg As Range
> Dim Critere As Long
>
> On Error GoTo GestionErreur
>
> Me.Caption = ThisWorkbook.Name
> With Worksheets("JournalDevis")
> Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
> End With
>
> Set Conn = New ADODB.Connection
>
> Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
> "Data Source=" & ThisWorkbook.FullName & ";" & _
> "Extended Properties=""Excel 8.0;HDR=Yes;"""
>
> requete = "SELECT [N°devis], Nom FROM [" & _
> Rg.Parent.Name & "$" & Rg.Address(0, 0) & "]"
>
> Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
>
> x = Rst.GetRows
> With Me.ListBox1
> .Clear
> .ColumnCount = 2
> .ColumnWidths = "50;85"
> .List = Application.Transpose(x)
> End With
> Exit Sub
>
> GestionErreur:
> MsgBox "La procédure a rencontré un pépin " & _
> "de ce type: " & vbCrLf & _
> Err.Number & ", " & Err.Description
>
> End Sub
> '---------------------------------------
>
>
>
> "Peponne31" a écrit dans le message de groupe de
> discussion :
> Bonsoir à tous,
>
> Dans ce code , je voudrai récupérer le message d'erreur
> si on valide sans faire de sélection dans le ListBox, je ni parviens pas.
>
> Private Sub UserForm_Initialize()
> Dim Rg As Range
> Dim Critere As Long
> Me.Caption = ThisWorkbook.Name
> With Worksheets("JournalDevis")
> Set Rg = .Range("A7:C" & .Range("A65536").End(xlUp).Row)
> End With
> Set Conn = New ADODB.Connection
> Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & _
> ThisWorkbook.FullName & ";" & "Extended Properties=""Excel
> 8.0;HDR=Yes;"""
> requete = "SELECT N°devis, Nom FROM [" & Rg.Parent.Name & "$" &
> Rg.Address(0, 0) _
> & "]"
> Rst.Open requete, Conn, adOpenStatic, adLockOptimistic
> a = Rst.RecordCount
> x = Rst.GetRows
> With Me.ListBox1
> 'If .List >= 1 Then '<--ici pour l'erreur
> .ColumnCount = 2
> .ColumnWidths = "50;85"
> .List = Application.Transpose(x)
> 'Else
> ' MsgBox "Aucune sélection de faite dans la liste !"
> ' End If
> End With
> End Sub
>
> Merci à vous pour votre aide
> Peponne31
>
| si je clique sur valider sans sélectionner un Item
Et ceci ne fonctionne pas ?
cette ligne de code empêche le reste de la procédure
de s'exécuter si aucune sélection dans le listbox1 est
active au moment de lancer une procédure...
ça ne marche pas chez toi ?
If Me.ListBox1.ListIndex = -1 Then
'-----------------------------------------
Sub test1()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "No sélection"
Else
'Affiche la sélection (2 colonnes)
MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 0) & _
vbTab & Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
End If
End Sub
'-----------------------------------------
| si je clique sur valider sans sélectionner un Item
Et ceci ne fonctionne pas ?
cette ligne de code empêche le reste de la procédure
de s'exécuter si aucune sélection dans le listbox1 est
active au moment de lancer une procédure...
ça ne marche pas chez toi ?
If Me.ListBox1.ListIndex = -1 Then
'-----------------------------------------
Sub test1()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "No sélection"
Else
'Affiche la sélection (2 colonnes)
MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 0) & _
vbTab & Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
End If
End Sub
'-----------------------------------------
| si je clique sur valider sans sélectionner un Item
Et ceci ne fonctionne pas ?
cette ligne de code empêche le reste de la procédure
de s'exécuter si aucune sélection dans le listbox1 est
active au moment de lancer une procédure...
ça ne marche pas chez toi ?
If Me.ListBox1.ListIndex = -1 Then
'-----------------------------------------
Sub test1()
If Me.ListBox1.ListIndex = -1 Then
MsgBox "No sélection"
Else
'Affiche la sélection (2 colonnes)
MsgBox Me.ListBox1.List(Me.ListBox1.ListIndex, 0) & _
vbTab & Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
End If
End Sub
'-----------------------------------------