begin process at 2012 02 12 15:59:14
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > MSHFLEXGRID : GRILLE DE DONNÉES UTILISABLE DANS VB6

MSHFLEXGRID : GRILLE DE DONNÉES UTILISABLE DANS VB6


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Classé sous :grille, excel, mshflexgrid, vb6, tableur Niveau :Débutant Date de création :12/04/2007 Vu :20 679

Auteur : Woisard

Ecrire un message privé
Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

 Description

Ce code est un ensemble de petites procédures utilisant le contrôle MSHFlexGrid sous VB6. Cette grille MSHFlexGrid s'apparente à une grille comme celle que l'on peut voir dans une feuille Excel. Son utilisation n'étant pas si simple, j'ai publié ces quelques bouts de codes en pensant que cela peut être un bon point de départ si vous souhaitez l'utiliser.

Source

  • MSHFlexGrid : grille de données sous VB6
  • --> ici la MSHFlexGrid a été nommée Grille ( tout simplement )
  • 1) Fonction à utiliser pour la mise à jour de la grille
  • ' Cette fonction permet de traiter les données plus facilement
  • Function faIndex(row As Integer, col As Integer) As Long
  • faIndex = row * Grille.Cols + col
  • End Function
  • 2) Gestion de l’apparence d’une Grille de 21 lignes et 5 colonnes :
  • ' Largeur de la Grille
  • Grille.Width = 4120
  • '’ Largeur des colonnes de la Grille ( ici la Grille comporte 5 colonnes )
  • Grille.ColWidth(0) = 500
  • Grille.ColWidth(1) = 1400
  • Grille.ColWidth(2) = 1400
  • Grille.ColWidth(3) = 500
  • Grille.ColWidth(4) = 0
  • ' Numéros de lignes de la Grille ( ici la Grille comporte 21 lignes )
  • For X = 1 To 20
  • Grille.row = X
  • Grille.col = 0
  • Grille.CellAlignment = flexAlignRightTop
  • Grille.TextArray(faIndex(Grille.row, Grille.col)) = X
  • Next X
  • ' Indique les titres de la Grille
  • Grille.row = 0
  • Grille.col = 0
  • Grille.CellAlignment = flexAlignCenterTop
  • Grille.TextArray(faIndex(Grille.row, Grille.col)) = "Ligne"
  • Grille.row = 0
  • Grille.col = 1
  • Grille.CellAlignment = flexAlignCenterTop
  • Grille.TextArray(faIndex(Grille.row, Grille.col)) = "Champs table"
  • Grille.row = 0
  • Grille.col = 2
  • Grille.CellAlignment = flexAlignCenterTop
  • Grille.TextArray(faIndex(Grille.row, Grille.col)) = "Variables"
  • Grille.row = 0
  • Grille.col = 3
  • Grille.CellAlignment = flexAlignCenterTop
  • Grille.TextArray(faIndex(Grille.row, Grille.col)) = "N-S"
  • ' Apparence de départ de la grille
  • Grille.Enabled = False ' ou True si on veut qu’elle soit active à l'ouverture
  • ' Voir QbColor pour les codes de couleur
  • Grille.BackColorBkg = QBColor(8) ' 8 = Couleur grise
  • Grille.BackColorFixed = QBColor(8) ' 8 = Couleur grise
  • Grille.BackColorSel = QBColor(8) ' 8 = Couleur grise
  • ' Supprime la sélection par colonne ou par ligne
  • Grille.AllowBigSelection = False
  • 3) Mise à jour des données dans la grille ( à placer sur l'évènement KeyPress ) :
  • Private Sub Grille_KeyPress(KeyAscii As Integer)
  • Dim C As Integer, R As Integer
  • ' Désactive le clignotement du contrôle
  • Grille.Redraw = False
  • ' Repère la cellule active
  • R = Grille.RowSel
  • C = Grille.ColSel
  • ' Valide la saisie au clavier
  • If KeyAscii = 27 Then
  • Grille.TextArray(faIndex(R, C)) = ""
  • ElseIf Grille.TextArray(faIndex(R, C)) <> "" And KeyAscii = 8 Then
  • Grille.TextArray(faIndex(R, C)) = Mid(Grille.TextArray(faIndex(R, C)), 1, Len(Grille.TextArray(faIndex(R, C))) - 1)
  • ElseIf Grille.TextArray(faIndex(R, C)) <> "" And KeyAscii = 13 Then
  • Grille.TextArray(faIndex(R, C)) = Grille.TextArray(faIndex(R, C)) & Chr(10) & Chr(KeyAscii)
  • Else
  • Grille.TextArray(faIndex(R, C)) = Grille.TextArray(faIndex(R, C)) & Chr(KeyAscii)
  • End If
  • ' Replace le clignotement du contrôle
  • Grille.Redraw = True
  • End Sub
  • ' Une autre méthode... :
  • Dim strTexte
  • strTexte = MSFlexGrid1.Text
  • If KeyAscii = 8 Then
  • 'Touche d’effacement
  • If Len(strTexte) > 0 Then MSFlexGrid1.Text = Left(strTexte, Len(strTexte) - 1)
  • ElseIf KeyAscii <> 13 Then
  • MSFlexGrid1.Text = strTexte & Chr(KeyAscii)
  • End If
  • 4) Repérer la cellule active dans la grille :
  • Private Sub Grille_EnterCell()
  • Dim iRow, iCol As Integer
  • ' Coordonnées de la cellule active
  • iRow = Grille.row
  • iCol = Grille.col
  • ' Réinitialise les cellules ( fond blanc )
  • For X = 1 To 20
  • For Y = 1 To 4
  • Grille.row = X
  • Grille.col = Y
  • Grille.CellBackColor = QBColor(15) ' Couleur blanche
  • Next Y
  • Next X
  • ' Repérage de la cellule active ( fond jaune )
  • Grille.row = iRow
  • Grille.col = iCol
  • Grille.FocusRect = flexFocusHeavy ' Double trait autour de le cellule active
  • 'Grille.FocusRect = flexFocusLight ' Simple trait autour de le cellule active
  • Grille.CellBackColor = QBColor(14) ' Couleur jaune
  • End Sub
  • ' Réinitialise les cellules de la grille lorsqu'on passe à un autre contrôle
  • Private Sub Grille_LostFocus()
  • ' Réinitialise les cellules ( fond blanc )
  • For X = 1 To 20
  • For Y = 1 To 4
  • Grille.row = X
  • Grille.col = Y
  • Grille.CellBackColor = QBColor(15) ' Couleur blanche
  • Next Y
  • Next X
  • End Sub
  • 5) N'autoriser la sélection que d'une seule ligne dans une MSFlexgrid :
  • Private Sub MSFlexGrid1_SelChange()
  • MSFlexGrid1.RowSel = MSFlexGrid1.Row
  • End Sub
  • 6) Modifier la largeur des colonnes d'une MSFlexgrid en fonction de la longueur du texte :
  • Copiez ce code dans un module standard :
  • Private Type Size
  • cx As Long
  • cy As Long
  • End Type
  • Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" _
  • (ByVal hdc As Long, ByVal lpsz As String, _
  • ByVal cbString As Long, lpSize As Size) As Long
  • Public Sub ResizeColumns(hdc As Long, flexgrid As MSFlexGrid)
  • Dim idxRow As Long, idxCol As Long, lngMax As Long
  • Dim texte As String, taille As Size
  • With flexgrid
  • ' Parcoure les colonnes
  • For idxCol = 0 To .Cols - 1
  • lngMax = 0
  • ' Parcoure les lignes
  • For idxRow = 0 To .Rows - 1
  • texte = .TextMatrix(idxRow, idxCol)
  • ' Met la taille du texte de la cellule en pixels dans taille
  • GetTextExtentPoint32 hdc, texte, Len(texte), taille
  • ' lngMax est la longueur du texte le plus long dans cette colonne
  • If taille.cx > lngMax Then lngMax = taille.cx
  • Next
  • ' Met lngMax en twips en ajoutant 10 pixels pour les marges
  • If lngMax > 0 Then lngMax = (lngMax + 10) * Screen.TwipsPerPixelX
  • ' Applique la largeur de colonne si besoin
  • If lngMax > .ColWidth(idxCol) Then .ColWidth(idxCol) = lngMax
  • Next
  • End With
  • End Sub
  • Voici comment appeler la procédure ResizeColumns :
  • vb ResizeColumns Me.hdc, MSFlexGrid1
  • La procédure attend un contexte de périphérique en premier paramètre. Le contexte de périphérique est renvoyé par la propriété hdc. Si la form et la MSFlexGrid ont la même police, vous pouvez passer le contexte de périphérique de la form. Sinon vous pouvez ajouter un PictureBox invisible qui aura la même police que celle de la MSFlexgrid et passer sa propriété hdc en premier paramètre.
  • 7) Exporter le contenu d'une msflexgrid dans un fichier :
  • Cette fonction exporte le contenu de la msflexgrid passée en paramètre dans le fichier strFileName.
  • Les colonnes sont séparées par le caractère passé dans le troisième paramètre.
  • Public Function ExportGridToFile(Mygrid As MSFlexGrid, Byval strFileName as string, _
  • Optional ByVal strSep As String = vbTab) As Boolean
  • Dim intFreeFile As Integer ' Numéro du fichier
  • Dim intCol As Integer, intRow As Integer ' Indices de ligne et colonne de W
  • Dim ligne As String ' La ligne à écrire dans le fichier
  • ' Gestion des éventuelles erreurs
  • On Error GoTo ExportGridToFile_ERR
  • ' Prend le prochain numéro de fichier
  • intFreeFile = FreeFile
  • ' Ouvre le fichier en bloquant son accès aux autres applications
  • Open strFileName For Output Access Write Lock Read Write As #intFreeFile
  • With Mygrid
  • ' Pour chaque ligne
  • For intRow = .FixedRows To .Rows - 1
  • ligne = ""
  • ' Pour chaque colonne
  • For intCol = .FixedCols To .Cols - 1
  • ' Ajoute la valeur de la cellule
  • ligne = ligne & .TextMatrix(intRow, intCol) & strSep
  • Next intCol
  • ' Enlève le séparateur final
  • If strSep <> "" Then ligne = Left(ligne, Len(ligne) - 1)
  • Print #intFreeFile, ligne
  • Next intRow
  • End With
  • ' Valide le bon fonctionnement de la fonction
  • ExportGridToFile = True
  • ExportGridToFile_FIN:
  • Close #intFreeFile + 1
  • Exit Function
  • ExportGridToFile_ERR:
  • ExportGridToFile = False
  • Resume ExportGridToFile_FIN
  • End Function
  • 8) Constantes pour CellAlignment ( propriété de MSHFlexGrid ) :
  • Constante Valeur Description
  • --------------------------------------------------------------------------------
  • flexAlignLeftTop 0 Le contenu de la cellule est aligné à gauche, en haut.
  • flexAlignLeftCenter 1 Le contenu de la cellule est aligné à gauche, au centre.
  • Il s’agit de la valeur par défaut pour les chaînes.
  • flexAlignLeftBottom 2 Le contenu de la cellule est aligné à gauche, en bas.
  • flexAlignCenterTop 3 Le contenu de la cellule est centré, en haut.
  • flexAlignCenterCenter 4 Le contenu de la cellule est centré, au centre.
  • flexAlignCenterBottom 5 Le contenu de la cellule est centré, en bas.
  • flexAlignRightTop 6 Le contenu de la cellule est aligné à droite, en haut.
  • flexAlignRightCenter 7 Le contenu de la cellule est aligné à droite, au centre.
  • Il s’agit de la valeur par défaut pour les chiffres.
  • flexAlignRightBottom 8 Le contenu de la cellule est aligné à droite, en bas.
  • flexAlignGeneral 9 Le contenu de la cellule est aligné de manière courante.
  • Il s’agit de « à gauche, au centre » pour les chaînes et « à droite,
  • au centre » pour les chiffres.
MSHFlexGrid : grille de données sous VB6
--> ici la MSHFlexGrid a été nommée Grille ( tout simplement )

1) Fonction à utiliser pour la mise à jour de la grille

    ' Cette fonction permet de traiter les données plus facilement
    Function faIndex(row As Integer, col As Integer) As Long
        faIndex = row * Grille.Cols + col
    End Function

2) Gestion de l’apparence d’une Grille de 21 lignes et 5 colonnes :

    ' Largeur de la Grille
    Grille.Width = 4120
    '’ Largeur des colonnes de la Grille ( ici la Grille comporte 5 colonnes )
    Grille.ColWidth(0) = 500
    Grille.ColWidth(1) = 1400
    Grille.ColWidth(2) = 1400
    Grille.ColWidth(3) = 500
    Grille.ColWidth(4) = 0
    ' Numéros de lignes de la Grille ( ici la Grille comporte 21 lignes )
    For X = 1 To 20
        Grille.row = X
        Grille.col = 0
        Grille.CellAlignment = flexAlignRightTop
        Grille.TextArray(faIndex(Grille.row, Grille.col)) = X
    Next X
    ' Indique les titres de la Grille
    Grille.row = 0
    Grille.col = 0
    Grille.CellAlignment = flexAlignCenterTop
    Grille.TextArray(faIndex(Grille.row, Grille.col)) = "Ligne"
    Grille.row = 0
    Grille.col = 1
    Grille.CellAlignment = flexAlignCenterTop
    Grille.TextArray(faIndex(Grille.row, Grille.col)) = "Champs table"
    Grille.row = 0
    Grille.col = 2
    Grille.CellAlignment = flexAlignCenterTop
    Grille.TextArray(faIndex(Grille.row, Grille.col)) = "Variables"
    Grille.row = 0
    Grille.col = 3
    Grille.CellAlignment = flexAlignCenterTop
    Grille.TextArray(faIndex(Grille.row, Grille.col)) = "N-S"

    ' Apparence de départ de la grille
    Grille.Enabled = False ' ou True si on veut qu’elle soit active à l'ouverture
    ' Voir QbColor pour les codes de couleur
    Grille.BackColorBkg = QBColor(8)    ' 8 = Couleur grise
    Grille.BackColorFixed = QBColor(8)  ' 8 = Couleur grise
    Grille.BackColorSel = QBColor(8)    ' 8 = Couleur grise

    ' Supprime la sélection par colonne ou par ligne
    Grille.AllowBigSelection = False

