[RESOLU] Modifier BDD depuis ligne sélectionnée dans ListBox

  • Initiateur de la discussion Initiateur de la discussion exene
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

exene

XLDnaute Accro
Bonjour,

J'essaye de gérer les indisponibilité d'un parc de véhicules. Les informations contenues doivent pouvoir être modifiées (retard livraison d'une pièce, ETC). J'ai crée un userform (appelé par la macro modif) avec un ComboBox contenant la liste des véhicules sans doublon et une ListBox qui récapitule toutes les interventions pour un même véhicule.
J'aimerais en sélectionnant une ligne faire apparaître les informations dans des textbox, pouvoir les modifier et mettre à jour la BDD après validation.

Ci-joint un fichier démo.

Merci.
 

Pièces jointes

Salut Pascal 🙂 (j'espère que tu vas mieux)
Bonjour Theze,

Une technique que tu peux utiliser est d'ajouter une 4e colonne à ta ListBox. Dans cette nouvelle colonne (que tu peux masquer), tu stockes le n° de ligne, en même temps que les autres données: dans la Sub ComboBox1_Change, il suffit d'ajouter Me.ListBox1.List(i, 3) = c.Row après avoir ajouté une colonne supplémentaire
De cette manière, tu peux connaître le n° de ligne concernée à tout moment avec quelque chose comme:
MsgBox "Ligne concernée = " & ListBox1.List(ListBox1.ListIndex, 3) (à préférer à ton Find ... je partage l'avis de Theze à ce sujet)
 
Bonjour à tous,

Désolé pour cette réponse tardive mais j'ai continué à faire des recherches. J'ai délaissé Excel depuis plusieurs mois et je me suis rendu compte d'une perte de concentration.

These et Modeste, je retiens l'idée d'ajouter une ligne pour une meilleure lecture

Dranreb, je reconnais bien là votre patte. Le code fonctionne parfaitement. La navigation dans la ListBox est très fluide. Il me reste à trouver une méthode simple pour modifier la base de données depuis les TextBox.

@+
 
Salut,

These et Modeste, je retiens l'idée d'ajouter une ligne pour une meilleure lecture
Si j'ai dit ça, je devais être "un peu bu" 😉

J'ai illustré en pièce jointe ce que je tentais d'expliquer. J'ai ajouté un exemple de syntaxe pour modifier une enregistrement, au clic sur le "CommandButton" (c'est pour ça que la date en B5 est modifiée)

Attention: en colonne C, il y avait un =AUJOURDHUI() qui avait tendance à se recopier automatiquement dans les autres cellules de la colonne.
 

Pièces jointes

Bonjour.

Pour ma version, ajoutez dans la déclaration Private en tête …, LCou As Long
Utilisez le à la place du L local dans la Sub ListBox1_Click, et ajoutez la Sub CommandButton1_Click :
VB:
Private Sub ListBox1_Click()
Dim TDon(), TLBx(), N&, C&
LCou = TLgn(ListBox1.ListIndex + 1)
TDon = LO.ListRows(LCou).Range.Value
For C = 1 To 3: Me("TextBox" & C).Text = TDon(1, C): Next C
End Sub

Private Sub CommandButton1_Click()
Dim TDon(),  C&
'If LCou = 0 Then ???
TDon = LO.ListRows(LCou).Range.Value
For C = 2 To 3: TDon(1, C) = CDate(Me("TextBox" & C).Text): Next C
LO.ListRows(LCou).Range.Value = TDon
End Sub
 
Dernière édition:
Bonjour,

Ecarté du forum par des contrôles médicaux, j'ai pris connaissance des vos solutions depuis peu.

Modeste : votre code me parle car il ressemble à ce que je lis sur le forum.

Dranreb : j'ai fait de nombreux essais, le fonctionnement est très fluide et rapide. A moi de comprendre la déclaration des variables.

Merci de votre aide.

@+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour