OVH Cloud OVH Cloud

Row Source

16 réponses
Avatar
Jacques
Salut a toutes et tous

Voici le code pour l'initialisation de mon UserForm :

Private Sub UserForm_Initialize()
OptionButton1 = True
OptionButton1.SetFocus
DateBox.Value = FormatDateTime(Now, vbShortDate)
FournisseurBox.RowSource = "Fournisseurs!B6:B25"
cbxOpérateur.RowSource = "Opérateurs!C6:C25"

cbxN°Lot.RowSource = "ActiveSheet!E12:E65536"

End Sub

Le soucie est que je n'arrive a définir la Row source sur la feuille active,
car cet UserForm set pour plusieurs feuille, donc pas le même nom, comment
faire pour l'utiliser .

cbxN°Lot.RowSource = "ActiveSheet!E12:E65536"


Merci, ouille

6 réponses

1 2
Avatar
sabatier
c'est pas michel, jacques, c'est denis...
le groupe, par contre, c'est tout bon...
jps

"Jacques" a écrit dans le message de
news:41849939$0$31250$
Michel, le groupe


Avatar
Jacques
Denis, Sabatier, le groupe

Sabatier, merci pour cette remarque.
Denis sorry de la confusion

Ouille
"sabatier" a écrit dans le message
de news:
c'est pas michel, jacques, c'est denis...
le groupe, par contre, c'est tout bon...
jps

"Jacques" a écrit dans le message de
news:41849939$0$31250$
Michel, le groupe






Avatar
michdenis
Bonjour Jacques,

Il est IMPÉRATIF que la propriété RowSource (dans un userform) ou ListFillRange(Combobox dans la feuille de calcul) du
combobox NE soit PAS définie. Tu n'inscris rien en mode création pour ces propriétés. Ce qui suit est suffisant.

Pour lancer l'initialisation du combobox, tu peux choisir l'événement de ton choix qui est associé au combobox lui-même
(Sub ComboBox1_GotFocus) ... nul besoin d'ajouter un bouton de commande pour lancer la procédure.

Dans la procédure suivante, le nom de la feuille doit être adapté selon ton application.

En supposant que tes données débutent en E13 pour se terminer en Ex

'------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With Worksheets("Feuil1")
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

UserForm1.ComboBox1.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function
'------------------------------



Salutations!






"Jacques" a écrit dans le message de news:4184b0ae$0$3606$
Denis, Sabatier, le groupe

Sabatier, merci pour cette remarque.
Denis sorry de la confusion

Ouille
"sabatier" a écrit dans le message
de news:
c'est pas michel, jacques, c'est denis...
le groupe, par contre, c'est tout bon...
jps

"Jacques" a écrit dans le message de
news:41849939$0$31250$
Michel, le groupe






Avatar
Jacques
Denis, le groupe

Au risque d'en perdre mon latin (Que je ne comprends pas non plus
d'ailleurs), et de plus avec tes explications on ne peu plus claire, cela ne
fonctionne pas, j'ai beau faire dans tous les sens a chaque fois que je veux
que cela tombe sur la bonne ligne de départ (Ligne 13), j'ai un message
d'erreur, donc voici ce que j'ai fait :

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With ActiveSheet
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

cbxN°Lot.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function

Que j'ai mis dans Private Sub UserForm_Initialize()

Donc j'ai fait F8, par voir cela que cela fait, et a priori si je met :

Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)

cela s'arrète ici :
Last = UBound(List)

avec une incompatibilité de type : erreur 13.

Voila les derniere nouvelles.

Merci, Ouille



"michdenis" a écrit dans le message de
news:
Bonjour Jacques,

Il est IMPÉRATIF que la propriété RowSource (dans un userform) ou
ListFillRange(Combobox dans la feuille de calcul) du

combobox NE soit PAS définie. Tu n'inscris rien en mode création pour ces
propriétés. Ce qui suit est suffisant.


Pour lancer l'initialisation du combobox, tu peux choisir l'événement de
ton choix qui est associé au combobox lui-même

(Sub ComboBox1_GotFocus) ... nul besoin d'ajouter un bouton de commande
pour lancer la procédure.


Dans la procédure suivante, le nom de la feuille doit être adapté selon
ton application.


En supposant que tes données débutent en E13 pour se terminer en Ex

'------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With Worksheets("Feuil1")
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

UserForm1.ComboBox1.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function
'------------------------------



Salutations!






"Jacques" a écrit dans le message de
news:4184b0ae$0$3606$

Denis, Sabatier, le groupe

Sabatier, merci pour cette remarque.
Denis sorry de la confusion

Ouille
"sabatier" a écrit dans le
message

de news:
c'est pas michel, jacques, c'est denis...
le groupe, par contre, c'est tout bon...
jps

"Jacques" a écrit dans le message de
news:41849939$0$31250$
Michel, le groupe











Avatar
Claude Trouet
Bonjour,
il me semble voir un point en trop devant le 2ème range !
remplacer Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
par Set Rg = Range("E13:E" & Range("E65536").End(xlUp).Row)

Bonne journée
CT

"Jacques" a écrit dans le message de news:
41860038$0$3613$
Denis, le groupe

Au risque d'en perdre mon latin (Que je ne comprends pas non plus
d'ailleurs), et de plus avec tes explications on ne peu plus claire, cela
ne
fonctionne pas, j'ai beau faire dans tous les sens a chaque fois que je
veux
que cela tombe sur la bonne ligne de départ (Ligne 13), j'ai un message
d'erreur, donc voici ce que j'ai fait :

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With ActiveSheet
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