3) Mise à jour des données dans la grille ( à placer sur l'évènement KeyPress ) :

    Private Sub Grille_KeyPress(KeyAscii As Integer)
        Dim C As Integer, R As Integer
        ' Désactive le clignotement du contrôle
        Grille.Redraw = False
        ' Repère la cellule active
        R = Grille.RowSel
        C = Grille.ColSel
        ' Valide la saisie au clavier
        If KeyAscii = 27 Then
           Grille.TextArray(faIndex(R, C)) = ""
       ElseIf Grille.TextArray(faIndex(R, C)) <> "" And KeyAscii = 8 Then
           Grille.TextArray(faIndex(R, C)) = Mid(Grille.TextArray(faIndex(R, C)), 1, Len(Grille.TextArray(faIndex(R, C))) - 1)
       ElseIf Grille.TextArray(faIndex(R, C)) <> "" And KeyAscii = 13 Then
           Grille.TextArray(faIndex(R, C)) = Grille.TextArray(faIndex(R, C)) & Chr(10) & Chr(KeyAscii)
       Else
           Grille.TextArray(faIndex(R, C)) = Grille.TextArray(faIndex(R, C)) & Chr(KeyAscii)
       End If
       ' Replace le clignotement du contrôle
       Grille.Redraw = True
   End Sub

   ' Une autre méthode... :

      Dim strTexte
      strTexte = MSFlexGrid1.Text
      If KeyAscii = 8 Then 
          'Touche d’effacement
          If Len(strTexte) > 0 Then MSFlexGrid1.Text = Left(strTexte, Len(strTexte) - 1) 
      ElseIf KeyAscii <> 13 Then
          MSFlexGrid1.Text = strTexte & Chr(KeyAscii)
      End If

4) Repérer la cellule active dans la grille :

    Private Sub Grille_EnterCell()
        Dim iRow, iCol As Integer
        ' Coordonnées de la cellule active
        iRow = Grille.row
        iCol = Grille.col
        ' Réinitialise les cellules ( fond blanc )
        For X = 1 To 20
            For Y = 1 To 4
                Grille.row = X
                Grille.col = Y
                Grille.CellBackColor = QBColor(15) ' Couleur blanche
            Next Y
        Next X
        ' Repérage de la cellule active ( fond jaune )
        Grille.row = iRow
        Grille.col = iCol
        Grille.FocusRect = flexFocusHeavy ' Double trait autour de le cellule active
        'Grille.FocusRect = flexFocusLight ' Simple trait autour de le cellule active
        Grille.CellBackColor = QBColor(14) ' Couleur jaune
    End Sub

    ' Réinitialise les cellules de la grille lorsqu'on passe à un autre contrôle
    Private Sub Grille_LostFocus()
        ' Réinitialise les cellules ( fond blanc )
        For X = 1 To 20
            For Y = 1 To 4
                Grille.row = X
                Grille.col = Y
                Grille.CellBackColor = QBColor(15) ' Couleur blanche
            Next Y
        Next X
    End Sub

5) N'autoriser la sélection que d'une seule ligne dans une MSFlexgrid :

    Private Sub MSFlexGrid1_SelChange()
        MSFlexGrid1.RowSel = MSFlexGrid1.Row
    End Sub

6) Modifier la largeur des colonnes d'une MSFlexgrid en fonction de la longueur du texte :

Copiez ce code dans un module standard :

    Private Type Size
        cx As Long
        cy As Long
    End Type

    Private Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" _
        (ByVal hdc As Long, ByVal lpsz As String, _
        ByVal cbString As Long, lpSize As Size) As Long

    Public Sub ResizeColumns(hdc As Long, flexgrid As MSFlexGrid)
        Dim idxRow As Long, idxCol As Long, lngMax As Long
        Dim texte As String, taille As Size
        With flexgrid
            ' Parcoure les colonnes
            For idxCol = 0 To .Cols - 1
                lngMax = 0
                ' Parcoure les lignes
                For idxRow = 0 To .Rows - 1
                    texte = .TextMatrix(idxRow, idxCol)
                    ' Met la taille du texte de la cellule en pixels dans taille
                    GetTextExtentPoint32 hdc, texte, Len(texte), taille
                    ' lngMax est la longueur du texte le plus long dans cette colonne
                    If taille.cx > lngMax Then lngMax = taille.cx
                Next
                ' Met lngMax en twips en ajoutant 10 pixels pour les marges
                If lngMax > 0 Then lngMax = (lngMax + 10) * Screen.TwipsPerPixelX
                ' Applique la largeur de colonne si besoin
                If lngMax > .ColWidth(idxCol) Then .ColWidth(idxCol) = lngMax
            Next
        End With
    End Sub

