mise à jour listbox

roro69

XLDnaute Impliqué
Bonjour à tous
Voici mon problème:
Dans l'usf ajout de recette ; quand je veut enregistrer des ingrédients ; il ny a pas de problème pour la mise à jour dans les feuilles; mais ma listbox de mon usf ne se remet pas à jour et je n'arrive pas à trouvé pourquoi ; si quelqu'un pouvait y jeté un ptit coup d'oeil se serait gentil.
Merci d'avance
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : mise à jour listbox

Bonjour,
d'après ce que j'ai compris (moi et la cuisine......:D)
Tu définis ta zone à l'initialisation de l'usf
Or, si tu rajoutes des données, il faut donc redéfinir ta zone

ex :

Code:
Private Sub UserForm_Initialize()
......
......
Set RgTypes = F1.Range("A2", F1.Range("A65536").End(xlUp))

Et au moment du clic sur la 1ère ListBox :

Code:
Private Sub ListBoxType_Click()
  Dim cels, id As Range
  [COLOR="Red"]Set RgTypes = F1.Range("A2", F1.Range("A65536").End(xlUp))[/COLOR]
  Set id = F3.Range("J2", F3.Range("J65536").End(xlUp))

Si c'est bien de cela qu'il s'agit....
 

skoobi

XLDnaute Barbatruc
Re : mise à jour listbox

Bonsoir,

Si j'ai bien compris, dans la procédure "AjourIngrdts", il y ceci à la fin:

Code:
  With [COLOR=Blue][B]ListBoxIngrdts
    .Clear[/B][/COLOR]
    .ColumnCount = 5
    .ColumnWidths = "0;140;30;30;30"
    .List = Tbl
    .ListIndex = 0
    End With
Donc forcément, la listbox est vidée.

Edit: Salut bhbh :)
 

roro69

XLDnaute Impliqué
Re : mise à jour listbox

Bonsoir skoobi,et d'abord merci de t'interesser à mon problème
Malheureusement ta solution ne marche pas ;je cherche depuis ce matin et je ne trouve toujour pas; par contre pour répondre à ton dernier post ; non ma listbox n'est pas vidé;elle se vide pour se remplir après avec les nouvelles infos(.List=TBL)
Si quelqu'un pouvait trouver la soluce ce serait vraiment sympa.
Merci d'avance
 

roro69

XLDnaute Impliqué
Re : mise à jour listbox

:(Oh pardon bhbh;
Je suis passé complétement à coté de ton post .Le problème n'est pas sur cette USF ,celle là fonctionne à peu près;le problème est sur l'usf Ajout, quand j'ajoute des ingrédients ;tout ce met à jour dans mes feuilles ; mais pas ma listboxingrédients.Par contre dans mon usf edit lorsque je rajoute des ingrédients là pas de problème ma list box se met à jour.
Et la je bloque vraiment.J'ai essayé déjà pas mal de chose depuis ce matin mais je n'y arrive Pas.
Encore désolé bhbh ;en tout cas je te remerci pour ta participation.
Je te verse un bon vin de paille pour m'excuser lol:) et un ptit rhum pour le tout jeune barbatruc JCGL
 

Cousinhub

XLDnaute Barbatruc
Re : mise à jour listbox

Re-,
Pas de souci (quoique, un petit vin de paille, ou vin jaune, je crois, je ne dirai pas non, mais avec JC....)
Regarde le principe, il me semble que tu détermines tes zones à l'initialisation, et non après modification

par ex (RgIngrdts) :

Code:
Private Sub UserForm_Initialize()
Dim DerLigne, Derligne1 As Integer
MultiPage1.Value = 0
  Set RgIngrdts = F4.Range("A2", F4.Range("A65536").End(xlUp))
.....
.....

et ensuite, tu l'utilises après ajout...sans redéfinir...
Du moins, je crois....

(Si tu me lis, cette fois....) :D:D:D

Edit : Et tu peux rajouter Skoobi pour la dégustation (si c'est le bon remède....)
 
Dernière édition:

skoobi

XLDnaute Barbatruc
Re : mise à jour listbox

Re,
Salut JC :),
non ma listbox n'est pas vidé;elle se vide pour se remplir après avec les nouvelles infos(.List=TBL)
Oupppsss, désolé, je vais essayé de me rattraper :D:
La plage "RgIngrdts" change une fois la nouvelle "FicheID" créé ce qui fait qu'il faut redéfinir la plage:

Code:
Private Sub AjourIngrdts()
Dim Cel As Range, Index&, L As Integer, Tbl As Variant, TblI As Variant
 Dim Li As Integer
[COLOR=Blue][B]Set RgIngrdts = F4.Range("A2", F4.Range("A65536").End(xlUp))[/B][/COLOR]
[B][COLOR=Blue]Set Cel = RgIngrdts.Find(LabID, LookIn:=xlValues, lookat:=xlWhole)[/COLOR][/B]
  If Cel Is Nothing Then Exit Sub
...........
..............

Edit: on est sur la même longueur d'onde Hubert ;)
 

roro69

XLDnaute Impliqué
Re : mise à jour listbox

Oh là merci beaucoup bhbh
Oh là j'ai bien fait de te lire et je t'en remerci ;bien sur il est evident que si je range des données qui n'existe pas il ne vas pas les chercher.Plus qu'a trouver à quel moment il faut que je définisse ma plage de recherche;mais au moins cette fois ci je sais ou chercher.
Je te remerci beaucoup et encore vraiment désolé d'avoir raté ton post tout à l'heure.
En tout cas vos verres sont près messieurs.
 

roro69

XLDnaute Impliqué
Re : mise à jour listbox

Re
Skoobi oui c'est parfait ta solution est très bonne; disons que si on mélange les ingrédients de bhbh et les tiens et ben la soupe est bonne.
Merci messieurs.
Comme quoi Il y a des jours ou je me dit que j'ai bien fait de faire cuisine.;essayer de programmer c'est vraiment pas donner à tout le monde.
Vous etre vraiment très fort.Encore merci
 

roro69

XLDnaute Impliqué
Re : mise à jour listbox

Re bonsoir à tous
Voici encore un petit souci ;mais là c'est avec mon USF Edit ;voila mon souci;lorsque je j'ajoute mes ingrédients encore une fois pas de problème;mais ma listbox ne se remet pas à jour et en voici la cause :Le remplissage de ma list box se fait sur la recherche d'équivalence sur une colonne et que le code me renvoi que les lignes qui se suivent,et la bien entendu puisque je suis en édition ;les infos ne se suivent pas toujours.Je mets le code qui me pose un peu problème et si quelqu'un pouvait me décoincer se serait vraiment super.
Private Sub AjourIngrdt()
Dim Cel As Range, Index&, L As Integer, Tbl As Variant, TblI As Variant
Dim Li As Integer
Set RgIngrdts = F4.Range("A2", F4.Range("A65536").End(xlUp))
Set Cel = RgIngrdts.Find(LabID)
If Cel Is Nothing Then Exit Sub


Do While Cel = LabID 'compte
L = L + 1
Set Cel = Cel.Offset(1, 0)
Loop

ReDim Tbl(1 To L, 1 To 4)

Set Cel = RgIngrdts.Find(LabID)
If Cel Is Nothing Then Exit Sub


L = 0
Do While Cel = LabID 'rempli
L = L + 1
Tbl(L, 1) = Cel(1, 3) 'listingid
Tbl(L, 2) = Cel(1, 3) 'listingid
Tbl(L, 3) = Cel(1, 4) 'quantité
Tbl(L, 4) = Cel(1, 5) 'unité

Set Cel = Cel.Offset(1, 0)
Loop

TblI = F5.Range("A2:C" & F5.Range("A65536").End(xlUp).Row)

For L = 1 To UBound(Tbl, 1)
For Li = 1 To UBound(TblI, 1)
If Tbl(L, 2) = TblI(Li, 1) Then 'compare listingid
Tbl(L, 2) = TblI(Li, 2) 'remplace listingid par ingrédient
Exit For
End If
Next Li
Next L

With ListBoxIngrdts
.Clear
.ColumnCount = 4
.ColumnWidths = "0;140;30;30"
.List = Tbl
.ListIndex = -1
End With
End Sub
Merci d'avance
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 023
Messages
2 084 713
Membres
102 637
dernier inscrit
TOTO33000