cbxN°Lot.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function

Que j'ai mis dans Private Sub UserForm_Initialize()

Donc j'ai fait F8, par voir cela que cela fait, et a priori si je met :

Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)

cela s'arrète ici :
Last = UBound(List)

avec une incompatibilité de type : erreur 13.

Voila les derniere nouvelles.

Merci, Ouille



"michdenis" a écrit dans le message de
news:
Bonjour Jacques,

Il est IMPÉRATIF que la propriété RowSource (dans un userform) ou
ListFillRange(Combobox dans la feuille de calcul) du

combobox NE soit PAS définie. Tu n'inscris rien en mode création pour ces
propriétés. Ce qui suit est suffisant.


Pour lancer l'initialisation du combobox, tu peux choisir l'événement de
ton choix qui est associé au combobox lui-même

(Sub ComboBox1_GotFocus) ... nul besoin d'ajouter un bouton de commande
pour lancer la procédure.


Dans la procédure suivante, le nom de la feuille doit être adapté selon
ton application.


En supposant que tes données débutent en E13 pour se terminer en Ex

'------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With Worksheets("Feuil1")
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

UserForm1.ComboBox1.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function
'------------------------------



Salutations!






"Jacques" a écrit dans le message de
news:4184b0ae$0$3606$

Denis, Sabatier, le groupe

Sabatier, merci pour cette remarque.
Denis sorry de la confusion

Ouille
"sabatier" a écrit dans le
message

de news:
c'est pas michel, jacques, c'est denis...
le groupe, par contre, c'est tout bon...
jps

"Jacques" a écrit dans le message de
news:41849939$0$31250$
Michel, le groupe















Avatar
Jacques
Salut Claude, et re le groupe

J'ai fait la modife et a priori, on cherche de puis le début, donc j'ai
repris un code du début de Denis et j'ai modifier, cela va, mais j'ai les
doublons.
Sub ComboBox()
Dim Rg As Range, Tblo As Variant

Set fichier = ThisWorkbook

With ActiveSheet
Set Rg = Range("E13:E" & Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

AjoutLigne.cbxN°Lot.List = BubbleSort(Tblo)
Set Rg = Nothing

End Sub

'---------------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function

Mais par contre la sélection se fait trés bien.

Merci, Oulle

"Claude Trouet" a écrit dans le message de
news:eXeVaa$
Bonjour,
il me semble voir un point en trop devant le 2ème range !
remplacer Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
par Set Rg = Range("E13:E" & Range("E65536").End(xlUp).Row)

Bonne journée
CT

"Jacques" a écrit dans le message de news:
41860038$0$3613$
Denis, le groupe

Au risque d'en perdre mon latin (Que je ne comprends pas non plus
d'ailleurs), et de plus avec tes explications on ne peu plus claire,
cela


ne
fonctionne pas, j'ai beau faire dans tous les sens a chaque fois que je
veux
que cela tombe sur la bonne ligne de départ (Ligne 13), j'ai un message
d'erreur, donc voici ce que j'ai fait :

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With ActiveSheet
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

cbxN°Lot.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function

Que j'ai mis dans Private Sub UserForm_Initialize()

Donc j'ai fait F8, par voir cela que cela fait, et a priori si je met :

Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)

cela s'arrète ici :
Last = UBound(List)

avec une incompatibilité de type : erreur 13.

Voila les derniere nouvelles.

Merci, Ouille



"michdenis" a écrit dans le message de
news:
Bonjour Jacques,

Il est IMPÉRATIF que la propriété RowSource (dans un userform) ou
ListFillRange(Combobox dans la feuille de calcul) du

combobox NE soit PAS définie. Tu n'inscris rien en mode création pour
ces



propriétés. Ce qui suit est suffisant.

Pour lancer l'initialisation du combobox, tu peux choisir l'événement
de



ton choix qui est associé au combobox lui-même
(Sub ComboBox1_GotFocus) ... nul besoin d'ajouter un bouton de commande
pour lancer la procédure.


Dans la procédure suivante, le nom de la feuille doit être adapté selon
ton application.


En supposant que tes données débutent en E13 pour se terminer en Ex

'------------------------------
Private Sub CommandButton1_Click()

Dim Rg As Range, Tblo As Variant, Tblo1 As Variant

'Adapte le nom de la feuille
With Worksheets("Feuil1")
Set Rg = Range("E13:E" & .Range("E65536").End(xlUp).Row)
Tblo = Rg
End With

UserForm1.ComboBox1.List = BubbleSort(Tblo)

Set Rg = Nothing

End Sub
'------------------------------
Function BubbleSort(List As Variant)

Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp

First = LBound(List)
Last = UBound(List)
For i = First To Last - 1
For j = i + 1 To Last
If List(i, 1) > List(j, 1) Then
Temp = List(j, 1)
List(j, 1) = List(i, 1)
List(i, 1) = Temp
End If
Next j
Next i
BubbleSort = List
End Function
'------------------------------



Salutations!






"Jacques" a écrit dans le message de
news:4184b0ae$0$3606$

Denis, Sabatier, le groupe

Sabatier, merci pour cette remarque.
Denis sorry de la confusion

Ouille
"sabatier" a écrit dans le
message

de news:
c'est pas michel, jacques, c'est denis...
le groupe, par contre, c'est tout bon...
jps

"Jacques" a écrit dans le message de
news:41849939$0$31250$
Michel, le groupe



















1 2