Problème pour modifier une BDD avec listbox

Bonjour le Forum,

J'ai un petit problème avec la modification de ma ListBox. Je vous explique ...

J'affiche ma ListBox venant de ma base données avec des combobox pour trier, jusque là tout va bien, cela affiche bien mes données dans les combobox et textbox de mon formulaire.

Private Sub UserForm_Initialize()
   Set f = Sheets("BDD 2")
   Set Rng = f.Range("A3:EW" & f.[A65000].End(xlUp).Row)    ' BD à adapter
   NomTableau = "Tableau2"
   ActiveWorkbook.Names.Add Name:=NomTableau, RefersTo:=Rng
   BD = Rng.Value
   ColCombo = Array(56, 77, 79)
   colVisu = Array(1, 56, 3, 5, 75, 76, 77, 79, 80, 93, 78) ' colonnes à visualiser (adapter)
   Ncol = UBound(colVisu) + 1
   Me.ComboBox1 = "*"
   Me.ComboBox2 = "*"
   Me.ComboBox3 = "*"
   TextBox5.List() = Array("Oui", "Non", "xxx")
   TextBox6.List() = Array("Accident de Travail", "Arrêt Maladie", "CMA Non Conformes", "Cumul Emploi Retraite", "Evaluation Licenciement", "Limite Dérog. Ou Agrément atteinte", "ERDAF", "PEC Difficile", "A.F.R", "xxx")
   Affiche
   B_Raz_Click
End Sub

Ensuite je modifie mes textbox et combobox et je tente de renvoyer le tout dans mon tableau en cliquant sur le bouton modifier

Private Sub CommandButton1_Click()
  Dim P$, Qln%
    With ListBox1
If .ListIndex = -1 Then Exit Sub
Ln = .List(.ListIndex, 0)
    End With
P5 = TextBox5
[Tableau2].Cells(Ln, 75) = P5

P6 = TextBox6
[Tableau2].Cells(Ln, 76) = P6

If TextBox7 = "" Then
[Tableau2].Cells(Ln, 77) = TextBox7  'ou = 0 ou ce que tu veux!
ElseIf IsDate(TextBox7) Then
[Tableau2].Cells(Ln, 77) = CDate(TextBox7)
End If

If TextBox8 = "" Then
[Tableau2].Cells(Ln, 79) = TextBox8  'ou = 0 ou ce que tu veux!
ElseIf IsDate(TextBox8) Then
[Tableau2].Cells(Ln, 79) = CDate(TextBox8)
End If

P9 = TextBox9
[Tableau2].Cells(Ln, 80) = P9

P10 = TextBox10
[Tableau2].Cells(Ln, 93) = P10

P11 = TextBox11
[Tableau2].Cells(Ln, 78) = P11

MsgBox "Modifications Effectuées !"
   Me.ComboBox1 = "*"
   Me.ComboBox2 = "*"
   Me.ComboBox3 = "*"
UserForm_Initialize
End Sub
Private Sub UserForm_Initialize()
   Set f = Sheets("BDD 2")
   Set Rng = f.Range("A3:EW" & f.[A65000].End(xlUp).Row)    ' BD à adapter
   NomTableau = "Tableau2"
   ActiveWorkbook.Names.Add Name:=NomTableau, RefersTo:=Rng
   BD = Rng.Value
   ColCombo = Array(56, 77, 79)
   colVisu = Array(1, 56, 3, 5, 75, 76, 77, 79, 80, 93, 78) ' colonnes à visualiser (adapter)
   Ncol = UBound(colVisu) + 1
   Me.ComboBox1 = "*"
   Me.ComboBox2 = "*"
   Me.ComboBox3 = "*"
   TextBox5.List() = Array("Oui", "Non", "xxx")
   TextBox6.List() = Array("Accident de Travail", "Arrêt Maladie", "CMA Non Conformes", "Cumul Emploi Retraite", "Evaluation Licenciement", "Limite Dérog. Ou Agrément atteinte", "ERDAF", "PEC Difficile", "A.F.R", "xxx")
   Affiche
   B_Raz_Click
End Sub

Le problème intervient ici, les données sont modifiées mais pas sur la bonne ligne dans mon tableau excel cela modifie les données mais sur 4 lignes au dessus. Est ce un problème d'indexage ?

Merci pour votre aide car je m'y perd un peu dans mon code ...

Bonjour Ismagapi

Merci pour votre aide,

Pour être plus précis,

Lorsque je clique sur le bouton 'ECHEANCES CORRESPONDANTES' dans l'onglet 'PAGE CHOIX', cela m'ouvre un formulaire avec une ListBox. Toutes mes lignes 'ASS FAM' ont un N° d'ORDRE (1,2,3,4,5,6,7 ....) dans la colonne A de ma BDD 2.

Lorsque je souhaite modifier une textbox de ma ligne, cela fonctionne, cela l'enregistre dans ma base de données. Par contre dés qu'un N° d'ordre est manquant (par exemple le N° 4), la modification de la ListBox ligne 5 se fait sur la ligne 6 et ainsi de suite ... S'il manque un second N° d'Ordre par la suite, cela décalera encore d'une ligne. (Par exemple il manque le N° d'Ordre 22, les données en dessous seront copiées sur deux lignes de plus 23 sur 25 etc ...).

Je ne comprend pas pourquoi ?

Merci de votre aide

17base-ass-test.zip (406.67 Ko)

Bonsoir Ismagapi,

Oui votre problème est normal, vous vous basez sur l'index de la ListBox

Il faut récupérer le numéro d'ordre et le cherché dans la BdD ce qui vous donnera un numéro de ligne, qu'il faudra utiliser

Maintenant, votre feuille étant protégé je ne pourrais pas aller plus en avant (merci d'y faire attention SVP)

Rechercher des sujets similaires à "probleme modifier bdd listbox"