Probleme bouton supprimer
j'ai developpé un code qui me permet de supprimer une ligne de la feuille excel a partir des données introduites dans l'userform. mais le problème est qu'il ne supprime que la premiere ligne au lieu de le faire pour la ligne correspondant au nom.
le principe serait que le bouton "supprimer" puisse supprimer la ligne de la feuille excel correspondant au nom se trouvant dans champ "nom". mais le mien supprime toujours la 1ère ligne peu importe le nom se trouvant dans le champ.
quelqu'un pourrait-il me dire ou je peche??? svp???
le fichier est joint
Merci
-- 06 Mai 2011, 17:04 --
Egalement sur le meme fichier, ma commande Modifier m'affiche: Erreur 6, depassement de capacité.
que faire??
merci
Bonjour jonathan,
Modifie le code du bouton supprimer comme ceci :
Private Sub btnsupprimer_Click()
Dim objsppr As String
Dim q As String
Dim trouveNom As Range
objtsppr = T_nom
If T_nom <> "" Then
'utilisation de la méthode Find pour chercher en colonne A le nom saisi
Set trouveNom = [A:A].Find(objtsppr)
If Not trouveNom Is Nothing Then 'si le nom est trouvé
q = MsgBox("Supprimer " & objtsppr & " ? ", vbCritical + vbYesNo)
If q = vbYes Then
Feuil2.Rows(trouveNom.Row).Delete 'trouveNom.Row permet d'obtenir le numéro de la ligne contenant le nom trouvé
End If
Unload Me
employes.Show
Else
MsgBox "Pas trouvé !"
End If
Else
MsgBox " Introduisez un nom à supprimer"
End If
End SubPour le bouton "modifier" et l'erreur 6 : dépassement de capacité, c'est parce que lorsque le nom n'est pas trouvé dans la boucle
While Feuil2.Cells(i, 1) <> T_nom.Value
i = i + 1
WendOn entre dans une boucle infinie. Or, tu as déclaré ta variable i comme un Integer :
Dim i As IntegerInterger a pour limite 32 767 et tu dépasses cette valeur lorsque la boucle est infinie.
Pour remédier à ça, essaie d'utiliser la méthode Find comme ci-dessus pour trouver le nom à modifier puis faire la modification ensuite.
Si tu galères, reviens.
merci, je vais essayer de ce pas meme
merci pour le code supprimer, ca marche.
cependant, j'ai essayé avec la méthode find pour le bouton modifier mais je n'y arrive pas( je ne connais pas cette méthode).
mais j'ai essayé avec un nouveau code, mais celui ci ne modifie rien mais s'applique correctement:
Private Sub btnmodifier_Click()
Dim q As String
Dim i As Integer, fin&
i = 2
fin = Feuil5.Range("A" & Rows.Count).End(xlUp).Row
Do While T_codeproduit.Value <> Feuil5.Cells(i, 1)
i = i + 1
If i > fin Then MsgBox " Le code spécifié n'existe pas ": GoTo 1
Loop
q = MsgBox("Confirmer modification?", vbCritical + vbYesNo)
If q = vbYes Then
Feuil3.Cells(i, 1) = T_codeproduit
Feuil3.Cells(i, 1).Offset(0, 1) = T_prenom
Feuil3.Cells(i, 1).Offset(0, 2) = T_nom
Feuil3.Cells(i, 1).Offset(0, 3) = T_categorie
Feuil3.Cells(i, 1).Offset(0, 4) = T_prixdachat
Feuil3.Cells(i, 1).Offset(0, 5) = T_prixunitairedevente
Feuil3.Cells(i, 1).Offset(0, 6) = T_stockreel
Feuil3.Cells(i, 1).Offset(0, 7) = T_stockminimum
Feuil3.Cells(i, 1).Offset(0, 8) = T_delaidereapprovisionnement
MsgBox "Opéraion effectuée"
Unload Me
produits.Show
End If
1 MsgBox "Veuillez introduire un code peoduit"
End Subpourrais je savoir ou se situe l'erreur??
-- 07 Mai 2011, 10:25 --
Private Sub btnmodifier_Click()
Dim objtr As String
Dim q As String
Dim trouveNom As Range
objtr = T_nom
If T_nom <> "" Then
Set trouveNom = [A:A].Find(objtr)
If Not trouveNom Is Nothing Then
q = MsgBox("modifier " & objtr & " ? ", vbCritical + vbYesNo)
If q = vbYes Then
Feuil2.Rows(trouveNom.Row) = T_nom
End If
Unload Me
employes.Show
End If
Else
MsgBox " Introduisez un nom à supprimer"
End If
End Subvoici ce que j'ai essayé avec la méthode find, mais sans grand résultat
-- 07 Mai 2011, 15:21 --
je crois y etre arrivé avec la boucle while, j'ai juste definie une limite pour le i
merci quand même