OVH Cloud OVH Cloud

Alimentation listbox

10 réponses
Avatar
EliotNaiss
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont écrire
dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
=DECALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est affichée
dans le userform dans un listbox. Dans ce listbox, je prévoit le double-clic
pour éventuellement supprimer l'enregistrement qui a pris le dble clic, cela
marche mais j'ai toujours une ligne "parasite" en fin de liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est bien
"augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot

10 réponses

Avatar
michdenis
Exemple à cette adresse dont tu peux t'inspirer...
http://cjoint.com/?jAcz5ZBDzF


"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont écrire
dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est affichée
dans le userform dans un listbox. Dans ce listbox, je prévoit le double-clic
pour éventuellement supprimer l'enregistrement qui a pris le dble clic, cela
marche mais j'ai toujours une ligne "parasite" en fin de liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est bien
"augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot
Avatar
JB
Bonjour,

Suppression d'un élément d'une liste:

http://cjoint.com/?jAfVjIRSOR

Private Sub UserForm_Initialize()
Me.Choix.List = Application.Transpose([liste])
End Sub

Private Sub b_sup_Click()
Range("liste").Find(Me.Choix).Select
ActiveCell = Empty
Range("liste").Resize(Range("liste").Count +1).Sort
Key1:=Range("liste")(1)
Me.Choix.List = Application.Transpose([liste])
End Sub

Cordialement JB


Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont écrire
dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est affic hée
dans le userform dans un listbox. Dans ce listbox, je prévoit le double -clic
pour éventuellement supprimer l'enregistrement qui a pris le dble clic, cela
marche mais j'ai toujours une ligne "parasite" en fin de liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est b ien
"augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot


Avatar
EliotNaiss
Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour après avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est affichée
dans le userform dans un listbox. Dans ce listbox, je prévoit le
double-clic pour éventuellement supprimer l'enregistrement qui a pris le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot



Avatar
JB
Sur mon poste:

-La liste dans le tableur est mise à jour immédiatement
-La liste du combo est actualisée immédiatement

S'il s'agit d'effacer la valeur dans le combo, il suffit d'ajouter
:Me.Choix=Null

Private Sub UserForm_Initialize()
Me.Choix.List = Application.Transpose([liste])
End Sub
Private Sub b_sup_Click()
Range("liste").Find(Me.Choix).Select
ActiveCell = Empty
Range("liste").Resize(Range("liste").Count + 2).Sort
Key1:=Range("liste")(1)
Me.Choix.List = Application.Transpose([liste])
Me.Choix = Null
End Sub

JB

http://cjoint.com/?jAirDCCQTn



Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour après avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires a insi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est aff ichée
dans le userform dans un listbox. Dans ce listbox, je prévoit le
double-clic pour éventuellement supprimer l'enregistrement qui a pris le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot





Avatar
michdenis
| merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !

Le fichier exemple fonctionne très bien !
Cependant, si tu as plusieurs classeurs ouverts et que le classeur actif
n'est pas le classeur contenant le formulaire, tu dois préciser dans le code
le classeur d'où origine les données...j'appelle cela ... adapter le code
à ta réalité... ça demande quand même un peu de perspicacité ...il faut
pas se contenter d'un copier-coller !!!

With Workbooks("MonClasseur.xls")
With .Worksheets("Feuil1")
....
....
End With
End With





"EliotNaiss" a écrit dans le message de news:

Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour après avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est affichée
dans le userform dans un listbox. Dans ce listbox, je prévoit le
double-clic pour éventuellement supprimer l'enregistrement qui a pris le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot



Avatar
EliotNaiss
bonjour et merci à JB pour le plus d'info.
Pour michdenis, la perspicacité en général j'en ai toujours une dose
d'avance ! mais en plus je ne connaissait pas l'instruction Me.Choix = Null;
et m'entretenir avec vous me fait avancer, heureusement non ?
Allez, bonne continuation !
Cordialement
Eliot
"EliotNaiss" a écrit dans le message de news:

Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour après avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est
affichée dans le userform dans un listbox. Dans ce listbox, je prévoit le
double-clic pour éventuellement supprimer l'enregistrement qui a pris le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot







Avatar
EliotNaiss
Bonjour,
suite aux réponses (conseils) de JB et de michdenis, je vous poste ici
http://cjoint.com/?jBwh0qHmHV mon fichier en cours, car malgré tout je
tourne en rond ! ;-(
j'ai toujours mes 2 problèmes.
Pourriez-vous me dépatouiller svp ??
Toujours cordialement
merci bcp
Eliot
"EliotNaiss" a écrit dans le message de news:

Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour après avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est
affichée dans le userform dans un listbox. Dans ce listbox, je prévoit le
double-clic pour éventuellement supprimer l'enregistrement qui a pris le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot







Avatar
JB
Private Sub cmdAnnuler_Click()
Unload Me
End Sub

Private Sub cmdValidSuivant_Click()
'saisie des enregistrements

' Me.txtInscritEnCours.Value = Sheets("Base").Range("N2").Value
'si les inscrits txtInscritEnCours arrive à txtNbInscrits -1
'alors cmdValidSuivant.caption="Valider le dernier"

'si les inscrits txtInscritEnCours arrive à txtNbInscrits
'alors cmdValidSuivant.caption="Saisie terminée"
'et cmdValidSuivant.enabledúlse
i = Sheets("Base").Range("N3").Value

With Sheets("Base")
.Range("P" & i).Value = Me.txtNom.Value
.Range("Q" & i).Value = Me.txtPrenom.Value
.Range("R" & i).Value = Me.cbxCivil.Value
.Range("S" & i).Value = Me.txtPassword.Value
.Range("T" & i).Value = Me.txtVille.Value
If Me.chkMidi.Value = True Then
.Range("U" & i).Value = "X"
Else
.Range("U" & i).Value = ""
End If
If Me.chkSoir.Value = True Then
.Range("V" & i).Value = "X"
Else
.Range("V" & i).Value = ""
End If
If Me.chkNuitee.Value = True Then
.Range("W" & i).Value = "X"
Else
.Range("W" & i).Value = ""
End If
Me.txtInscritEnCours.Value = Sheets("Base").Range("N2").Value
Me.Repaint

End With
Me.lstStagiaires.RowSource = "TempoInfoStagiaires1" ' JB

***********************************************************************
End Sub
Private Sub lstStagiaires_DblClick(ByVal Cancel As
MSForms.ReturnBoolean)
' MsgBox lstStagiaires.ListIndex + 1

reponse = MsgBox("Voulez-vous supprimer ce pré-enregistrement ?",
vbQuestion + vbYesNo, "Annulation de saisie")
If reponse = vbYes Then
Dim r
'Sheets("Base").Activate
With Sheets("Base")
Set r = .Range("P" & lstStagiaires.ListIndex + 2 & ":W" &
lstStagiaires.ListIndex + 2)
'r.ClearContents
r.Delete
'trier
'Range("P2:W70").Select
Me.txtInscritEnCours.Value = Sheets("Base").Range("N2").Value
'Me.Repaint
End With
Me.lstStagiaires.RowSource = "TempoInfoStagiaires1" ' JB

*************************************************************************
Else

End If
End Sub

Private Sub txtInscritEnCours_Change()
If txtInscritEnCours.Value = txtNbInscrits.Value Then
cmdValidSuivant.Enabled = False
Else
cmdValidSuivant.Enabled = True
End If
End Sub


Private Sub UserForm_Initialize()
'Me.lstStagiaires.RowSource = Sheets("Base").Range("P2:W" &
Range("O1").Value)
'Me.lstStagiaires.RowSource =
Sheets("Base").Range("TempoInfoStagiaires")
txtNbInscrits.Value = Sheets("Base").Range("N1").Value
txtInscritEnCours.Value = Sheets("Base").Range("N2").Value
End Sub


Bonjour,
suite aux réponses (conseils) de JB et de michdenis, je vous poste ici
http://cjoint.com/?jBwh0qHmHV mon fichier en cours, car malgré tout je
tourne en rond ! ;-(
j'ai toujours mes 2 problèmes.
Pourriez-vous me dépatouiller svp ??
Toujours cordialement
merci bcp
Eliot
"EliotNaiss" a écrit dans le message de news:

Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour aprè s avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est
affichée dans le userform dans un listbox. Dans ce listbox, je pré voit le
double-clic pour éventuellement supprimer l'enregistrement qui a pri s le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot









Avatar
JB
PJ http://cjoint.com/?jBwTPNjpXJ

JB



Bonjour,
suite aux réponses (conseils) de JB et de michdenis, je vous poste ici
http://cjoint.com/?jBwh0qHmHV mon fichier en cours, car malgré tout je
tourne en rond ! ;-(
j'ai toujours mes 2 problèmes.
Pourriez-vous me dépatouiller svp ??
Toujours cordialement
merci bcp
Eliot
"EliotNaiss" a écrit dans le message de news:

Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour aprè s avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est
affichée dans le userform dans un listbox. Dans ce listbox, je pré voit le
double-clic pour éventuellement supprimer l'enregistrement qui a pri s le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot









Avatar
EliotNaiss
Un grand MERCI, JB, cela pouvait paraitre évident !!!
je pensait que seul le fait de spécifier rowsource suffisait pour que
l'objet se mette à jour automatiquement, il suffisait donc de respécifier
l'origine des infos dans le code !!
Bahh !
Encore merci pour l'efficacité et rapidité jointes !
Bonne soirée
Eliot
"JB" a écrit dans le message de news:


PJ http://cjoint.com/?jBwTPNjpXJ

JB



Bonjour,
suite aux réponses (conseils) de JB et de michdenis, je vous poste ici
http://cjoint.com/?jBwh0qHmHV mon fichier en cours, car malgré tout je
tourne en rond ! ;-(
j'ai toujours mes 2 problèmes.
Pourriez-vous me dépatouiller svp ??
Toujours cordialement
merci bcp
Eliot
"EliotNaiss" a écrit dans le message de news:

Bonjour à vous,
merci michdenis, mais j'ai une erreur 1004 (avec Feuil1 ??), bizarre !
merci JB, mais je remarque que le listbox ne se met pas à jour après
avoir
supprimé, il faut cliquer dans la liste pour la maj.
Je pense qu'on va y arriver ! :-))))
Cordialement et bonne journée
Eliot
"EliotNaiss" a écrit dans le message de news:
eteY%
Bonjour,
par un userform, que je rempli, les différentes zones de saisie vont
écrire dans une feuille {dans une zone nommée TempoInfoStagiaires ainsi
ÞCALER(Base!$P$2:$W$2;;;NBVAL(Base!$P:$P)-1)} et cette zone est
affichée dans le userform dans un listbox. Dans ce listbox, je prévoit
le
double-clic pour éventuellement supprimer l'enregistrement qui a pris
le
dble clic, cela marche mais j'ai toujours une ligne "parasite" en fin
de
liste.
Quand j'ajoute un enregistrement dans la feuille de calcul, la zone est
bien "augmentée" mais je n'arrive pas à mettre à jour le listbox !!
J'ai testé le me.repaint, mais pas de succès !!...
Donc, en fait j'ai deux problèmes ....

Merci du coup de main
Cordialement
Eliot