Impossible de modifier la bonne ligne.... Grrrr !!!!

Moniato

XLDnaute Nouveau
Bonjour à tous,

Je suis sur le point de finaliser mon projet, tout fonctionne bien ou presque dirons nous.

En fait j'ai un souci au niveau de mon code je pense qui pilote la modification des lignes.

Je m'explique, mon tableau est constitué ainsi, j'ai prévu d'avoir des doublons au niveau des lignes concernant les Sociétés, les N°de Marchés etc...Mon souhait n'étant pas de supprimer ces doublons car il me sont utiles pour d'autres informations.

Dans mon formulaire je sélectionne une société sur la première ComboBox, je clique sur "rechercher par sociétés" et une fois trouvée je bascule dans la ComboBox Interventions "A Faire" par "Fait" et vice versa.

Le problème est lorsque je veux modifier ces valeurs sur les lignes ici colorées en jaune et qu'il y a un doublon sur une société rien ne se passe sur cette ligne choisi pour la modification.

Par contre sur celle de dessus les dates prennent la valeur de celles du dessous.

Je n'arrive pas à savoir pourquoi ces changements se produisent sur la ligne du dessus, et non pas sur celles ici en jaune

Si quelqu'un pouvait me sortir de cette impasse ce serait vraiment très sympa, car il ne me reste plus que ce problème à solutionner pour clôturer mon projet.

Merci d'avance aux volontaires qui voudraient bien se pencher sur mon cas.
 

Fichiers joints

Moniato

XLDnaute Nouveau
Bonjour Dranreb,

Merci pour ta réponse rapide, je viens d'installer CBxL.xlsm, je t'avoue ne pas avoir très bien compris vu mon niveau en Excel je vais voir si je peux me dépatouiller seul.
J'ai commencé à lire les différentes procédures pour liées les ComboBox si j'ai bien compris.

Encore merci
@+...
 

Dranreb

XLDnaute Barbatruc
Pendant que vous y êtes cochez la référence "CBxL" dans le projet de votre classeur, menu outils, références…
Nettoyez les RowSource de toutes vos ComboBox: elles empêche l'objet d'affecter des listes pertinentes.
Dans votre UsrForm ceci démarre pas mal :
VB:
Option Explicit
Private WithEvents CL As ComboBoxLiées, LCou As Long, TVL()
Private Sub UserForm_Initialize()
  Set CL = CBxL.Création.ComboBoxLiées
  CL.Plage Feuil1
  CL.Add ComboBox1, "Sociétés"
  CL.Add ComboBox2, "Interventions"
  CL.Add ComboBox3, "N° de Marchés"
  CL.CouleurSympa
  CL.Actualiser
  End Sub
Private Sub CL_Change(ByVal Complet As Boolean, ByVal NbrLgn As Long)
  If NbrLgn = 1 Then Exit Sub
  LCou = 0
  ReDim TVL(1 To 1, 1 To CL.PlgTablo.Columns.Count)
  GarnirAutresContrôles
  End Sub
Private Sub CL_Résultat(Lignes() As Long)
  If UBound(Lignes) > 1 Then Exit Sub
  LCou = Lignes(1)
  TVL = CL.Lignes(LCou).Range.Value
  GarnirAutresContrôles
  End Sub
Private Sub GarnirAutresContrôles()
  TextBox2.Value = TVL(1, 3)
  TextBox3.Value = TVL(1, 4)
  TextBox4.Value = TVL(1, 6)
  TextBox5.Value = TVL(1, 7)
  TextBox6.Value = TVL(1, 8)
  End Sub
Mais ce n'est pas fini: il reste à écrire les procédures de boutons…
 

Moniato

XLDnaute Nouveau
Ok j'ai coché CBxl dans les références et inséré ton code dans mon projet.
Qu'entends tu par écrire les procédures ?
Veux tu dire qu'il faut que je réécrive tous les codes de mes boutons en rapport avec la nouvelle insertion de ton code ?
C'est bien cela ?
 

Dranreb

XLDnaute Barbatruc
Ouais, la suite c'est à peu près ça :
VB:
'Commande pour Reset le Formulaire
Private Sub CommandButton11_Click()
   CL.Nettoyer
   End Sub
'Bouton Ajouter
Private Sub CommandButton4_Click()
   If LCou <> 0 Then Exit Sub
   CL.ValeursVers TVL
   AutresContrôlesVersTVL
   CL.Lignes.Add.Range.Value = TVL
   CL.Actualiser
   End Sub
'Bouton Modifier
Private Sub CommandButton6_Click()
   If LCou = 0 Then Exit Sub
   AutresContrôlesVersTVL
   CL.Lignes(LCou).Range.Value = TVL
   End Sub
Private Sub AutresContrôlesVersTVL()
   TVL(1, 3) = TextBox2.Value
   TVL(1, 4) = TextBox3.Value
   TVL(1, 6) = DateValue(TextBox4)
   TVL(1, 7) = DateValue(TextBox5)
   TVL(1, 8) = TextBox6.Value
   End Sub
' Fermeture du Formulaire
Private Sub CommandButton8_Click()
   Unload Me
   End Sub
 

Discussions similaires


Haut Bas