Bonjour,
pour contourner un problème de date, j'essaye d'écrire ma macro avec des boucles de cette façon :
Private Sub OK_modif_Click()
'Boucle sur toutes les lignes
i = ListView1.SelectedItem.Index
Cells(i + 1, 1) = ListView1.ListItems(i).Text
'Boucle sur les colonnes '1 To 27
For j = 1 To 3
If Me("Textbox" & j + 1) <> ListView1.ListItems(i).ListSubItems(j).Text Then
ListView1.ListItems(i).ListSubItems(j).Text = Me("Textbox" & j + 1)
Cells(i + 1, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text
End If
Next j
For j = 4 To 4 'car problème inversion jour et mois colonne (date naissance)
If Me("Textbox" & j + 1) <> ListView1.ListItems(i).ListSubItems(j).Text Then
ListView1.ListItems(i).ListSubItems(j).Text = Me("Textbox" & j + 1)
Cells(i + 1, j + 1) = CDate(ListView1.ListItems(i).ListSubItems(j).Text)
End If
Next j
For j = 5 To 27
If Me("Textbox" & j + 1) <> ListView1.ListItems(i).ListSubItems(j).Text Then
ListView1.ListItems(i).ListSubItems(j).Text = Me("Textbox" & j + 1)
Cells(i + 1, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text
End If
Next j
IniListview (InitTableau)
End Sub
les modifs sont enregistrées sur la ligne 2 (ligne 1 = entête du tableau). Que se passe t-il ? Ma macro est-elle correcte ? Y'a t-il un moyen de la raccourcir ?
Merci pour vos réponses
pour contourner un problème de date, j'essaye d'écrire ma macro avec des boucles de cette façon :
Private Sub OK_modif_Click()
'Boucle sur toutes les lignes
i = ListView1.SelectedItem.Index
Cells(i + 1, 1) = ListView1.ListItems(i).Text
'Boucle sur les colonnes '1 To 27
For j = 1 To 3
If Me("Textbox" & j + 1) <> ListView1.ListItems(i).ListSubItems(j).Text Then
ListView1.ListItems(i).ListSubItems(j).Text = Me("Textbox" & j + 1)
Cells(i + 1, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text
End If
Next j
For j = 4 To 4 'car problème inversion jour et mois colonne (date naissance)
If Me("Textbox" & j + 1) <> ListView1.ListItems(i).ListSubItems(j).Text Then
ListView1.ListItems(i).ListSubItems(j).Text = Me("Textbox" & j + 1)
Cells(i + 1, j + 1) = CDate(ListView1.ListItems(i).ListSubItems(j).Text)
End If
Next j
For j = 5 To 27
If Me("Textbox" & j + 1) <> ListView1.ListItems(i).ListSubItems(j).Text Then
ListView1.ListItems(i).ListSubItems(j).Text = Me("Textbox" & j + 1)
Cells(i + 1, j + 1) = ListView1.ListItems(i).ListSubItems(j).Text
End If
Next j
IniListview (InitTableau)
End Sub
les modifs sont enregistrées sur la ligne 2 (ligne 1 = entête du tableau). Que se passe t-il ? Ma macro est-elle correcte ? Y'a t-il un moyen de la raccourcir ?
Merci pour vos réponses