bonjour.
Je vous joint le code de mon commandbutton ( rappel d'une ligne de la base via combobox, et validation des modifs via ce bouton )
Tout fonctionne mais après avoir effectué correctement la modification des données, le combobox ne renvoi pas visuellement la ligne corrigée ( étrange ). Je ne sais pas si mon 1er post est passé sur le forum. MON fichier est une base de donnée sous 2010.Il faudrait juste qu'après la correction des donnée, le cbx renvoi la ligne en cours, qui viens d'être modifiée. Mon fichier est dispo si vous le souhaitez. Merci pour votre aide, bien à vous. Michel
Private Sub CommandButton2_Click()
' modification des données
Application.ScreenUpdating = False
Sheets("base de donnée").Select
Dim L, i As Integer
L = Sheets("base de donnée").Range("A32767").End(xlUp).Row
For i = 2 To L
If Sheets("base de donnée").Range("A" & i) = userform1.ComboBox4.Value Then
Sheets("base de donnée").Range("B" & i).Value = userform1.TextBox2.Value
Sheets("base de donnée").Range("C" & i).Value = userform1.ComboBox1.Value 'date
ComboBox1 = Format(ComboBox1, "dd/mm/yyyy")' cette ligne est elle correcte ? ca semble fonctionner...
Sheets("base de donnée").Range("D" & i).Value = userform1.ComboBox2.Value
Sheets("base de donnée").Range("E" & i).Value = userform1.CheckBox3.Value
Sheets("base de donnée").Range("F" & i).Value = userform1.CheckBox4.Value
Sheets("base de donnée").Range("H" & i).Value = userform1.CheckBox5.Value
Sheets("base de donnée").Range("I" & i).Value = userform1.ComboBox3.Value
Sheets("base de donnée").Range("J" & i).Value = userform1.CheckBox1.Value
Sheets("base de donnée").Range("K" & i).Value = userform1.CheckBox2.Value
Sheets("base de donnée").Range("L" & i).Value = userform1.CheckBox8.Value
Sheets("base de donnée").Range("M" & i).Value = userform1.CheckBox9.Value
Sheets("base de donnée").Range("N" & i).Value = userform1.CheckBox10.Value
Sheets("base de donnée").Range("O" & i).Value = userform1.CheckBox7.Value
Sheets("base de donnée").Range("Q" & i).Value = userform1.CheckBox6.Value
End If
Next
Range("A2:Q100").Select
ActiveWorkbook.Worksheets("base de donnée").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("base de donnée").Sort.SortFields.Add Key:=Range( _
"A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("base de donnée").Sort
.SetRange Range("A2:Q100")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Load userform1
Sheets("OPEN").Select
Application.ScreenUpdating = True
End Sub
Je vous joint le code de mon commandbutton ( rappel d'une ligne de la base via combobox, et validation des modifs via ce bouton )
Tout fonctionne mais après avoir effectué correctement la modification des données, le combobox ne renvoi pas visuellement la ligne corrigée ( étrange ). Je ne sais pas si mon 1er post est passé sur le forum. MON fichier est une base de donnée sous 2010.Il faudrait juste qu'après la correction des donnée, le cbx renvoi la ligne en cours, qui viens d'être modifiée. Mon fichier est dispo si vous le souhaitez. Merci pour votre aide, bien à vous. Michel
Private Sub CommandButton2_Click()
' modification des données
Application.ScreenUpdating = False
Sheets("base de donnée").Select
Dim L, i As Integer
L = Sheets("base de donnée").Range("A32767").End(xlUp).Row
For i = 2 To L
If Sheets("base de donnée").Range("A" & i) = userform1.ComboBox4.Value Then
Sheets("base de donnée").Range("B" & i).Value = userform1.TextBox2.Value
Sheets("base de donnée").Range("C" & i).Value = userform1.ComboBox1.Value 'date
ComboBox1 = Format(ComboBox1, "dd/mm/yyyy")' cette ligne est elle correcte ? ca semble fonctionner...
Sheets("base de donnée").Range("D" & i).Value = userform1.ComboBox2.Value
Sheets("base de donnée").Range("E" & i).Value = userform1.CheckBox3.Value
Sheets("base de donnée").Range("F" & i).Value = userform1.CheckBox4.Value
Sheets("base de donnée").Range("H" & i).Value = userform1.CheckBox5.Value
Sheets("base de donnée").Range("I" & i).Value = userform1.ComboBox3.Value
Sheets("base de donnée").Range("J" & i).Value = userform1.CheckBox1.Value
Sheets("base de donnée").Range("K" & i).Value = userform1.CheckBox2.Value
Sheets("base de donnée").Range("L" & i).Value = userform1.CheckBox8.Value
Sheets("base de donnée").Range("M" & i).Value = userform1.CheckBox9.Value
Sheets("base de donnée").Range("N" & i).Value = userform1.CheckBox10.Value
Sheets("base de donnée").Range("O" & i).Value = userform1.CheckBox7.Value
Sheets("base de donnée").Range("Q" & i).Value = userform1.CheckBox6.Value
End If
Next
Range("A2:Q100").Select
ActiveWorkbook.Worksheets("base de donnée").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("base de donnée").Sort.SortFields.Add Key:=Range( _
"A2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("base de donnée").Sort
.SetRange Range("A2:Q100")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Selection.Sort Key1:=Range("C2"), Order1:=xlAscending, Header:=xlGuess, _
ordercustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Load userform1
Sheets("OPEN").Select
Application.ScreenUpdating = True
End Sub