CommButt "modifier" qui bugg

dwof -  
 dwof -
Bonjour,

Je suis sous Vista (même si je pense qu'ici cela n'a aucune incidence) et je tente d'écrire un code VBA de modification de données dans ma feuille employée. J'aimerai comprendre ce qui ne fonctionne pas dans mon code pour mon bouton "modifier". En effet il est mis qu'il bugg plus ou moins au niveau du i=i+1 qui se trouve ce dessous :

'Modification des données des produits
Private Sub CB_modifier_Click()
Dim q As String
Dim i As Integer
Dim ctl As MSForms.Control
'
' Quitter la procédure si tous les champs n'ont pas étés remplis
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
If Trim$(ctl.Value) = "" Then
MsgBox "Veuillez remplir tous les champs.", vbInformation, "Modifier un produit"
ctl.SetFocus
Exit Sub
End If
End If
Next

i = 2
While Cells(i, 1) <> TB_produit.Value
i = i + 1
Wend
If Cells(i, 1) = TB_produit.Value Then
q = MsgBox("Confirmer modification?", vbCritical + vbYesNo)
'
'Modification ou non après après demande de confirmation
If q = vbNo Then
MsgBox " Ok pas de modification alors"
End If
If q = vbYes Then
Cells(i, 1).Offset(0, 1) = TB_produit
Cells(i, 1).Offset(0, 2) = TB_nom
Cells(i, 1).Offset(0, 3) = TB_categorie
Cells(i, 1).Offset(0, 4) = TB_prixachat
Cells(i, 1).Offset(0, 5) = TB_prixvente
Cells(i, 1).Offset(0, 6) = TB_stockreel
Cells(i, 1).Offset(0, 7) = TB_stockmin
Cells(i, 1).Offset(0, 8) = TB_reapprov
MsgBox "Element modifié"
End If
End If
'
' Réinitialiser tous les champs et sélectionner le produit modifié sur la feuille
For Each ctl In Me.Controls
If TypeName(ctl) = "TextBox" Then
ctl.Value = ""
End If
Next
Cells(i, 1).Select

End Sub

Merci

1 réponse

  1. dwof
     
    voila j'ai corrigé moi même mon code. Pour ceux que ça interesserai la partie sz modification a proprement parler s'érirai comme ça: '
    'Démarer la modification à proprement parler
    i = 2
    While Cells(i, 1) <> TB_nom.Value
    i = i + 1
    Wend
    If Trim$(UCase$(Cells(i, 1))) = Trim$(UCase$(TB_nom)) Then
    q = MsgBox("Confirmer modification?", vbCritical + vbYesNo)
    '
    'Modification ou non après après demande de confirmation
    If q = vbNo Then
    MsgBox " Ok pas de modification alors"
    End If
    If q = vbYes Then
    Cells(i, 1).Offset(0, 1) = TB_nom
    Cells(i, 1).Offset(0, 2) = TB_prenom
    Cells(i, 1).Offset(0, 3) = TB_fonction
    Cells(i, 1).Offset(0, 4) = TB_matricule
    Cells(i, 1).Offset(0, 5) = TB_salairebrut
    Cells(i, 1).Offset(0, 6) = TB_datenaissance
    Cells(i, 1).Offset(0, 7) = TB_adresse
    Cells(i, 1).Offset(0, 8) = TB_codepostal
    Cells(i, 1).Offset(0, 9) = TB_ville
    Cells(i, 1).Offset(0, 10) = TB_pays
    Cells(i, 1).Offset(0, 11) = TB_telfix
    Cells(i, 1).Offset(0, 12) = TB_gsm
    Cells(i, 1).Offset(0, 13) = TB_email
    MsgBox "Element modifié"
    End If
    End If

    L'unique probleme par contre, est que pour une raison qui m'échappe completement, les données modifiées s'écrive bien de ma feuille("Employés"), à la bonne ligne i, MAIS en décalage d'une colonne vers la droite....
    0