Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default UserForm with ListBox

Inside a module I call a userform with a listbox from which someone have
to chose an Item.
From my understanding if I put "UserForm.show Modal" the program must stop
until someone click on one Item inside the ListBox & confirme the
validation with CommandButton, but instead the program show the listbox
fill correctly but don't stop to wait for the interaction of the user &
continues to run until the end of the module.
What I do wrong?
Thank you for your help.

Jean
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default UserForm with ListBox

It is difficult to tell without seeing the code. Can you copy the
UserForm/Control code and post it for us to look at.

"Jean " wrote:

Inside a module I call a userform with a listbox from which someone have
to chose an Item.
From my understanding if I put "UserForm.show Modal" the program must stop
until someone click on one Item inside the ListBox & confirme the
validation with CommandButton, but instead the program show the listbox
fill correctly but don't stop to wait for the interaction of the user &
continues to run until the end of the module.
What I do wrong?
Thank you for your help.

Jean

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default UserForm with ListBox

?B?SkxHV2hpeg==?= wrote in
:

It is difficult to tell without seeing the code. Can you copy the
UserForm/Control code and post it for us to look at.

"Jean " wrote:

Inside a module I call a userform with a listbox from which someone
have to chose an Item.
From my understanding if I put "UserForm.show Modal" the program
must stop until someone click on one Item inside the ListBox &
confirme the validation with CommandButton, but instead the program
show the listbox fill correctly but don't stop to wait for the
interaction of the user & continues to run until the end of the
module. What I do wrong?
Thank you for your help.

Jean


This Program Take compare the first 3 letter of the first item in the
sheet"potato leek" with all items in the sheet "INGREDIENT". If only one
item is found the new price is taken from the sheet "INGREDIENT" & put
on the Sheet"potato leek" & the program go to the second item in the
sheet"Potao leek". But if several items in the sheet "INGREDIENT" match
it put this item name in the list box & wait the user select the right
item & click on commandbutton to validate his selection then the program
put the new price in the sheet"potato leek" & do the same thing for the
next item in sheet"potato leek" until Is no more item in this sheet.

Private Sub CommandButton1_Click()
Dim Ltind As Integer
Dim Prrw As Integer
Dim Proz As Double


If LaList.ListIndex = -1 Then
MsgBox ("YOU MUST SELECT ONE ITEM")
Exit Sub
End If
Ltind = LaList.ListIndex + 1
Prrw = Boite(Ltind, 3)
Proz = Sheets("INGREDIENT").Cells(Boite(Ltind, 2), 9)
Sheets(Feuille).Cells(Prrw, 7) = Proz
Sheets(Feuille).Cells(Prrw, 8) = Sheets(Feuille).Cells(Prrw, 6) * Proz
LaList.Clear
Choisir.Hide
End Sub
__________________________________________________ _________________
Public Feuille As String
Public Boite(20, 3) As Variant
Public Vend(10, 2) As Integer
Public rg As Integer



Sub UpDate_FdCt()

If Vend(1, 1) = 0 Then

Dim rw As Integer
Dim I As Integer
Dim II As Integer
Dim J As Integer
Dim JJ As Integer
Dim Hh As Integer
Dim Abrev As String
Dim Depart As Integer
Dim Arret As Integer
Dim Ctcom As Integer
Dim TpCtcom As Integer



rw = 5
rw1 = 1
Vend(1, 1) = rw

'In Sheet ingredient Delimit the range of each vendor

Do Until IsEmpty(Sheets("INGREDIENT").Cells(rw, 29))

If Sheets("INGREDIENT").Cells(rw, 29) < Sheets("INGREDIENT").Cells(rw +
1, 29) Then
Vend(rw1, 2) = rw
Vend(rw1 + 1, 1) = rw + 1
rw1 = rw1 + 1
End If

rw = rw + 1
Loop


'Put the data of the active sheet up to date

Feuille = ActiveSheet.Name

rg = 7 ' row of ITEM in the sheet dish
JJ = 1 ' row


End If
Label:
'select items of the active sheet & compare with the
item in sheet ingredient
If Not IsEmpty(Sheets(Feuille).Cells(rg, 1)) Then


