phileasdav
XLDnaute Junior
Bonjour a tous ;
Je fais encore appel a vos talents pour ce probleme;
j'ai une list box dans une userform dans laquelle quand je double clique sur une des lignes celle ci ouvre une autre userform qui affiche les valeurs de celle ci , jusque là tout va bien!!!
Là ou ça se gate; c'est que je souhaite par un bouton que j'ai appelé "modif ok" modifié les valeurs de cette ligne . et là il me recrée une autre ligne alors que je veux seulement modifier la ligne existante !!ci dessous le code.
précision : ce code est dans l'userform 1 alors que la liste box est dans l'userform 2
merci d'avance
Private Sub modif_ok_Click()
'déclaration des variables
Dim donnee As Range
Dim i As Double ' i est la derniere ligne
Dim k As Date ' k est la date du jour
Dim ligneaconsulter As Long
Dim lst_personnes As ListBox ' lst_personnes est la list box de l'USF 2
ActiveSheet.Unprotect Password:="a"
Application.ScreenUpdating = False
If Sheets("Tableau").Range("a6").Value = "" Then
i = 1
Else
i = Sheets("Tableau").Range("a6").End(xlDown).Row
End If
ligneaconsulter = Sheets("Tableau").Range(Range("a6"), Range("a6").End(xlDown)) _
.Find(lst_personnes.Value).Row
' donne a k la valeur de la cellule g4 : date
k = Sheets("tableau").Range("f4").Value
'charge dans le tableau les données saisies dans l'USF
'permet de donner un numéro de ligne
With Sheets("Tableau")
.Range("a" & ligneaconsulter).Value = Sheets("tableau").Range("a" & ligneaconsulter).Value
.Range("b" & ligneaconsulter).Value = k
.Range("c" & ligneaconsulter).Value = cbx_faction.Value
.Range("e" & ligneaconsulter).Value = cbx_trigramme.Value
.Range("g" & ligneaconsulter).Value = cbx_localisation_service.Value
.Range("h" & ligneaconsulter).Value = cbx_localisation_machine.Value
.Range("i" & ligneaconsulter).Value = cbx_localisation_secteur.Value
.Range("j" & ligneaconsulter).Value = cbx_type_intervention.Value
.Range("k" & ligneaconsulter).Value = cbx_intervention_catégorie.Value
.Range("l" & ligneaconsulter).Value = txt_lien
.Range("n" & ligneaconsulter).Value = txt_description.Value
.Range("o" & ligneaconsulter).Value = cbx_nom_assignation.Value
.Range("q" & ligneaconsulter).Value = cbx_nom_correction.Value
.Range("s" & ligneaconsulter).Value = txt_description_correction
.Range("t" & ligneaconsulter).Value = cbx_nom_validation
.Range("v" & ligneaconsulter).Value = cbx_nom_cloture
End With
If cbx_nom_assignation <> "" Then
Sheets("Tableau").Range("p" & ligneaconsulter).Value = k
End If
If cbx_nom_correction <> "" Then
Sheets("Tableau").Range("r" & ligneaconsulter).Value = k
End If
If cbx_nom_validation <> "" Then
Sheets("Tableau").Range("u" & ligneaconsulter).Value = k
End If
If cbx_nom_cloture <> "" Then
Sheets("Tableau").Range("w" & ligneaconsulter).Value = k
End If
Application.ScreenUpdating = True
ActiveSheet.Protect Password:="a"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
Unload Me
End Sub
Je fais encore appel a vos talents pour ce probleme;
j'ai une list box dans une userform dans laquelle quand je double clique sur une des lignes celle ci ouvre une autre userform qui affiche les valeurs de celle ci , jusque là tout va bien!!!
Là ou ça se gate; c'est que je souhaite par un bouton que j'ai appelé "modif ok" modifié les valeurs de cette ligne . et là il me recrée une autre ligne alors que je veux seulement modifier la ligne existante !!ci dessous le code.
précision : ce code est dans l'userform 1 alors que la liste box est dans l'userform 2
merci d'avance
Private Sub modif_ok_Click()
'déclaration des variables
Dim donnee As Range
Dim i As Double ' i est la derniere ligne
Dim k As Date ' k est la date du jour
Dim ligneaconsulter As Long
Dim lst_personnes As ListBox ' lst_personnes est la list box de l'USF 2
ActiveSheet.Unprotect Password:="a"
Application.ScreenUpdating = False
If Sheets("Tableau").Range("a6").Value = "" Then
i = 1
Else
i = Sheets("Tableau").Range("a6").End(xlDown).Row
End If
ligneaconsulter = Sheets("Tableau").Range(Range("a6"), Range("a6").End(xlDown)) _
.Find(lst_personnes.Value).Row
' donne a k la valeur de la cellule g4 : date
k = Sheets("tableau").Range("f4").Value
'charge dans le tableau les données saisies dans l'USF
'permet de donner un numéro de ligne
With Sheets("Tableau")
.Range("a" & ligneaconsulter).Value = Sheets("tableau").Range("a" & ligneaconsulter).Value
.Range("b" & ligneaconsulter).Value = k
.Range("c" & ligneaconsulter).Value = cbx_faction.Value
.Range("e" & ligneaconsulter).Value = cbx_trigramme.Value
.Range("g" & ligneaconsulter).Value = cbx_localisation_service.Value
.Range("h" & ligneaconsulter).Value = cbx_localisation_machine.Value
.Range("i" & ligneaconsulter).Value = cbx_localisation_secteur.Value
.Range("j" & ligneaconsulter).Value = cbx_type_intervention.Value
.Range("k" & ligneaconsulter).Value = cbx_intervention_catégorie.Value
.Range("l" & ligneaconsulter).Value = txt_lien
.Range("n" & ligneaconsulter).Value = txt_description.Value
.Range("o" & ligneaconsulter).Value = cbx_nom_assignation.Value
.Range("q" & ligneaconsulter).Value = cbx_nom_correction.Value
.Range("s" & ligneaconsulter).Value = txt_description_correction
.Range("t" & ligneaconsulter).Value = cbx_nom_validation
.Range("v" & ligneaconsulter).Value = cbx_nom_cloture
End With
If cbx_nom_assignation <> "" Then
Sheets("Tableau").Range("p" & ligneaconsulter).Value = k
End If
If cbx_nom_correction <> "" Then
Sheets("Tableau").Range("r" & ligneaconsulter).Value = k
End If
If cbx_nom_validation <> "" Then
Sheets("Tableau").Range("u" & ligneaconsulter).Value = k
End If
If cbx_nom_cloture <> "" Then
Sheets("Tableau").Range("w" & ligneaconsulter).Value = k
End If
Application.ScreenUpdating = True
ActiveSheet.Protect Password:="a"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
Unload Me
End Sub