Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment supprimer une colonne aléatoire dans un msflexgrid ?

2 réponses
Avatar
Christian
Bonjour,

Je souhaite parvenir à supprimer une colonne qui peut aussi bien être la
3éme comme la 7 éme. Seul l'utilisateur défini ce qu'il veut.

Merci.

Christian.

2 réponses

Avatar
Jean-Marc
"Christian" a écrit dans le message de
news:4333050e$0$18836$
Bonjour,

Je souhaite parvenir à supprimer une colonne qui peut aussi bien être la
3éme comme la 7 éme. Seul l'utilisateur défini ce qu'il veut.



Hello,

il suffit de déplacer la colonne à supprimer en
dernière position et de diminuer de 1 le nombre de colonnes.

Voici la fonction:

' 8<-------------------------------
Public Function RemoveColumn(myGrid As MSFlexGrid, ByVal column As Long) As
Boolean

If column < myGrid.Cols Then
myGrid.ColPosition(column) = myGrid.Cols - 1
myGrid.Cols = myGrid.Cols - 1
RemoveColumn = True
End If
End Function
' 8<-------------------------------

Et un exemple d'appel:

' remplissage avec quelques valeurs
Private Sub Command1_Click()
MSFlexGrid1.Cols = 6
MSFlexGrid1.Rows = 2

MSFlexGrid1.TextMatrix(1, 1) = "a"
MSFlexGrid1.TextMatrix(1, 2) = "b"
MSFlexGrid1.TextMatrix(1, 3) = "c"
MSFlexGrid1.TextMatrix(1, 4) = "d"
MSFlexGrid1.TextMatrix(1, 5) = "e"

End Sub


' suppression d'une colonne
Private Sub Command2_Click()
Dim column As Long
Dim r As Boolean

' supprimer la 3eme colonne
column = 3
r = RemoveColumn(MSFlexGrid1, column)
If r = True Then
MsgBox "colonne " & column & " supprimée", vbInformation, "Ok"
Else
MsgBox "colonne " & column & " NON supprimée", vbExclamation,
"Erreur"
End If

End Sub


NOTE: le mot "aléatoire" veut dire "au hasard". Le hasard n'intervient
pas dans ce que tu souhaites faire ici. Si l'utilisateur doit choisir une
colonne à supprimer, c'est parafaitement déterminé.
Il vaut mieux dire dans ce cas : "Suppression d'une colonne *quelconque*".

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
Christian
Merci beaucoup, pour les explications ainsi que le pour le code.

Christian.


"Jean-Marc" a écrit dans le message de news:
433313f5$0$13272$
"Christian" a écrit dans le message de
news:4333050e$0$18836$
> Bonjour,
>
> Je souhaite parvenir à supprimer une colonne qui peut aussi bien être la
> 3éme comme la 7 éme. Seul l'utilisateur défini ce qu'il veut.

Hello,

il suffit de déplacer la colonne à supprimer en
dernière position et de diminuer de 1 le nombre de colonnes.

Voici la fonction:

' 8<-------------------------------
Public Function RemoveColumn(myGrid As MSFlexGrid, ByVal column As Long)


As
Boolean

If column < myGrid.Cols Then
myGrid.ColPosition(column) = myGrid.Cols - 1
myGrid.Cols = myGrid.Cols - 1
RemoveColumn = True
End If
End Function
' 8<-------------------------------

Et un exemple d'appel:

' remplissage avec quelques valeurs
Private Sub Command1_Click()
MSFlexGrid1.Cols = 6
MSFlexGrid1.Rows = 2

MSFlexGrid1.TextMatrix(1, 1) = "a"
MSFlexGrid1.TextMatrix(1, 2) = "b"
MSFlexGrid1.TextMatrix(1, 3) = "c"
MSFlexGrid1.TextMatrix(1, 4) = "d"
MSFlexGrid1.TextMatrix(1, 5) = "e"

End Sub


' suppression d'une colonne
Private Sub Command2_Click()
Dim column As Long
Dim r As Boolean

' supprimer la 3eme colonne
column = 3
r = RemoveColumn(MSFlexGrid1, column)
If r = True Then
MsgBox "colonne " & column & " supprimée", vbInformation, "Ok"
Else
MsgBox "colonne " & column & " NON supprimée", vbExclamation,
"Erreur"
End If

End Sub


NOTE: le mot "aléatoire" veut dire "au hasard". Le hasard n'intervient
pas dans ce que tu souhaites faire ici. Si l'utilisateur doit choisir une
colonne à supprimer, c'est parafaitement déterminé.
Il vaut mieux dire dans ce cas : "Suppression d'une colonne *quelconque*".

--
Jean-marc
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;