Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille
du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des
colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule
colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour N, N a écrit :
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Que mets tu dans FormatString ?
-- Cordialement,
Jacques.
Bonjour N,
N a écrit :
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille
du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des
colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule
colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Que mets tu dans FormatString ?
-- Cordialement,
Jacques.
John Smith
Salut,
Moi j'utilise cette fonction (pas codé par moi) marche no1
Public Sub SetGridColumnWidth(grd As MSFlexGrid) 'params:ms flexgrid control 'purpose:sets the column widths to the 'lengths of the longest string in the co ' lumn 'requirements: the grid must have the sa ' me 'font as the underlying form Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lngLongestLen As Long Dim sLongestString As String Dim lngColWidth As Long Dim szCellText As String
With grd
For OuterLoopCount = 0 To .Cols - 1 sLongestString = "" lngLongestLen = 0
For InnerLoopCount = 0 To .Rows - 1 szCellText = .TextMatrix(InnerLoopCount, OuterLoopCount)
If Len(szCellText) > lngLongestLen Then lngLongestLen = Len(szCellText) sLongestString = szCellText End If
Next
lngColWidth = .Parent.TextWidth(sLongestString) 'add 100 for more readable spreadsheet .ColWidth(OuterLoopCount) = lngColWidth + 220
Next
End With End Sub "N" wrote in message news:440c4c07$0$27065$
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Christian.
Salut,
Moi j'utilise cette fonction (pas codé par moi) marche no1
Public Sub SetGridColumnWidth(grd As MSFlexGrid)
'params:ms flexgrid control
'purpose:sets the column widths to the
'lengths of the longest string in the co
' lumn
'requirements: the grid must have the sa
' me
'font as the underlying form
Dim InnerLoopCount As Long
Dim OuterLoopCount As Long
Dim lngLongestLen As Long
Dim sLongestString As String
Dim lngColWidth As Long
Dim szCellText As String
With grd
For OuterLoopCount = 0 To .Cols - 1
sLongestString = ""
lngLongestLen = 0
For InnerLoopCount = 0 To .Rows - 1
szCellText = .TextMatrix(InnerLoopCount, OuterLoopCount)
If Len(szCellText) > lngLongestLen Then
lngLongestLen = Len(szCellText)
sLongestString = szCellText
End If
Next
lngColWidth = .Parent.TextWidth(sLongestString)
'add 100 for more readable spreadsheet
.ColWidth(OuterLoopCount) = lngColWidth + 220
Next
End With
End Sub
"N" <pasdemail@marchepas.com> wrote in message
news:440c4c07$0$27065$626a54ce@news.free.fr...
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la
taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune
des colonnes de mon flexgrid et appelé la propriété, le résultat donne une
seule colonne de redimensionnée la colonne 0 qui est en plus une colonne
fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Moi j'utilise cette fonction (pas codé par moi) marche no1
Public Sub SetGridColumnWidth(grd As MSFlexGrid) 'params:ms flexgrid control 'purpose:sets the column widths to the 'lengths of the longest string in the co ' lumn 'requirements: the grid must have the sa ' me 'font as the underlying form Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lngLongestLen As Long Dim sLongestString As String Dim lngColWidth As Long Dim szCellText As String
With grd
For OuterLoopCount = 0 To .Cols - 1 sLongestString = "" lngLongestLen = 0
For InnerLoopCount = 0 To .Rows - 1 szCellText = .TextMatrix(InnerLoopCount, OuterLoopCount)
If Len(szCellText) > lngLongestLen Then lngLongestLen = Len(szCellText) sLongestString = szCellText End If
Next
lngColWidth = .Parent.TextWidth(sLongestString) 'add 100 for more readable spreadsheet .ColWidth(OuterLoopCount) = lngColWidth + 220
Next
End With End Sub "N" wrote in message news:440c4c07$0$27065$
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Christian.
N
Bonjour,
Merci beaucoup pour vos réponses.
Je débug en ce moment mon code qui part sur la même idée que le code fournit par John.
Pour répondre à Jacques93, le formatage de ma chaîne est de la suivante : Une boucle parcourt colonne par colonne, cellule par cellule pour ne retenir que la valeur la plus longue de colonne. Le résultat est mis dans la variable Machaine.
Ce qui donne ceci : MaChaine = "^TexteLePlusLongCol1|<TexteLePlusLongCol2" puis j'exécute la propriété MonFlex.FormatString MaChaine
Et au lieu d'agrandir les colonnes il m'inscrit les données de MaChaine, avec les signes de format) dans la colonne fixe et ajoute, cas echéant, des lignes pour ce faire.
Vraiment, qu'est ce que je fais de mal ou ne comprends pas ?
Précision j'ai également tenté le coup sans les signes de format.
Christian.
"John Smith" a écrit dans le message de news: HtZOf.501$
Salut,
Moi j'utilise cette fonction (pas codé par moi) marche no1
Public Sub SetGridColumnWidth(grd As MSFlexGrid) 'params:ms flexgrid control 'purpose:sets the column widths to the 'lengths of the longest string in the co ' lumn 'requirements: the grid must have the sa ' me 'font as the underlying form Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lngLongestLen As Long Dim sLongestString As String Dim lngColWidth As Long Dim szCellText As String
With grd
For OuterLoopCount = 0 To .Cols - 1 sLongestString = "" lngLongestLen = 0
For InnerLoopCount = 0 To .Rows - 1 szCellText = .TextMatrix(InnerLoopCount, OuterLoopCount)
If Len(szCellText) > lngLongestLen Then lngLongestLen = Len(szCellText) sLongestString = szCellText End If
Next
lngColWidth = .Parent.TextWidth(sLongestString) 'add 100 for more readable spreadsheet .ColWidth(OuterLoopCount) = lngColWidth + 220
Next
End With End Sub "N" wrote in message news:440c4c07$0$27065$
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Christian.
Bonjour,
Merci beaucoup pour vos réponses.
Je débug en ce moment mon code qui part sur la même idée que le code fournit
par John.
Pour répondre à Jacques93, le formatage de ma chaîne est de la suivante :
Une boucle parcourt colonne par colonne, cellule par cellule pour ne retenir
que la valeur la plus longue de colonne. Le résultat est mis dans la
variable Machaine.
Ce qui donne ceci :
MaChaine = "^TexteLePlusLongCol1|<TexteLePlusLongCol2"
puis j'exécute la propriété
MonFlex.FormatString MaChaine
Et au lieu d'agrandir les colonnes il m'inscrit les données de MaChaine,
avec les signes de format) dans la colonne fixe et ajoute, cas echéant, des
lignes pour ce faire.
Vraiment, qu'est ce que je fais de mal ou ne comprends pas ?
Précision j'ai également tenté le coup sans les signes de format.
Christian.
"John Smith" <spam@spam.com> a écrit dans le message de news:
HtZOf.501$_b.72689@news20.bellglobal.com...
Salut,
Moi j'utilise cette fonction (pas codé par moi) marche no1
Public Sub SetGridColumnWidth(grd As MSFlexGrid)
'params:ms flexgrid control
'purpose:sets the column widths to the
'lengths of the longest string in the co
' lumn
'requirements: the grid must have the sa
' me
'font as the underlying form
Dim InnerLoopCount As Long
Dim OuterLoopCount As Long
Dim lngLongestLen As Long
Dim sLongestString As String
Dim lngColWidth As Long
Dim szCellText As String
With grd
For OuterLoopCount = 0 To .Cols - 1
sLongestString = ""
lngLongestLen = 0
For InnerLoopCount = 0 To .Rows - 1
szCellText = .TextMatrix(InnerLoopCount, OuterLoopCount)
If Len(szCellText) > lngLongestLen Then
lngLongestLen = Len(szCellText)
sLongestString = szCellText
End If
Next
lngColWidth = .Parent.TextWidth(sLongestString)
'add 100 for more readable spreadsheet
.ColWidth(OuterLoopCount) = lngColWidth + 220
Next
End With
End Sub
"N" <pasdemail@marchepas.com> wrote in message
news:440c4c07$0$27065$626a54ce@news.free.fr...
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la
taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune
des colonnes de mon flexgrid et appelé la propriété, le résultat donne
une seule colonne de redimensionnée la colonne 0 qui est en plus une
colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Je débug en ce moment mon code qui part sur la même idée que le code fournit par John.
Pour répondre à Jacques93, le formatage de ma chaîne est de la suivante : Une boucle parcourt colonne par colonne, cellule par cellule pour ne retenir que la valeur la plus longue de colonne. Le résultat est mis dans la variable Machaine.
Ce qui donne ceci : MaChaine = "^TexteLePlusLongCol1|<TexteLePlusLongCol2" puis j'exécute la propriété MonFlex.FormatString MaChaine
Et au lieu d'agrandir les colonnes il m'inscrit les données de MaChaine, avec les signes de format) dans la colonne fixe et ajoute, cas echéant, des lignes pour ce faire.
Vraiment, qu'est ce que je fais de mal ou ne comprends pas ?
Précision j'ai également tenté le coup sans les signes de format.
Christian.
"John Smith" a écrit dans le message de news: HtZOf.501$
Salut,
Moi j'utilise cette fonction (pas codé par moi) marche no1
Public Sub SetGridColumnWidth(grd As MSFlexGrid) 'params:ms flexgrid control 'purpose:sets the column widths to the 'lengths of the longest string in the co ' lumn 'requirements: the grid must have the sa ' me 'font as the underlying form Dim InnerLoopCount As Long Dim OuterLoopCount As Long Dim lngLongestLen As Long Dim sLongestString As String Dim lngColWidth As Long Dim szCellText As String
With grd
For OuterLoopCount = 0 To .Cols - 1 sLongestString = "" lngLongestLen = 0
For InnerLoopCount = 0 To .Rows - 1 szCellText = .TextMatrix(InnerLoopCount, OuterLoopCount)
If Len(szCellText) > lngLongestLen Then lngLongestLen = Len(szCellText) sLongestString = szCellText End If
Next
lngColWidth = .Parent.TextWidth(sLongestString) 'add 100 for more readable spreadsheet .ColWidth(OuterLoopCount) = lngColWidth + 220
Next
End With End Sub "N" wrote in message news:440c4c07$0$27065$
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Christian.
Jacques93
Bonsoir N, N a écrit :
Bonjour,
Merci beaucoup pour vos réponses.
Je débug en ce moment mon code qui part sur la même idée que le code fournit par John.
Pour répondre à Jacques93, le formatage de ma chaîne est de la suivante : Une boucle parcourt colonne par colonne, cellule par cellule pour ne retenir que la valeur la plus longue de colonne. Le résultat est mis dans la variable Machaine.
Ce qui donne ceci : MaChaine = "^TexteLePlusLongCol1|<TexteLePlusLongCol2" puis j'exécute la propriété MonFlex.FormatString MaChaine
Et au lieu d'agrandir les colonnes il m'inscrit les données de MaChaine, avec les signes de format) dans la colonne fixe et ajoute, cas echéant, des lignes pour ce faire.
Vraiment, qu'est ce que je fais de mal ou ne comprends pas ?
Le code proposé par John Smith semble mieux convenir à ce que tu désires faire.
-- Cordialement,
Jacques.
Bonsoir N,
N a écrit :
Bonjour,
Merci beaucoup pour vos réponses.
Je débug en ce moment mon code qui part sur la même idée que le code fournit
par John.
Pour répondre à Jacques93, le formatage de ma chaîne est de la suivante :
Une boucle parcourt colonne par colonne, cellule par cellule pour ne retenir
que la valeur la plus longue de colonne. Le résultat est mis dans la
variable Machaine.
Ce qui donne ceci :
MaChaine = "^TexteLePlusLongCol1|<TexteLePlusLongCol2"
puis j'exécute la propriété
MonFlex.FormatString MaChaine
Et au lieu d'agrandir les colonnes il m'inscrit les données de MaChaine,
avec les signes de format) dans la colonne fixe et ajoute, cas echéant, des
lignes pour ce faire.
Vraiment, qu'est ce que je fais de mal ou ne comprends pas ?
Je débug en ce moment mon code qui part sur la même idée que le code fournit par John.
Pour répondre à Jacques93, le formatage de ma chaîne est de la suivante : Une boucle parcourt colonne par colonne, cellule par cellule pour ne retenir que la valeur la plus longue de colonne. Le résultat est mis dans la variable Machaine.
Ce qui donne ceci : MaChaine = "^TexteLePlusLongCol1|<TexteLePlusLongCol2" puis j'exécute la propriété MonFlex.FormatString MaChaine
Et au lieu d'agrandir les colonnes il m'inscrit les données de MaChaine, avec les signes de format) dans la colonne fixe et ajoute, cas echéant, des lignes pour ce faire.
Vraiment, qu'est ce que je fais de mal ou ne comprends pas ?
Le code proposé par John Smith semble mieux convenir à ce que tu désires faire.
-- Cordialement,
Jacques.
Gloops
Salut,
Je ne fais pas souvent joujou avec des flexgrid, mais il me semble me rappeler du jour où ça m'est arrivé qu'il faut sélectionner colonne par colonne et modifier le format à mesure.
Si on laisse la sélection dans la première colonne, toutes les commandes de formattage concerneront la première colonne.
A moins que je confonde avec les données ? ____________ N a écrit :
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Christian.
Salut,
Je ne fais pas souvent joujou avec des flexgrid, mais il me semble me
rappeler du jour où ça m'est arrivé qu'il faut sélectionner colonne par
colonne et modifier le format à mesure.
Si on laisse la sélection dans la première colonne, toutes les commandes
de formattage concerneront la première colonne.
A moins que je confonde avec les données ?
____________
N a écrit :
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille
du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des
colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule
colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?
Je ne fais pas souvent joujou avec des flexgrid, mais il me semble me rappeler du jour où ça m'est arrivé qu'il faut sélectionner colonne par colonne et modifier le format à mesure.
Si on laisse la sélection dans la première colonne, toutes les commandes de formattage concerneront la première colonne.
A moins que je confonde avec les données ? ____________ N a écrit :
Bonjour,
Dans une MsFlexGrid, je cherche à mettre la taille des colonnes à la taille du contenu. J'utilise formatString.
Seulement après avoir trouvé la plus grande valeur contenue dans chacune des colonnes de mon flexgrid et appelé la propriété, le résultat donne une seule colonne de redimensionnée la colonne 0 qui est en plus une colonne fixe.
Pourquoi les autres ne sont-elles pas "touchées" ?