Abrev = Left(Sheets(Feuille).Cells(rg, 1), 3)
Select Case Sheets(Feuille).Cells(rg, 5)
Case "#"
Sheets(Feuille).Cells(rg, 6) = Sheets(Feuille).Cells(rg,
4) * 16
Case "oz"
Sheets(Feuille).Cells(rg, 6) = Sheets(Feuille).Cells(rg,
4)
Case "u"
Sheets(Feuille).Cells(rg, 6) = Sheets(Feuille).Cells(rg,
4)
'

End Select

Depart = Vend(Sheets(Feuille).Cells(rg, 2), 1)
Arret = Vend(Sheets(Feuille).Cells(rg, 2), 2)
Ctcom = 1
For K = 1 To TpCtcom
Boite(K, 1) = ""
Boite(K, 2) = ""
Boite(K, 3) = " "
Next K

For II = Depart To Arret

If Abrev = UCase(Left(Sheets("INGREDIENT").Cells(II, 15),
3)) Then

'Add In Array as many Item have the same three letters
Boite(Ctcom, 1) = Sheets("INGREDIENT").Cells(II, 4)
Boite(Ctcom, 2) = II
Boite(Ctcom, 3) = rg
If Ctcom TpCtcom Then TpCtcom = Ctcom
Ctcom = Ctcom + 1
End If

Next II

'Check if we have more as one item, If "yes" create list box &
fill it

If TpCtcom 1 Then

For Hh = 0 To TpCtcom
Choisir.LaList.AddItem Boite(Hh + 1, 1)
Next Hh
Choisir.Show Modal

Else
Sheets(Feuille).Cells(rg, 7) = Sheets("INGREDIENT").Cells
(Boite(Ctcom - 1, 2), 9)

Sheets(Feuille).Cells(rg, 8) = Sheets(Feuille).Cells(rg, 6)
* Sheets(Feuille).Cells(rg, 7)

rg = rg + 1
GoTo Label
End If

rg = rg + 1
End If


End Sub
  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default UserForm with ListBox

The first thing is that you do not need to use modal afte the UserForm.Show
command. Modal is the default. If you do want to use it then the correct
syntax is
vbModal which is a boolean value or 1.

I don't see why the code would continue to execute before you click the
button unless your listbox also has code attached with a click event that
unloads or hides the UserForm. So check your listbox code for a click event
code.

Again, you can just use Choisir.Show and it will be modal.


"Jean " wrote:

?B?SkxHV2hpeg==?= wrote in
:

It is difficult to tell without seeing the code. Can you copy the
UserForm/Control code and post it for us to look at.

"Jean " wrote:

Inside a module I call a userform with a listbox from which someone
have to chose an Item.
From my understanding if I put "UserForm.show Modal" the program
must stop until someone click on one Item inside the ListBox &
confirme the validation with CommandButton, but instead the program
show the listbox fill correctly but don't stop to wait for the
interaction of the user & continues to run until the end of the
module. What I do wrong?
Thank you for your help.

Jean


This Program Take compare the first 3 letter of the first item in the
sheet"potato leek" with all items in the sheet "INGREDIENT". If only one
item is found the new price is taken from the sheet "INGREDIENT" & put
on the Sheet"potato leek" & the program go to the second item in the
sheet"Potao leek". But if several items in the sheet "INGREDIENT" match
it put this item name in the list box & wait the user select the right
item & click on commandbutton to validate his selection then the program
put the new price in the sheet"potato leek" & do the same thing for the
next item in sheet"potato leek" until Is no more item in this sheet.

Private Sub CommandButton1_Click()
Dim Ltind As Integer
Dim Prrw As Integer
Dim Proz As Double


If LaList.ListIndex = -1 Then
MsgBox ("YOU MUST SELECT ONE ITEM")
Exit Sub
End If
Ltind = LaList.ListIndex + 1
Prrw = Boite(Ltind, 3)
Proz = Sheets("INGREDIENT").Cells(Boite(Ltind, 2), 9)
Sheets(Feuille).Cells(Prrw, 7) = Proz
Sheets(Feuille).Cells(Prrw, 8) = Sheets(Feuille).Cells(Prrw, 6) * Proz
LaList.Clear
Choisir.Hide
End Sub
__________________________________________________ _________________
Public Feuille As String
Public Boite(20, 3) As Variant
Public Vend(10, 2) As Integer
Public rg As Integer



Sub UpDate_FdCt()

If Vend(1, 1) = 0 Then

