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

[Se déplacer dans un Ctrl MSFlexgrid par code]

10 réponses
Avatar
JPM
Bonjour,
Comment se placer par code VB dans un ctrl Flexgrid pour atteindre une
information située dans le grid sans utiliser "manuellement" le scroll?
Existe-t- il une fonction?
Amitiés
--
JPM

10 réponses

Avatar
Jacques93
Bonjour JPM,
JPM a écrit :
Bonjour,
Comment se placer par code VB dans un ctrl Flexgrid pour atteindre une
information située dans le grid sans utiliser "manuellement" le scroll?
Existe-t- il une fonction?
Amitiés



Peut être avec la propriété TopRoW ?

--
Cordialement,

Jacques.
Avatar
driss hanib
Salu JPM,
Tu peux récupérer les informations d'une cellule par la propriété
textmatrix()

maintenant il faudrait que tu explique EXACTEMENT ce que tu veux faire..

Driss

"JPM" a écrit dans le message de news:

Bonjour,
Comment se placer par code VB dans un ctrl Flexgrid pour atteindre une
information située dans le grid sans utiliser "manuellement" le scroll?
Existe-t- il une fonction?
Amitiés
--
JPM


Avatar
JPM
Bonjour,
Merci pour vos réponses. Je vais testé vos remarques.
En fait, j'ai créer un planning sous sur 12 mois avec TOUS LES jours de
l'année. les cellules sont fusionnées par mois (1ére ligne) et par semaines
(2eme ligne). Il comporte x lignes. Ce Flexgrid contient plus de 370
colonnes. Je voudrais qu'à l'ouverture du form, que soit affiché la cellule
correspondant au mois actif (issu de la fonction Now()) sans que
l'utilisateur fasse défiler le grid jusqu'à cette colonne.
Amitiés
--
JPM
Avatar
Driss HANIB
salut JPM

alors regarde préférentiellement (pour la ligne) la propriété que t'a
indiqué Jacques93
pour la colonne a priori je ne vois pas car je n'ai pas utilisé..
je cherche..

Driss
"JPM" a écrit dans le message de
news:
Bonjour,
Merci pour vos réponses. Je vais testé vos remarques.
En fait, j'ai créer un planning sous sur 12 mois avec TOUS LES jours de
l'année. les cellules sont fusionnées par mois (1ére ligne) et par


semaines
(2eme ligne). Il comporte x lignes. Ce Flexgrid contient plus de 370
colonnes. Je voudrais qu'à l'ouverture du form, que soit affiché la


cellule
correspondant au mois actif (issu de la fonction Now()) sans que
l'utilisateur fasse défiler le grid jusqu'à cette colonne.
Amitiés
--
JPM





Avatar
JPM
Bonsoir,
Ok. Je vais "voir" de ce côté. Un grand merci d'avance à vous deux.
Amitiés
--
JPM


"Driss HANIB" a écrit :

salut JPM

alors regarde préférentiellement (pour la ligne) la propriété que t'a
indiqué Jacques93
pour la colonne a priori je ne vois pas car je n'ai pas utilisé..
je cherche..

Driss
"JPM" a écrit dans le message de
news:
> Bonjour,
> Merci pour vos réponses. Je vais testé vos remarques.
> En fait, j'ai créer un planning sous sur 12 mois avec TOUS LES jours de
> l'année. les cellules sont fusionnées par mois (1ére ligne) et par
semaines
> (2eme ligne). Il comporte x lignes. Ce Flexgrid contient plus de 370
> colonnes. Je voudrais qu'à l'ouverture du form, que soit affiché la
cellule
> correspondant au mois actif (issu de la fonction Now()) sans que
> l'utilisateur fasse défiler le grid jusqu'à cette colonne.
> Amitiés
> --
> JPM
>
>
>





Avatar
Jacques93
Bonjour JPM,
JPM a écrit :
Bonsoir,
Ok. Je vais "voir" de ce côté. Un grand merci d'avance à vous deux.
Amitiés



