Microsoft 365 Conflit avec listindex = 0

jsebt

XLDnaute Junior
Bonjour,

J'ai quasiment terminé ma petite base de données et les userform qui vont avec. Fichier joint.
Je souhaiterais maintenant que mon userform s'ouvre avec le dernier client enregistré (sheet Clients) directement sélectionné et les champs auto alimentés (avec la combobox .cboClients). Et qu'en même temps, cela auto alimente la comboxbox qui me permet d'afficher les détails du mouvement sélectionné avec le dernier mouvement enregistré.
Le lien entre les 2 sheets fonctionne jusqu'à ce que je mette mon . ListeIndex = 0.(mais pas de sélection de mouvement)
J'ai beau chercher je n'y arrive pas sur c coup là... Mes compétences trop limitées..
Merci par avance pour votre aide.

Sébastien
 

Pièces jointes

  • GDV_2806 (1).xlsm
    450.1 KB · Affichages: 14

ChTi160

XLDnaute Barbatruc
Bonjour Sebastien
Bonjour le Fil ,le Forum
une approche
ça pas compris ! Lol
Et qu'en même temps, cela auto alimente la combobox qui me permet d'afficher les détails du mouvement sélectionné avec le dernier mouvement enregistré.
jean marie
 

Pièces jointes

  • GDV_2806 -Chti160.xlsm
    431.8 KB · Affichages: 8
Dernière édition:

jsebt

XLDnaute Junior
Bonjour Jean Marie et le reste du forum,

Jean Marie, encore toi :) Je ne sais pas comment je ferai sans toi.
C'est effectivement dans le sens de ce que je cherche. Je ne comprenais pas le conflit. J'ai regardé rapidement tes modifications, maintenant je vais essayer de les comprendre... C'est pas gagné :)

Quelques minutes plus tard:

En fait si, j'ai réussi à me débloquer grâce à toi, encore.
Il ne me reste plus que:
- Décalage dans mes données, elles sont décalées des labels de une colonne dans la "listbox" et la partie "mouvement sélectionné"
- Soucis dans l'affichage des têtes de colonnes de la listbox

Et:

La partie que j'ai mal expliquée dans mon 1er post:

Quand on modifie "Sélection client:", en modifiant la ComboBox: cboClients, cela sélectionne également le client dans "Choix n°2" dans la partie filtre(nom du groupe).
Ce qui fait que quand un client est sélectionné, ses mouvements sont affichés dans la listbox. (Et dans les mouvements qui apparaissent pour le client sélectionné, je souhaiterais que le plus récent soit automatiquement sélectionné).
J'ai ajouté une capture écran en espérant que cela sera plus clair... (Le capture écran correspond a ce que je souhaiterais a l'ouverture du userform. Dans l'idéal avec le dernier client créé)
Capture d’écran (1).png



Je vois le bout du tunnel quand même. Merci beaucoup encore une fois Jean Marie. Présent à chaque fois.

Bon weekend

Sébastien
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Re
je pense que cela est possible Facilement
je n'avais pas regardé la Liste des mouvements de la Listbox1
ils sont classés du plus Récent au plus Ancien , c'est donc Le "ListIndex" ( 0 ) , Le premier de la Liste , qu'il faut sélectionner .
le Code modifié voir en Fin de Procédure
VB:
Sub Affiche()
  Dim Tbl()
  cbx1 = Me.ComboBox1: cbx2 = Me.ComboBox2:  cbx3 = Me.ComboBox3:  cbx4 = Me.ComboBox4: cbx5 = Me.ComboBox5
  n = 0: C = 0
  Cb = Array(1, 1, 1, 1, 1)
  For H = 0 To UBound(ColCombo): Cb(H) = ColCombo(H): Next H
  For H = 1 To UBound(TabBD)
    If TabBD(H, Cb(0)) Like cbx1 And TabBD(H, Cb(1)) Like cbx2 _
       And TabBD(H, Cb(2)) Like cbx3 And TabBD(H, Cb(3)) Like cbx4 And TabBD(H, Cb(4)) Like cbx5 Then
        n = n + 1: ReDim Preserve Tbl(1 To NcolVisu + 1, 1 To n)        
        For k = 1 To NcolVisu
           Tbl(k, n) = TabBD(H, k)
        Next
        Tbl(6, n) = Format(TabBD(H, 8), "hh:mm")
         Tbl(8, n) = Format(TabBD(H, 11), "hh:mm")
        Tbl(k, n) = TabBD(H, NcolBD)
    End If
  Next H
  If n > 0 Then
     Me.ListBox1.Column = Tbl
  Else
     Me.ListBox1.Clear
  End If
  Me.ListBox1.ListIndex = 0 '<-----------------au lieu de Me.ListBox1.ListCount - 1