Voici comment appeler la procédure ResizeColumns :

    vb ResizeColumns Me.hdc, MSFlexGrid1

La procédure attend un contexte de périphérique en premier paramètre. Le contexte de périphérique est renvoyé par la propriété hdc. Si la form et la MSFlexGrid ont la même police, vous pouvez passer le contexte de périphérique de la form. Sinon vous pouvez ajouter un PictureBox invisible qui aura la même police que celle de la MSFlexgrid et passer sa propriété hdc en premier paramètre. 

7) Exporter le contenu d'une msflexgrid dans un fichier : 

Cette fonction exporte le contenu de la msflexgrid passée en paramètre dans le fichier strFileName. 
Les colonnes sont séparées par le caractère passé dans le troisième paramètre.

    Public Function ExportGridToFile(Mygrid As MSFlexGrid, Byval strFileName as string, _
        Optional ByVal strSep As String = vbTab) As Boolean
        Dim intFreeFile As Integer               ' Numéro du fichier
        Dim intCol As Integer, intRow As Integer ' Indices de ligne et colonne de W
        Dim ligne As String                      ' La ligne à écrire dans le fichier
        ' Gestion des éventuelles erreurs
        On Error GoTo ExportGridToFile_ERR
        ' Prend le prochain numéro de fichier
        intFreeFile = FreeFile
        ' Ouvre le fichier en bloquant son accès aux autres applications
        Open strFileName For Output Access Write Lock Read Write As #intFreeFile
        With Mygrid
            ' Pour chaque ligne
            For intRow = .FixedRows To .Rows - 1
                ligne = ""
                ' Pour chaque colonne
                For intCol = .FixedCols To .Cols - 1
                    ' Ajoute la valeur de la cellule
                    ligne = ligne & .TextMatrix(intRow, intCol) & strSep
                Next intCol
                ' Enlève le séparateur final
                If strSep <> "" Then ligne = Left(ligne, Len(ligne) - 1)
                Print #intFreeFile, ligne
            Next intRow
        End With
        ' Valide le bon fonctionnement de la fonction
        ExportGridToFile = True

        ExportGridToFile_FIN:
            Close #intFreeFile + 1
            Exit Function

        ExportGridToFile_ERR:
            ExportGridToFile = False
            Resume ExportGridToFile_FIN
    End Function
 