Un petit exemple avec mois/année, diont tu peux peut être t'inspirer.
Necessite un MSFlexgrid et un CommanButton :

Option Explicit
Dim AnDepart As Integer
Dim AnFin As Integer

Private Sub Command1_Click()
Dim lig As Integer

With Me.MSFlexGrid1
lig = ((Year(Now) - AnDepart - 1) * 12) + Month(Now)
.TopRow = lig
.Row = lig
.Col = 1
.SetFocus
End With
End Sub

Private Sub Form_Load()
Dim aa As Integer, mm As Integer

AnDepart = 2003
AnFin = 2012
With Me.MSFlexGrid1
.Rows = (AnFin - AnDepart) * 12 + 1
.Cols = 2

.Col = 1
.Row = 0
.CellAlignment = flexAlignCenterCenter
.ColWidth(1) = 1600
.CellFontBold = True
.TextMatrix(0, 1) = "Mois/an"
For aa = 1 To AnFin - AnDepart
For mm = 1 To 12
.Row = ((aa - 1) * 12) + mm

' numéro de ligne
.Col = 0
.CellFontBold = True
.TextMatrix(((aa - 1) * 12) + mm, 0) = .Row

' Date mois/an
.TextMatrix(((aa - 1) * 12) + mm, 1) = _
Format(CDate("01/" & mm & "/" & _
Format(aa + AnDepart, "0000")), "mmmm yyyy")

' Format
.Row = ((aa - 1) * 12) + mm
.Col = 1
.CellAlignment = flexAlignRightCenter
Next
Next
End With
End Sub

--
Cordialement,

Jacques.
Avatar
JPM
Bonjour,
Un grand merci Jacques93. Je teste ça et je te tiens au courant
Amitiés
--
JPM
Avatar
JPM
Bonjour,
Encore merci pour ce code. Malheureusement, c'est une colonne cachée dans
une partie du grid que je désire affichée. Pas une ligne. Il n'existe pas de
fonction équivalente à TopRow pour gérer un déplacement sur des colonnes.
J'ai trouvée une astuce qui consiste à réduire la largeur des colonnes
pécédentes à la colonne recherchée à 0. Ensuite, je remets ces colonnes à
leur largeur normale par code associé à un bouton. La vitesse est très
acceptable du fait que tout ce processus se fait avec le Grid en invisible.
Bref : ca me convient parfaitement! Merci à tous pour vos remarques et vos
interventions.
Amitiés
--
JPM
Avatar
Jacques93
Bonjour JPM
JPM a écrit :
Bonjour,
Encore merci pour ce code. Malheureusement, c'est une colonne cachée dans
une partie du grid que je désire affichée. Pas une ligne. Il n'existe pas de
fonction équivalente à TopRow pour gérer un déplacement sur des colonnes.
J'ai trouvée une astuce qui consiste à réduire la largeur des colonnes
pécédentes à la colonne recherchée à 0. Ensuite, je remets ces colonnes à
leur largeur normale par code associé à un bouton. La vitesse est très
acceptable du fait que tout ce processus se fait avec le Grid en invisible.
Bref : ca me convient parfaitement! Merci à tous pour vos remarques et vos
interventions.
Amitiés



Et la propriété LeftCol, a quoi qu'elle sert ? ;-)

Extrait de l'aide :

Returns or sets the left-most visible non fixed column in MSFLEXGRID

C'est l'équivalent de TopRow pour les colonnes ...

--
Cordialement,

Jacques.
Avatar
JPM
Bonsoir,
Et bien encore MERCI, Jacques. J'ignorais cette fonction et de plus, depuis
le passage sous Vista, ma biblio d'aide VB est altérée. Quasiment plus de
d'aide. Cette fonction est tout simplement LA bonne! LeftCol! Ca marche
impec....
Encore merci
Amitiés
--
JPM