CommButt "modifier" qui bugg
dwof
-
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
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
A voir également:
- CommButt "modifier" qui bugg
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier extension fichier - Guide
- Modifier story facebook - Guide
- Modifier widget iphone - Guide
1 réponse
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....
'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....