0/5 (2 avis)
Vue 5 778 fois - Téléchargée 1 094 fois
Dim TexteLigne As String Dim IndexLigneSource As Integer Dim IndexLigneDestination As Integer Dim Couper As Boolean Private Sub mnuCouper_Click() 'On a cliqué sur le menu Couper Dim C As Integer TexteLigne = "" 'On passe en revue les colonnes du flexgrid pour former une chaîne 'dont les valeurs des cellules seront séparées par une tabulation For C = 0 To Me.MSFlexGrid1.Cols - 1 TexteLigne = TexteLigne & vbTab & Me.MSFlexGrid1.TextMatrix(IndexLigneSource, C) Next 'On supprime la première tabulation inutile TexteLigne = Mid(TexteLigne, InStr(1, TexteLigne, vbTab) + 1) 'On signale qu'on a "coupé" la ligne Couper = True 'On modifie les menus Me.mnuCouper.Enabled = False Me.mnuColler.Enabled = True End Sub Private Sub mnuColler_Click() 'On a cliqué sur le menu Coller 'Si on est en mode "Couper" (Faudra que je pense à faire du "Copier" également) If Couper Then 'J'ajoute ma ligne découpée à l'endroit souhaité Me.MSFlexGrid1.AddItem TexteLigne, IndexLigneDestination 'Je supprime la ligne initiale en fonction de sa position 'par rapport à la ligne coupée If IndexLigneSource > IndexLigneDestination Then Me.MSFlexGrid1.RemoveItem IndexLigneSource + 1 Else Me.MSFlexGrid1.RemoveItem IndexLigneSource End If 'Je rétablie les menus pour un nouveau "Couper" Me.mnuCouper.Enabled = True Me.mnuColler.Enabled = False Couper = False End If End Sub Private Sub MSFlexGrid1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) 'Si on a cliqué sur la première colonne avec le bouton de droite... If Button = 2 And Me.MSFlexGrid1.MouseCol = 0 Then 'et si une ligne a été coupée... If Couper Then 'je récupère l'index de la ligne où se fera l'insertion de la ligne coupée IndexLigneDestination = Me.MSFlexGrid1.MouseRow Else 'sinon je récupère l'index de la ligne que l'on va couper IndexLigneSource = Me.MSFlexGrid1.MouseRow End If 'J'affiche le menu contextuel Me.PopupMenu mnuEdition End If End Sub
2 févr. 2009 à 19:07
2 févr. 2009 à 15:57
Félicitations. As-tu fait évoluer ton code comme tu sembles le dire ? Sais-tu gérer les colonnes et les sélections multiples ? Je suis preneur.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.