End Sub
Pour ce qu est de ta première demande
Il ne me reste plus que:
- Décalage dans mes données, elles sont décalées des labels de une colonne dans la "listbox" et la partie "mouvement sélectionné"
- Soucis dans l'affichage des têtes de colonnes de la listbox
je regarde (car tu as mis des Colonnes Vides) je vais voir !
jean marie
 

jsebt

XLDnaute Junior
Merci beaucoup.
J'ai regardé ce que tu m'as donné aussi. Cela génère une erreur quand il y a un client qui n'a pas encore de mouvement enregistré.

Pour les colonnes vides, elles sont importantes, elles servent pour la partie planning. (Si ca peut aider)

Une autre petite question, avec ta modification de ce matin, le 1er fichier que tu as envoyé.
J'utilise
VB:
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
'Lien avec Data
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Me.ComboBox2.Value = Me.TextBoxNomGr.Value

'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Dans Private Sub cboClients_Change()

pour faire le lien avec la partie mouvement. Mais du coup il n'est pas pris en compte à l'ouverture du formulaire en même temps que ".ListIndex = 0" sur cboClients.
Je suis sûr qu'il y a quelque chose de simple pour faire çà. Je ne dois pas utiliser les bons mots de recherche.
Merci encore pour le temps que tu passes à m'aider. J'espère ne pas abuser.
 

ChTi160

XLDnaute Barbatruc
Re
Comment ce peut il ?
Cela génère une erreur quand il y a un client qui n'a pas encore de mouvement enregistré.
je pensais qu'un Client était enregistré parce qu'il occupait un emplacement,mais Bon !
je vais y regarder
Est ce normal que dans la Feuille Clients on trouve par exemple plusieurs Noms de Clients identiques
Exemple "Cirque du Seb en test" soit : GRP-1 , GRP-10 , GRP-19
On pourrait charger les cboClients et Combobox2 via la feuille Clients
et ainsi mettre
VB:
Combobox2.ListIndex=cboClients.ListIndex
car ils contiendraient la même Liste.
jean marie
 
Dernière édition:

jsebt

XLDnaute Junior
Re bonjour,

Il est possible d'avoir le même nom client, mais pas la même référence normalement.
Pour GRP-1 , GRP-10 , GRP-19, j'ai vu çà aussi. je pense que c'est parce que j'utilise la recherche GRP-1 qui est contenu dans les 3 il renvoi donc les 3.
Je vais faire ta modification de ce pas. Merci.
Plus j'avance et plus je me rends compte de ces petites choses pas visibles au premier coup d'oeil mais qui ont tellement d'incidence derrière. Je ne suis pas un expert...
Je vais bien y arriver... Mais il faut que je me dépêche sinon la saison sera finie avant :)

Sébastien
 

jsebt

XLDnaute Junior
Re

Lorsque je fais ta manip:
Combobox2.ListIndex=cboClients.ListIndex

J'obtiens l'erreur execution 380. Impossible de définir la propriété ListIndex. Valeur de propriété non valide.

J'ai fait la modification dans cboClient-Change()..
 

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG