Déplacer ligne vers bas ou haut dans MSFLEXGRID

accent19811 Messages postés 105 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 28 mai 2023 - 26 mars 2016 à 19:01
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 3 avril 2016 à 18:06
Bonjour,
Bonjour,
Comment je peux déplace ligne vers bas ou haut dans la liste.

je vous sélectionné la ligne et Click sur bouton bas ou haut pour déplace ce ligne

Voir mon ,Project

http://www.cjoint.com/c/FCztAdjSc0Z

Merci d'avance de votre réponse !
Je ai besoin d'une réponse bientôt.
Je espère que dans les prochaines heures
Merci

Bonne Suite.

5 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 26/03/2016 à 19:54
Bonjour,
Réponse éventuelle lorsque tu :
- nous auras dit dans sous-forum de visual basic est concerné (tu as ouvert cette discussion dans le forum ... général de visual basic)
- auras fait l'effort de t'exprimer en un français plus compréhensible (je ne comprends pas "je vous sélectionné la ligne" et que tu auras su préciser ce que sont tes "bouton bas ou haut". Un "bouton" est pour moi, jusqu'à preuve du contraire, un contrôle existant sur ton Form.
- auras expliqué clairement ce que veut dire :
pour déplace ce ligne

pour moi et jusqu'à preuve du contraire, le déplacement d'une ligne signifie modifier l'ordre d'affichage des lignes ...
Merci de t'efforcer de rester très technique, si tu viens ici demander de l'aide
Merci également de ne pas inviter à télécharger un fichier pour savoir ce dont tu parles. Ici, on sait isoler une difficulté et montrer le code tenté pour résoudre cette seule difficulté.
Merci enfin de nous dire ce que tu as bien pu faire des 15 discussions que tu as ouvertes sur ce forum, sans suite donnée.

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
accent19811 Messages postés 105 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 28 mai 2023 1
26 mars 2016 à 20:05
Bonjour,
Merci actuellement à votre réponse,
voir mon exemple,
pour comprendre mon question,
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 26/03/2016 à 20:27
Je vais être encore plus clair, puisque cela semble nécessaire :
- je n'ai pas la moindre intention de télécharger ton .rar (en plus) pour savoir ce dont tu parles !
- relis les règles de ce forum et applique-les :
--- en isolant la difficulté et le code tenté pour la résoudre
--- en exprimant les choses de manière précise, complète et technique.
Ce sera là mon dernier message dans cette discussion si tu n'observes pas ces principes fondamentaux.
0
accent19811 Messages postés 105 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 28 mai 2023 1
Modifié par accent19811 le 2/04/2016 à 20:53
Bonjour,


Private Sub cmdVersBas_Click()
    Dim LGn%, C%, I%
    Dim Infos
 
    With G
        C = .Cols
        LGn = .RowSel
1:      .AllowBigSelection = False
        If LGn <= 1 Then Exit Sub
        For I = 0 To C - 1
            Infos = .TextMatrix(LGn + 1, I)
            .TextMatrix(LGn + 1, I) = .TextMatrix(LGn, I)
            .TextMatrix(LGn, I) = Infos
        Next I
        If MsgBox("Descendre encore cet élément ?", vbYesNo + vbQuestion) = vbYes Then
            If LGn >= 1 And LGn < G.Rows Then
            LGn = LGn + 1
            GoTo 1
            End If
        Else: Exit Sub
        End If
    End With
End Sub
 
Private Sub cmdVersHaut_Click()
    Dim LGn%, C%, I%
    Dim Infos
 
    With G
        C = .Cols
        LGn = .RowSel
1:    If LGn <= 1 Then Exit Sub
        For I = 0 To C - 1
            Infos = .TextMatrix(LGn - 1, I)
            .TextMatrix(LGn - 1, I) = .TextMatrix(LGn, I)
            .TextMatrix(LGn, I) = Infos
        Next I
        If MsgBox("Remonter encore cet élément ?", vbYesNo + vbQuestion) = vbYes Then
            If LGn > 2 Then
            LGn = LGn - 1
            GoTo 1
            End If
        Else: Exit Sub
        End If
    End With
End Sub

0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/04/2016 à 08:34
C'est une plaisanterie ?
Tu es en train de jouer au "ping-pong" entre deux forums ...
Sur l'autre, où tu as eu ce code, tu as eu un autre message, que tu as laissé sans réponse.
Et ici, tu n'as toujours pas "isolé"
Continue donc là-bas, maintenant.

EDIT : et si tu avais répondu sur ce forum avec précision aux questions qui t'étaient posées, tu aurais obtenu une réponse nettement mieux adaptée que la solution qui t'a été proposée.
Un indice pour toi :
- la méthode AddItem du contrôle MSFlexGrig permet de spécifier le rang où l'ajout doit se faire.
- une fois cet ajout fait, on peut le compléter par ses sous-items (utilisation de la propriété TextMatrix)
- La méthode RemoveItem permet de supprimer un item spécifié
Tout le reste coule tellement de source ...
Et nul besoin ainsi de faire des inversions, cellule par cellule, par le truchement d'une variable tremplin (ta variable infos) qui devient inutile!!!

Et (cerise su le gâteau) : une seule fonction, à laquelle on passe comme paramètres le rang en cours et le rang nouveau. Et cette fonction est appelée par chacun de tes deux boutons (descendre et monter), où il te suffit de déterminer le nouveau rang à attribuer à l'article sélectionné ....

Voilà voilà ... Et dans la foulée : tu devrais en profiter pour remplacer ce vilain Goto par une boucle While (en jouant avec une simple booléenne).

________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 3/04/2016 à 18:09
Bon ...
Je suis prêt à excuser tout cela et à te faire une faveur, mais à une condition :
que tu fasses au moins enfin ce que je t'ai demandé plus haut, à savoir :
Merci enfin de nous dire ce que tu as bien pu faire des 15 discussions que tu as ouvertes sur ce forum, sans suite donnée.

Si tu viens sur ce forum, essaye au moins de le faire de manière disciplinée.
Si tu fais ce minuscule effort, tu auras ton code (je l'ai déjà écrit) tout propre, tout beau, tout concis et prêt pour toutes les situations possibles.
A toi de voir, donc ...
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.
0
Rejoignez-nous