Code se fonctionne incorrectement
salut tous les membres mon fichier est une planification des interventions preventifs la feuille 4 est une feuille de commande
simple clique sur intervention par semaine listbox s'ouvre que contient tous les interventions par semaine
dans le listbox il y a deux boutons modifier et supprimer
mon probléme est dans le bouton modifier si je clique sur une ligne puis sur le bouton modifier le formulaire s'ouvre des elments sont affiché mais si je termine le remplissage et je clique modifier lorsque je revient à la feuil1 je trouve que le modification toujours dans le ligne 4 or je vais que le ligne que j'ai deja selectionné dans le listbox sera modifié dans la feuille1 merci de m'aider sur cette probleme en urgent
ça ce le code de bouton modifier
Private Sub CommandButton1_Click()
Set f = ThisWorkbook.Worksheets("Feuil1")
Dim rc As Integer
rc = Int(Val(Label9.Caption))
If Trim(désignation.Text) = "" Or Trim(élément.Text) = "" _
Or Trim(tachedemandé.Text) = "" Or Trim(numerointervention.Text) = "" _
Or Trim(datedebut.Text) = "" Or Trim(dateprochaine.Text) = "" _
Or Trim(interveneur.Text) = "" Or Trim(tempsconsomé.Text) = "" _
Or Trim(piecederechange.Text) = "" Or Trim(quantité.Text) = "" Then
Mess = "Veuillez saisir :" & Chr(13)
If Trim(désignation.Text) = "" Then
'MsgBox ("Veuillez saisir la désignation")
Mess = Mess & "* la désignation" & Chr(13)
End If
If Trim(élément.Text) = "" Then
'MsgBox ("Veuillez saisir un élément")
Mess = Mess & "* un élément" & Chr(13)
End If
If Trim(tachedemandé.Text) = "" Then
'MsgBox ("Veuillez saisir la tache demandé")
Mess = Mess & "* la tache demandé" & Chr(13)
End If
If Trim(numerointervention.Text) = "" Then
'MsgBox ("Veuillez saisir le numero intervention")
Mess = Mess & "* le numero intervention" & Chr(13)
End If
If Trim(datedebut.Text) = "" Then
'MsgBox ("Veuillez saisir la date debut")
Mess = Mess & "* la date debut" & Chr(13)
End If
If Trim(dateprochaine.Text) = "" Then
'MsgBox ("Veuillez saisir la date prochaine")
Mess = Mess & "* la date prochaine" & Chr(13)
End If
If Trim(interveneur.Text) = "" Then
'MsgBox ("Veuillez saisir interveneur")
Mess = Mess & "* l'interveneur" & Chr(13)
End If
If Trim(tempsconsomé.Text) = "" Then
'MsgBox ("Veuillez saisir le temps consomé")
Mess = Mess & "* le temps consommé" & Chr(13)
End If
If Trim(piecederechange.Text) = "" Then
'MsgBox ("Veuillez saisir le piece de rechange")
Mess = Mess & "* la piece de rechange" & Chr(13)
End If
If Trim(quantité.Text) = "" Then
'MsgBox ("Veuillez saisir la quantité")
Mess = Mess & "* la quantité" & Chr(13)
End If
If Mess <> "Veuillez saisir :" & Chr(13) Then
MsgBox Mess
Exit Sub
End If
Else
f.Cells(rc + 4, 2) = Trim(désignation.Text)
f.Cells(rc + 4, 3) = Trim(élément.Text)
f.Cells(rc + 4, 4) = Trim(tachedemandé.Text)
f.Cells(rc + 4, 5) = Trim(numerointervention.Text)
f.Cells(rc + 4, 6) = Trim(datedebut.Text)
f.Cells(rc + 4, 7) = Trim(dateprochaine.Text)
f.Cells(rc + 4, 8) = Trim(interveneur.Text)
f.Cells(rc + 4, 9) = Trim(tempsconsomé.Text)
f.Cells(rc + 4, 10) = Trim(piecederechange.Text)
f.Cells(rc + 4, 11) = Trim(quantité.Text)
désignation.Text = ""
élément.Text = ""
tachedemandé.Text = ""
numerointervention.Text = ""
datedebut.Text = ""
dateprochaine.Text = ""
interveneur.Text = ""
tempsconsomé.Text = ""
piecederechange.Text = ""
quantité.Text = ""
End If
UserForm1.Show (False)
Me.Hide
End Sub
Bonjour,
le problème est ici:
rc = Int(Val(Label9.Caption))
selon le résultat décrit, rc est toujours = 0
il faudrait trouver la ligne selon la valeur de ListBox1.List(ListBox1.ListIndex
rc = Application.Match(ListBox1.List(ListBox1.ListIndex, 0), Sheets("Feuil2").Range("B:B"),0)
bonjour si je remplace
rc = Int(Val(Label9.Caption))
par ce code
rc = Application.Match(ListBox1.List(ListBox1.ListIndex, 0), Sheets("Feuil1").Range("B:B"),0)
ili m'affiche un erreur d'execution 424 objet requis merci de ressoudre ce probleme
bonjour Exel pratique
je vient de changer le code publié précédemment pour bouton modifier par un nouveau code qu 'est le suivant pour pouvoir modifier une ligne sélectionné dans listbox et sera modifié egalement dans la feuille1 , ce code il m'affiche le message "voulez vous modifier cette ligne" mais tu clique ok rien que se passe aucune modification dans listbox et feuil1
remarque: bouton modifier dans userform2
listbox apparaît lorsque on clique sur bouton "intervention par semaine" feuil1
sélectionnez une ligne et clique modifier une formulaire s'ouvre ou vous devez mettre le modification
Private Sub CommandButton1_Click()
Dim Ctrl As Control
Dim Ws As Worksheet
Dim Ligne As Integer
Dim I As Integer, ii
If MsgBox("Etes-vous certain de vouloir modifier cette ligne ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
Set Ws = Sheets("Feuil1")
If ListBox1 = "" Then Exit Sub ' ou se code If listbox1.ListIndex = -1 Then Exit Sub à la place de If listbox1 = "" Then Exit Sub
'If listbox1.ListIndex = -1 Then Exit Sub
Ligne = ListBox1.ListIndex + 2
With Sheets("Feuil1")
.Range("B" & Ligne).Value = désignation.Value
.Range("C" & Ligne).Value = élément.Value
.Range("D" & Ligne).Value = tachedemandé.Value
.Range("D" & Ligne).Value = numerointervention.Value
.Range("E" & Ligne).Value = datedebut.Value
.Range("F" & Ligne).Value = dateprochaine.Value
.Range("G" & Ligne).Value = interveneur.Value
.Range("H" & Ligne).Value = tempsconsomé.Value
.Range("I" & Ligne).Value = piecederechange.Value
.Range("j" & Ligne).Value = quantité.Value
End With
MsgBox ("ligne modifiée")
End Sub
merci de me donner une solution
il faut spécifier le UserForm du ListBox1
voir une exemple ici: https://forum.excel-pratique.com/cours-astuces/userform-en-cascade-t93816.html
Bonjour
sabv
voila le code nouveau code il m'affiche erreur de compilation sub attendu
Private Sub CommandButton1_Click()
Dim Ctrl As Control
Dim Ws As Worksheet
Dim Ligne As Integer
Dim I As Integer, ii
If MsgBox("Etes-vous certain de vouloir modifier cette ligne ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
Set Ws = Sheets("Feuil1")
If ListBox1 = "" Then Exit Sub ' ou se code If listbox1.ListIndex = -1 Then Exit Sub à la place de If listbox1 = "" Then Exit Sub
'If listbox1.ListIndex = -1 Then Exit Sub
Ligne = ListBox1.ListIndex + 2
With Sheets("Feuil1")
.Range("B" & Ligne).Value = désignation.Value
.Range("C" & Ligne).Value = élément.Value
.Range("D" & Ligne).Value = tachedemandé.Value
.Range("D" & Ligne).Value = numerointervention.Value
.Range("E" & Ligne).Value = datedebut.Value
.Range("F" & Ligne).Value = dateprochaine.Value
.Range("G" & Ligne).Value = interveneur.Value
.Range("H" & Ligne).Value = tempsconsomé.Value
.Range("I" & Ligne).Value = piecederechange.Value
.Range("j" & Ligne).Value = quantité.Value
End With
MsgBox ("ligne modifiée")
Sub afficher_userform1_Click()
UserForm1.Show (False)
Me.Hide
End Sub
bonjour,
sans avoir essayé de comprendre ce que font tes macros il manque un end sub
avant l'instruction
Sub afficher_userform1_Click()
bonjour merci de me repondre
si je fais
end sub
avant
Sub afficher_userform1_Click()
directement il passe à une autre code il me fait un trait aprés End sub et passe à une autre
merci de corriger mon probleme
salut excel pratique
personne peux m'aider sur ce problème svp j'attend une solution en urgent merci à tous
Bonjour,
le problème de "sub attendu" est-il corrigé ?
bonsoir h2so4 non pas de correction complètement comme j'ai mentionné precedément merci de me repondre en urgent
bonsoir,
peux-tu répondre à la question ?
as-tu encore un problème de "sub attendu "?
mets-nous ton fichier avec les macros.
bonsoir le probleme encore existe ça ce le code
Private Sub CommandButton1_Click()
Dim Ctrl As Control
Dim Ws As Worksheet
Dim Ligne As Integer
Dim I As Integer, ii
If MsgBox("Etes-vous certain de vouloir modifier cette ligne ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
Set Ws = Sheets("Feuil1")
If ListBox1 = "" Then Exit Sub ' ou se code If listbox1.ListIndex = -1 Then Exit Sub à la place de If listbox1 = "" Then Exit Sub
'If listbox1.ListIndex = -1 Then Exit Sub
Ligne = ListBox1.ListIndex + 2
With Sheets("Feuil1")
.Range("B" & Ligne).Value = désignation.Value
.Range("C" & Ligne).Value = élément.Value
.Range("D" & Ligne).Value = tachedemandé.Value
.Range("D" & Ligne).Value = numerointervention.Value
.Range("E" & Ligne).Value = datedebut.Value
.Range("F" & Ligne).Value = dateprochaine.Value
.Range("G" & Ligne).Value = interveneur.Value
.Range("H" & Ligne).Value = tempsconsomé.Value
.Range("I" & Ligne).Value = piecederechange.Value
.Range("j" & Ligne).Value = quantité.Value
End With
MsgBox ("ligne modifiée")
End If
userform1.Show (False)
End Sub
le probleme dans le bouton modifier ça le fichier
salut excel pratique je n'ai reçu aucune solution de mon probléme personne peux m'aider svp
Bonjour ing2017, h2so4, à tous,
ing2017, vous avez 7 UserForm dans votre projet, et vous ne spécifiez jamais cette objet,
par exemple il ne suffit pas d'écrire If ListBox1.ListIndex <> -1 Then
mais (toujours par exemple) il faut écrire,
If UserForm1.ListBox1.ListIndex <> -1 Then
merci de m repondre
bon j'ai essayé par vootre correction mais l'exécution s'arrete au niveau" est vous modifié ce ligne" si tu clique ok pour confirmation rien que se passe et le modification ne fait pas.Sabv
le reste de code à partir de
Set Ws = Sheets("Feuil1")
jusqu'a la fin de boucle n'est pas traité comme ce ci on a pas de code
merci de me trouver la solution voila le code modifié
Private Sub CommandButton1_Click()
Dim Ctrl As Control
Dim Ws As Worksheet
Dim Ligne As Integer
Dim I As Integer, ii
If MsgBox("Etes-vous certain de vouloir modifier cette ligne ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
Set Ws = Sheets("Feuil1")
If ListBox1 = "" Then Exit Sub ' ou se code If listbox1.ListIndex = -1 Then Exit Sub à la place de If listbox1 = "" Then Exit Sub
If UserForm1.ListBox1.ListIndex <> -1 Then
Ligne = ListBox1.ListIndex + 2
With Sheets("Feuil1")
.Range("B" & Ligne).Value = désignation.Value
.Range("C" & Ligne).Value = élément.Value
.Range("D" & Ligne).Value = tachedemandé.Value
.Range("D" & Ligne).Value = numerointervention.Value
.Range("E" & Ligne).Value = datedebut.Value
.Range("F" & Ligne).Value = dateprochaine.Value
.Range("G" & Ligne).Value = interveneur.Value
.Range("H" & Ligne).Value = tempsconsomé.Value
.Range("I" & Ligne).Value = piecederechange.Value
.Range("j" & Ligne).Value = quantité.Value
End With
MsgBox ("ligne modifiée")
End If
UserForm1.Show (False)
End Sub
pourquoi avez-vous corrigé une seule ligne ?
salut
merci pour votre reponse au niveau fonctionnement maintenant sa marche mais reste un petit problemesabV
si tu choisi une ligne pour modifier aprés le modification je trouve qu'il sera affiché avant la ligne sélectionnée par deux ligne dans la feuille1 je crois le problémé au niveau ce code mais lorsque j'elimine le + 2 ili m'affiche un erreur
Private Sub CommandButton1_Click()
Dim Ctrl As Control
Dim Ws As Worksheet
Dim Ligne As Integer
Dim I As Integer, ii
If MsgBox("Etes-vous certain de vouloir modifier cette ligne ?", vbYesNo, _
"Demande de confirmation") <> vbYes Then Exit Sub
Set Ws = Sheets("Feuil1")
If UserForm1.ListBox1 = "" Then Exit Sub ' ou se code If userform1.listbox1.ListIndex = -1 Then Exit Sub à la place de If listbox1 = "" Then Exit Sub
If UserForm1.ListBox1.ListIndex <> -1 Then
Ligne = UserForm1.ListBox1.ListIndex + 2
With Sheets("Feuil1")
.Range("B" & Ligne).Value = désignation.Value
.Range("C" & Ligne).Value = élément.Value
.Range("D" & Ligne).Value = tachedemandé.Value
.Range("E" & Ligne).Value = numerointervention.Value
.Range("f" & Ligne).Value = datedebut.Value
.Range("G" & Ligne).Value = dateprochaine.Value
.Range("H" & Ligne).Value = interveneur.Value
.Range("I" & Ligne).Value = tempsconsomé.Value
.Range("J" & Ligne).Value = piecederechange.Value
.Range("K" & Ligne).Value = quantité.Value
End With
MsgBox ("ligne modifiée")
End If
UserForm1.Show (False)
End Sub
lorsqu'aucune ligne n'est sélectionnée, la propriété ListIndex renvoie la valeur –1.
quand l'utilisateur sélectionne une ligne d'un contrôle ListBox, la valeur de la propriété ListIndex de la première ligne est = zéro,
donc si c'est la 2ème ligne qui est sélectionné ListIndex = 1 etc..
maintenant il faut ajuster à la feuille de données
par exemple la première ligne
ListIndex = 0
première ligne de Feuille de données = 3
là il faut ajouter +3
merci beaucoup
solution accepté mais la on ajout +4 merci autre foissabV
mais ici dans meme fichier j'ai un autre probleme au niveau d'affichage date est ce que tu peux m'aider merci d'avance