8) Constantes pour CellAlignment ( propriété de MSHFlexGrid ) :

Constante          Valeur      Description
-------------------------------------------------------------------------------- 
flexAlignLeftTop      0   Le contenu de la cellule est aligné à gauche, en haut. 

flexAlignLeftCenter   1   Le contenu de la cellule est aligné à gauche, au centre. 
                          Il s’agit de la valeur par défaut pour les chaînes. 

flexAlignLeftBottom   2   Le contenu de la cellule est aligné à gauche, en bas. 

flexAlignCenterTop    3   Le contenu de la cellule est centré, en haut. 

flexAlignCenterCenter 4   Le contenu de la cellule est centré, au centre. 

flexAlignCenterBottom 5   Le contenu de la cellule est centré, en bas. 

flexAlignRightTop     6   Le contenu de la cellule est aligné à droite, en haut. 

flexAlignRightCenter  7   Le contenu de la cellule est aligné à droite, au centre. 
                          Il s’agit de la valeur par défaut pour les chiffres. 

flexAlignRightBottom  8   Le contenu de la cellule est aligné à droite, en bas. 

flexAlignGeneral      9   Le contenu de la cellule est aligné de manière courante. 
                          Il s’agit de « à gauche, au centre » pour les chaînes et « à droite, 
                          au centre » pour les chiffres.



 Sources du même auteur

Source avec Zip BASE DE DONNÉES ACCESS VIA DAO EN VB6 ( EXEMPLE COMPLET )

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture JEUX DE VERITÉ ET DE FIDELITÉ par billatosco
Source avec Zip IMAGELOARDER par vkitumaini
Source avec Zip Source avec une capture Source .NET (Dotnet) CREER UN CALENDRIER DE POCHE par Le Pivert
Source avec Zip RECHERCHE D'UN ENREGISTREMENT DANS UNE DATATABLE ET POSITION... par erdna

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) EXPORTER LES IMAGES DE WORD ET D' EXCEL par Le Pivert
Source avec Zip Source avec une capture MANIPULER LES FENETRES ENFANT D'EXCEL par bigfish_le vrai
Source avec Zip Source avec une capture Source .NET (Dotnet) NOMBRE EN LETTRES par lermite222
Source avec Zip Source avec une capture TRADUCTEUR VB6.VBP EN VB5.VBP par joro
Source avec Zip Source avec une capture Source .NET (Dotnet) VBXL : PROGRAMMATION EFFICACE D'EXCEL EN VBA, VB6 ET VB .NET par Patrice99

Commentaires et avis

Commentaire de Sergi2007 le 14/04/2007 23:28:56

interessant ton code je m'en inspirerai.

Commentaire de lermite222 le 16/04/2007 11:56:38

Très, très bonne explication pour ceux qui ne connaisse pas, ou peu, le MSHFlexGrid.
Une toute petite précision sur
  ' Désactive le clignotement du contrôle
        Grille.Redraw = False

Connaissant le grid, j'ai très bien compris ce que tu veux dire, mais pour un débutant mieux vaudrait dire
Empêche Excel d'actualiser la grille tant que <> true
empêchant le "clignotement" de l'affichage de la feuille pendant les modifications.
A part cette petite chose, rien à dire
A+
louis

Commentaire de mannoula_2007 le 17/05/2007 09:01:10

salut,

c'est vraiment interessant le code,
mais l'interface comment faire ?

Commentaire de renardargente le 24/03/2010 11:10:45

Je vais peut-être te paraitre idiot mais je ne comprend pas du tout ton explication sur la manière d'appeler la procédure "ResizeColumns".
Ou mettons le ligne d'appelle "vb ResizeColumns Me.hdc, MSFlexGrid1"?

Commentaire de lermite222 le 24/03/2010 17:07:27

Il ne faut pas le vb devant.
Tu peu éventuellement mettre l'appel dans un bouton "Ajuster colonnes."
Donc, simplement
Private Sub AjusteColonne_Click()
    ResizeColumns Me.hdc, MSFlexGrid1