Dim rw As Integer
Dim I As Integer
Dim II As Integer
Dim J As Integer
Dim JJ As Integer
Dim Hh As Integer
Dim Abrev As String
Dim Depart As Integer
Dim Arret As Integer
Dim Ctcom As Integer
Dim TpCtcom As Integer



rw = 5
rw1 = 1
Vend(1, 1) = rw

'In Sheet ingredient Delimit the range of each vendor

Do Until IsEmpty(Sheets("INGREDIENT").Cells(rw, 29))

If Sheets("INGREDIENT").Cells(rw, 29) < Sheets("INGREDIENT").Cells(rw +
1, 29) Then
Vend(rw1, 2) = rw
Vend(rw1 + 1, 1) = rw + 1
rw1 = rw1 + 1
End If

rw = rw + 1
Loop


'Put the data of the active sheet up to date

Feuille = ActiveSheet.Name

rg = 7 ' row of ITEM in the sheet dish
JJ = 1 ' row


End If
Label:
'select items of the active sheet & compare with the
item in sheet ingredient
If Not IsEmpty(Sheets(Feuille).Cells(rg, 1)) Then


Abrev = Left(Sheets(Feuille).Cells(rg, 1), 3)
Select Case Sheets(Feuille).Cells(rg, 5)
Case "#"
Sheets(Feuille).Cells(rg, 6) = Sheets(Feuille).Cells(rg,
4) * 16
Case "oz"
Sheets(Feuille).Cells(rg, 6) = Sheets(Feuille).Cells(rg,
4)
Case "u"
Sheets(Feuille).Cells(rg, 6) = Sheets(Feuille).Cells(rg,
4)
'

End Select

Depart = Vend(Sheets(Feuille).Cells(rg, 2), 1)
Arret = Vend(Sheets(Feuille).Cells(rg, 2), 2)
Ctcom = 1
For K = 1 To TpCtcom
Boite(K, 1) = ""
Boite(K, 2) = ""
Boite(K, 3) = " "
Next K

For II = Depart To Arret

If Abrev = UCase(Left(Sheets("INGREDIENT").Cells(II, 15),
3)) Then

'Add In Array as many Item have the same three letters
Boite(Ctcom, 1) = Sheets("INGREDIENT").Cells(II, 4)
Boite(Ctcom, 2) = II
Boite(Ctcom, 3) = rg
If Ctcom TpCtcom Then TpCtcom = Ctcom
Ctcom = Ctcom + 1
End If

Next II

'Check if we have more as one item, If "yes" create list box &
fill it

If TpCtcom 1 Then

For Hh = 0 To TpCtcom
Choisir.LaList.AddItem Boite(Hh + 1, 1)
Next Hh
Choisir.Show Modal

Else
Sheets(Feuille).Cells(rg, 7) = Sheets("INGREDIENT").Cells
(Boite(Ctcom - 1, 2), 9)

Sheets(Feuille).Cells(rg, 8) = Sheets(Feuille).Cells(rg, 6)
* Sheets(Feuille).Cells(rg, 7)

rg = rg + 1
GoTo Label
End If

rg = rg + 1
End If


End Sub

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 7
Default UserForm with ListBox

?B?SkxHV2hpeg==?= wrote in
:

The first thing is that you do not need to use modal afte the
UserForm.Show command. Modal is the default. If you do want to use
it then the correct syntax is
vbModal which is a boolean value or 1.

I don't see why the code would continue to execute before you click
the button unless your listbox also has code attached with a click
event that unloads or hides the UserForm. So check your listbox code
for a click event code.

Again, you can just use Choisir.Show and it will be modal.

Thank you very much
I type "Choisir.Show" instead of "Choisir.Show Modal"
And the program work the way I wanted.
I was stock for several day on this simple stuff.
Thank you again.

Jean
Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Listbox in UserForm Dale Fye Excel Discussion (Misc queries) 0 October 11th 07 09:40 PM
on Listbox in Userform.... x taol Excel Programming 7 October 4th 06 11:29 AM
userform listbox cannot get listbox.value to transfer back to main sub [email protected] Excel Programming 1 May 17th 06 09:44 PM
UserForm with ListBox Otto Moehrbach[_6_] Excel Programming 4 December 5th 04 07:30 PM
UserForm ListBox Otto Moehrbach[_6_] Excel Programming 3 December 30th 03 06:22 PM


All times are GMT +1. The time now is 07:02 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"