SEB83200
Messages postés34Date d'inscriptionlundi 16 juin 2008StatutMembreDernière intervention11 juin 2013
-
8 mars 2010 à 16:08
SEB83200
Messages postés34Date d'inscriptionlundi 16 juin 2008StatutMembreDernière intervention11 juin 2013
-
15 mars 2010 à 07:47
Bonjour,
J'ai un mshflexgrid qui contient 8 colonnes et 2 lignes.
L'utilisateur clique sur un bouton pour ajouter des lignes, jusque là pas de probléme.
J'ai une ligne fixe et une colonne fixe.
J'ai mis une checkbox dans la colonne 1, juste après la colonne fixe.
J'aimerai que lorsque l'utilisateur selectionne une ou plusieurs lignes et qu'il clic sur supprimer que les lignes selectionné le sois.
J'ai fait quelque essais et le code que j'ai ne marche que si on supprime la derniere ligne...
Quelqu'un peut m'aider?
Voici mon code :
Private Sub ReyCommand4_Click()
Dim i As Integer
With MSHFlexGrid1
For i = 1 To .Rows - 1
If MSHFlexGrid1.TextMatrix(i, 1) = strChecked Then
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 15 mars 2010 à 00:05
Effectivement...!
Explication:l' index est décalé
quand il supprime une ligne.
Solution:
Ajoutes i=i-1 à l' emplacement indiquée
With MSHFlexGrid1
k=.Rows - 1
i=0
Do While i < k
i=i+1
If MSHFlexGrid1.TextMatrix(i, 1) = strChecked Then
MSHFlexGrid1.RemoveItem (i)
k=k-1
i=i-1 End If
Loop
End With
[] Ce qui va sans dire. va mieux en le disant.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 13 mars 2010 à 13:04
Salut,
En supprimant une ligne, le nombre de lignes effectif
ne correspont plus à ton .Rows - 1 de départ.
D' ou une erreur au niveau de TextMatrix(i, 1).
Essaies ceci ...
Dim k As Integer
With MSHFlexGrid1
k=.Rows - 1
i=0
Do While i < k
i=i+1
If MSHFlexGrid1.TextMatrix(i, 1) = strChecked Then
MSHFlexGrid1.RemoveItem (i)
k=k-1
End If
Loop
End With
End Sub
[] Ce qui va sans dire. va mieux en le disant.
SEB83200
Messages postés34Date d'inscriptionlundi 16 juin 2008StatutMembreDernière intervention11 juin 2013 14 mars 2010 à 12:46
Bonjour,
Merci pour ta réponse.
Ton code fonctionne pratiquement bien sauf qu'il ne me supprime pas toutes les lignes selectionne, il faut clique deux a trois fois pour qu'il les supprime toutes.
Exemple : Je selectionne 5 lignes, il supprime la 1ere, la 3eme et la derniere mais pas la deuxieme et pas la 4 eme
As-tu une idee?
Encore Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?