End Sub

Commentaire de renardargente le 26/03/2010 12:44:54

Merci pour ta réponse "lermite222" après avoir pioché le sujet j'en suis arrivé a la même solution que toi, sauf que le débutant que je suis, a pataugé quelques temps avant de comprend que l'objet « MsFlexGrid » a changé plusieurs fois de nom entre le 1 ere exemple et le dernier :
---------------------------------------------------------------------------
Nom de l'objet  MsFlexGrid    |                         Exemple
---------------------------------------------------------------------------
Grille                        |    1 à 3, jusqu'à "Une autre méthode... :"
MSFlexGrid1                   |    de "Une autre méthode... :" jusqu' 4
Grille                        |    4
MSFlexGrid1                   |    5
flexgrid                      |    6
Mygrid                        |    7
---------------------------------------------------------------------------
Ce n'est pas pour faciliter la compréhension.
D'autre par je n'ai pas compris a quoi serre ici l'utilisation de la librairie « gdi32 »  si tu as une info je suis preneur! Merci.

Commentaire de lermite222 le 26/03/2010 14:07:24

"gdi32" c'est la librairie (dll) qui contient les fonctions/routines
ou si tu veux, les API.
en fait, quand tu écrit,... Function GetTextExtentPoint32 Lib "gdi32"..
Tu dis à windows, je veux atteindre la fonction GetTextExtentPoint32 qui se trouve dans la libraire gdi32
A+

Commentaire de renardargente le 26/03/2010 18:06:38

Merci encore "lermite222", tu aurais une idée pour savoir ou l'ont trouve de telles informations sur les "API" car savoir que dans la librairie "gdi32" il y a une fonction qui s'appelle "GetTextExtentPoint32" qu'elle a besoin de tel et tel argument et qu'elle revoit le nombre de pixel correspondant au nombre de caractère entré, ca ne s'invente pas! J'ai cherché sur google il n'y a que des sites qui te proposent de te fournir les fichiers dll!

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

VB6 et des fichiers Excel 97 [ par Sandro ] Bonjour,Je cherche à ouvrir un fichier Excel 97 avec VB6, pour extraire le contenu de feuilles et de cellules, pour générer un fichier texte avec.Ext- VB6 et Excel 97 [ par Arnaud ] J'ai écrit un projet en VB6 qui va créer des tableaux sous Excel 2000 or je dois faire la même chose avec Excel 97.Mon problème est que le seule référ graph vb6 et excel [ par jraynald ] Je voudrai à partir d'un prog en vb6 allez chercher un graph existant dansun fichier excel et le sauvegarder en .gif .jraynald Faire dessiner dans Excel depuis VB6 [ par bcip ] Je crée une application cliente Excel et j'ai besoin de dessiner un cercle ou une Ellipse dans ma feuille avant de faire afficher Excel.Je fais commen Utiliser Excel sous VB6 [ par bill ] Salut!Quelqu'un pourrait m'expliquer comment faire pour ouvrir un fichier excel sous vb6??J'ai bien essayé le code suivant:dim xlOpen as ObjectSet xl Besoin d'aide avec MSHFlexGrid en VB6 ? [ par Pixel ] Je recherche un exemple d'utilisation d'un MSHFlexGrid (à partir de données d'une base Access).Alors si vous avez un bout de code à me passer, ou une Solveur d'excel et VB6 [ par Manu ] Bonjour à tous, J'ai un petit problème que, je suis sûr, vous pourrez m'aider à résoudre.JE cherche à utiliser le olveur d'excel dans visual basic 6.E je cherche ocx pour excel et vb6 [ par pin-pon1 ] je cherche un ocx me permettant d'utiliser dans mon applications les fonctions d'excel 2000 ou 97je pensais qu'avec le pack office il ya avait des ocx Exécuter un module VBA d'excel à partir de VB6 URGENT [ par Karine ] Je n'arrive pas à trouver une instruction qui me permette de déclencher un module VBA dans un fichier excel depuis VB6.Je voudrais savoir de une si c' Isertion d'un tableur excel...URGENT [ par frederique ] Je suis passée par Projet/Références/Microsoft Excel 9.0 objet library pour accéder à un tableur Excel que je pourrais insérer dans mon programme.Malh


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales