Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Set lst = myr(ComboBox1.ListIndex + 1)
.....
Cells(65536, lst.Column).End(xlUp)).Cells
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Set lst = myr(ComboBox1.ListIndex + 1)
.....
Cells(65536, lst.Column).End(xlUp)).Cells
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Set lst = myr(ComboBox1.ListIndex + 1)
.....
Cells(65536, lst.Column).End(xlUp)).Cells
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
....suite... ce qui sous tend que tes autres listes sont issues de lignes
et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau as
variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit) là
http://www.cjoint.com
a+
lSteph
"François" a écrit dans le message de news:
zn0Qe.46463$Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
....suite... ce qui sous tend que tes autres listes sont issues de lignes
et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau as
variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit) là
http://www.cjoint.com
a+
lSteph
"François" <132@13.com> a écrit dans le message de news:
zn0Qe.46463$vR3.716649@wagner.videotron.net...
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
....suite... ce qui sous tend que tes autres listes sont issues de lignes
et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau as
variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit) là
http://www.cjoint.com
a+
lSteph
"François" a écrit dans le message de news:
zn0Qe.46463$Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un élément
dans le premier, seul les choix en fonction du premier doivent s'afficher
dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Les combobox sont pour les colonnes.
Voici le lien : http://cjoint.com/?iBuD3BuN56
Merci
"LSteph" a écrit dans le message de news:....suite... ce qui sous tend que tes autres listes sont issues de lignes
et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau as
variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit)
là
http://www.cjoint.com
a+
lSteph
"François" a écrit dans le message de news:
zn0Qe.46463$Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un
élément dans le premier, seul les choix en fonction du premier doivent
s'afficher dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Les combobox sont pour les colonnes.
Voici le lien : http://cjoint.com/?iBuD3BuN56
Merci
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
ervqZnyqFHA.2540@TK2MSFTNGP09.phx.gbl...
....suite... ce qui sous tend que tes autres listes sont issues de lignes
et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau as
variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit)
là
http://www.cjoint.com
a+
lSteph
"François" <132@13.com> a écrit dans le message de news:
zn0Qe.46463$vR3.716649@wagner.videotron.net...
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un
élément dans le premier, seul les choix en fonction du premier doivent
s'afficher dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Les combobox sont pour les colonnes.
Voici le lien : http://cjoint.com/?iBuD3BuN56
Merci
"LSteph" a écrit dans le message de news:....suite... ce qui sous tend que tes autres listes sont issues de lignes
et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau as
variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit)
là
http://www.cjoint.com
a+
lSteph
"François" a écrit dans le message de news:
zn0Qe.46463$Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un
élément dans le premier, seul les choix en fonction du premier doivent
s'afficher dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je ne
peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonsoir François,
Tout à lheure
je téléchargeais ton fichier et commençais à écrire ceci:
--
Compte-tenu de ce que tu réfères dans cette macro il y a plein de vide en
colonne A
Il faut donc enlever les doublons
et pour le reste la disposition ne constitue pas réellement un critère
indexé dans une première liste
duquel découlerait un choix déterminant les matrices référant à
d'autres listes sur lesquelles trier des doublons.
En clair, c'est assez éloigné de l'exemple proposé sur l'autre fil.
Sinon qui pourraient renseigner une combobox, je vois les types de
numérotation de timbres en colonne B,
En colonne A il y a des lettres mais j'ai du diminuer mon fichier ...
et un élément coincidant dans des colonnes adjacentes, soit seul la
colonne G qui est relativement renseignée.
Je regarde donc toutefois ce qui se pourrait faire selon l'useform que
tu as élaboré...
--
Je reprends donc:
En fait, la colonne B ne constitue pas non plus un index il y a plusieurs
fois les mêmes numéros.
Aussi, dans la mesure où la colonne C ajoute un renseignement, de type
a,b,c,...
il serait envisageable de concaténer ces deux références en une, de sorte
que tes enregistrements soient bien distincts.
ainsi en ajoutant une colonne par exemple ²&c2 à recopier sur la
colonne.
Si je peux me permettre aussi mettre un titre distinct pour chaque colonne
et ne pas utiliser ces fusions
pour ainsi se retrouver avec un seul titre pour 3 colonnes.
Pour l'instant, désolé mais je ne vois pas vraiment ce qui pourrait ou à
quelle fin être exploité dans le userform
selon le sujet de ce fil.
A+
lSteph
"François" a écrit dans le message de news:
BF1Qe.67418$Les combobox sont pour les colonnes.
Voici le lien : http://cjoint.com/?iBuD3BuN56
Merci
"LSteph" a écrit dans le message de news:....suite... ce qui sous tend que tes autres listes sont issues de
lignes et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau
as variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit)
là
http://www.cjoint.com
a+
lSteph
"François" a écrit dans le message de news:
zn0Qe.46463$Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un
élément dans le premier, seul les choix en fonction du premier doivent
s'afficher dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je
ne peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonsoir François,
Tout à lheure
je téléchargeais ton fichier et commençais à écrire ceci:
--
Compte-tenu de ce que tu réfères dans cette macro il y a plein de vide en
colonne A
Il faut donc enlever les doublons
et pour le reste la disposition ne constitue pas réellement un critère
indexé dans une première liste
duquel découlerait un choix déterminant les matrices référant à
d'autres listes sur lesquelles trier des doublons.
En clair, c'est assez éloigné de l'exemple proposé sur l'autre fil.
Sinon qui pourraient renseigner une combobox, je vois les types de
numérotation de timbres en colonne B,
En colonne A il y a des lettres mais j'ai du diminuer mon fichier ...
et un élément coincidant dans des colonnes adjacentes, soit seul la
colonne G qui est relativement renseignée.
Je regarde donc toutefois ce qui se pourrait faire selon l'useform que
tu as élaboré...
--
Je reprends donc:
En fait, la colonne B ne constitue pas non plus un index il y a plusieurs
fois les mêmes numéros.
Aussi, dans la mesure où la colonne C ajoute un renseignement, de type
a,b,c,...
il serait envisageable de concaténer ces deux références en une, de sorte
que tes enregistrements soient bien distincts.
ainsi en ajoutant une colonne par exemple ²&c2 à recopier sur la
colonne.
Si je peux me permettre aussi mettre un titre distinct pour chaque colonne
et ne pas utiliser ces fusions
pour ainsi se retrouver avec un seul titre pour 3 colonnes.
Pour l'instant, désolé mais je ne vois pas vraiment ce qui pourrait ou à
quelle fin être exploité dans le userform
selon le sujet de ce fil.
A+
lSteph
"François" <132@13.com> a écrit dans le message de news:
BF1Qe.67418$hL3.635168@weber.videotron.net...
Les combobox sont pour les colonnes.
Voici le lien : http://cjoint.com/?iBuD3BuN56
Merci
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
ervqZnyqFHA.2540@TK2MSFTNGP09.phx.gbl...
....suite... ce qui sous tend que tes autres listes sont issues de
lignes et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau
as variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit)
là
http://www.cjoint.com
a+
lSteph
"François" <132@13.com> a écrit dans le message de news:
zn0Qe.46463$vR3.716649@wagner.videotron.net...
Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un
élément dans le premier, seul les choix en fonction du premier doivent
s'afficher dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je
ne peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Bonsoir François,
Tout à lheure
je téléchargeais ton fichier et commençais à écrire ceci:
--
Compte-tenu de ce que tu réfères dans cette macro il y a plein de vide en
colonne A
Il faut donc enlever les doublons
et pour le reste la disposition ne constitue pas réellement un critère
indexé dans une première liste
duquel découlerait un choix déterminant les matrices référant à
d'autres listes sur lesquelles trier des doublons.
En clair, c'est assez éloigné de l'exemple proposé sur l'autre fil.
Sinon qui pourraient renseigner une combobox, je vois les types de
numérotation de timbres en colonne B,
En colonne A il y a des lettres mais j'ai du diminuer mon fichier ...
et un élément coincidant dans des colonnes adjacentes, soit seul la
colonne G qui est relativement renseignée.
Je regarde donc toutefois ce qui se pourrait faire selon l'useform que
tu as élaboré...
--
Je reprends donc:
En fait, la colonne B ne constitue pas non plus un index il y a plusieurs
fois les mêmes numéros.
Aussi, dans la mesure où la colonne C ajoute un renseignement, de type
a,b,c,...
il serait envisageable de concaténer ces deux références en une, de sorte
que tes enregistrements soient bien distincts.
ainsi en ajoutant une colonne par exemple ²&c2 à recopier sur la
colonne.
Si je peux me permettre aussi mettre un titre distinct pour chaque colonne
et ne pas utiliser ces fusions
pour ainsi se retrouver avec un seul titre pour 3 colonnes.
Pour l'instant, désolé mais je ne vois pas vraiment ce qui pourrait ou à
quelle fin être exploité dans le userform
selon le sujet de ce fil.
A+
lSteph
"François" a écrit dans le message de news:
BF1Qe.67418$Les combobox sont pour les colonnes.
Voici le lien : http://cjoint.com/?iBuD3BuN56
Merci
"LSteph" a écrit dans le message de news:....suite... ce qui sous tend que tes autres listes sont issues de
lignes et non de colonnes
donc on aurait qqchose du genre:
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(0, 1), _
Cells(lst.Row, 255).End(xlToLeft)).Cells
that.Add c, CStr(c)
Next c
..pour le reste je ne vois pas trop ce que tu fais après ni du Tableau
as variant...
le plus simple serait que tu mette ton classeur (en modèle plus réduit)
là
http://www.cjoint.com
a+
lSteph
"François" a écrit dans le message de news:
zn0Qe.46463$Bonjour,
J'ai trois combobox liés entre eux, i.e. que lorsque je choisi un
élément dans le premier, seul les choix en fonction du premier doivent
s'afficher dans le 2e et dans le 3e en fonction du 1er et du 2e.
J'ai bien regardé la question posée plus tôt pour des listbox mais je
ne peux rien faire pour les combobox.
Voici donc le code (il est à noté que mon fichier contient 6000 lignes
(A:K) car j'ai l'erreur Dépassement) :
Option Explicit
Public L As Integer
Dim tabtemp As Integer
Dim myr As Range
Dim that As New Collection
Private Sub UserForm_Initialize()
Dim i As Integer
Dim Tableau As Variant
Set myr = Range("Inventaire!A2:a" & Range("A35000").End(xlUp).Row)
For i = 1 To myr.Count
ComboBox1.AddItem myr(i)
Next i
End Sub
Private Sub ComboBox1_Click()
Dim m As Integer
Dim c As Range, lst As Range, j As Long, k As Long
Set lst = myr(ComboBox1.ListIndex + 1)
Do While that.Count > 0
that.Remove 1
Loop
On Error Resume Next
For Each c In Range(lst.Offset(1, 0), _
Cells(65536, lst.Column).End(xlUp)).Cells
that.Add c, CStr(c)
Next c
ComboBox2.Clear
For j = 1 To that.Count
ComboBox2.AddItem that(j)
Next j
ComboBox3.Clear
For k = 1 To that.Count
ComboBox3.AddItem that(k)
Next k
With Worksheets("Inventaire")
m = .Range("a5000").End(xlUp).Row
tabtemp = .Range("A2:k" & m).Value
End With
For m = 1 To UBound(tabtemp, 1)
If tabtemp(m, 1) = CLng(ComboBox3.Value) Then
TextBox1.Value = tabtemp(m, 1)
TextBox2.Value = tabtemp(m, 2)
TextBox3.Value = tabtemp(m, 3)
TextBox4.Value = tabtemp(m, 4)
TextBox5.Value = tabtemp(m, 5)
TextBox6.Value = tabtemp(m, 6)
TextBox7.Value = tabtemp(m, 7)
TextBox8.Value = tabtemp(m, 8)
End If
Next m
End Sub
Quelqu'un peut corriger les erreurs ?
MERCI
Il faut donc enlever les doublons
Il faut surtout complèter,
j'aimerai tout de même connaître la procédure des 3 combobox pour une
utilisation dans un autre fichier.
Il faut donc enlever les doublons
Il faut surtout complèter,
j'aimerai tout de même connaître la procédure des 3 combobox pour une
utilisation dans un autre fichier.
Il faut donc enlever les doublons
Il faut surtout complèter,
j'aimerai tout de même connaître la procédure des 3 combobox pour une
utilisation dans un autre fichier.
Bonjour LSteph,
Les données à traités sont en A, B et C (pour les combobox). La Combobox1
cherche les données en A2:A, Combobox2 en B2:B et Combobox3 en C2:C.
En sélectionnant un numéro (ex. : C1a, les données en D, E, F, G, H, I, J
et K s'affiche dans le Userform. Je pourrais ainsi compléter certains
champs (I, J et K) et ajouter ces informations dans la liste (donc aucune
modification possible pour les colonnes A2:H) avec avec le bouton Ajouter
à l'inventaire.
Serait-il préférable que je mette les possibilités du Combobox1 dans une
feuille caché ? et de même pour les deux autres et ainsi éviter les
doublons ?
Merci.
Bonjour LSteph,
Les données à traités sont en A, B et C (pour les combobox). La Combobox1
cherche les données en A2:A, Combobox2 en B2:B et Combobox3 en C2:C.
En sélectionnant un numéro (ex. : C1a, les données en D, E, F, G, H, I, J
et K s'affiche dans le Userform. Je pourrais ainsi compléter certains
champs (I, J et K) et ajouter ces informations dans la liste (donc aucune
modification possible pour les colonnes A2:H) avec avec le bouton Ajouter
à l'inventaire.
Serait-il préférable que je mette les possibilités du Combobox1 dans une
feuille caché ? et de même pour les deux autres et ainsi éviter les
doublons ?
Merci.
Bonjour LSteph,
Les données à traités sont en A, B et C (pour les combobox). La Combobox1
cherche les données en A2:A, Combobox2 en B2:B et Combobox3 en C2:C.
En sélectionnant un numéro (ex. : C1a, les données en D, E, F, G, H, I, J
et K s'affiche dans le Userform. Je pourrais ainsi compléter certains
champs (I, J et K) et ajouter ces informations dans la liste (donc aucune
modification possible pour les colonnes A2:H) avec avec le bouton Ajouter
à l'inventaire.
Serait-il préférable que je mette les possibilités du Combobox1 dans une
feuille caché ? et de même pour les deux autres et ainsi éviter les
doublons ?
Merci.