Demo d'un MSHFLEXGRID avec cellules Checked et texte

Présentation
Utilisation d'un MSHFLEXGRID, avec des cellules "checkables" (true/false) et du texte.
Téléchargement
0  0 
Téléchargé 40 fois Voir les 26 commentaires
Détails
Catégories : Contrôles
Avatar de Francis MILLET
Rédacteur / Modérateur
Voir tous les téléchargements de l'auteur
Licence : Non renseignée
Date de mise en ligne : 14 novembre 2010




Avatar de ProgElecT ProgElecT - Rédacteur/Modérateur https://www.developpez.com
le 23/06/2007 à 22:00
Code : Sélectionner tout
    Set wbExcel = appExcel.Workbooks.Open(App.Path + "\B2D\B2D_VCT_2007.xls")
Il est preferable d'utiliser le & plutôt que le + quand il s'ajit du litéral.
Tout laisse penser que List1 n'existe pas, il a peut être été renommé ?
Avatar de RuDaï KiRi RuDaï KiRi - Futur Membre du Club https://www.developpez.com
le 23/06/2007 à 22:09
Bonsoir ProgElect et merci pour ta réponse.
J'ai été trop vite j'avais ma list dans le form2 alors que le code était dans le form1! enfin un peu fatigué.
J'ai corrigé et j'ai fais ça:
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
Dim wsExcel As Excel.Worksheet
Private Sub Command1_Click()
Dim num As Integer
Dim i As Integer
Dim ValToAdd As String
num = 4
i = 1

    Set appExcel = CreateObject("Excel.Application")
    Set wbExcel = appExcel.Workbooks.Open(App.Path & "\B2D\B2D_VCT_2007.xls")
    Set wsExcel = wbExcel.Worksheets(num)
    While wsExcel.Cells(i, 1) <> ""
        ValToAdd = wsExcel.Cells(i, 1)
        List1.AddItem ValToAdd
        i = i + 1
    Wend
End Sub
ça marche mieux mais je voudrais qu'il m'affiche les lignes entières de ma feuille et non juste les cellules de la colonne A

Merci
Avatar de ProgElecT ProgElecT - Rédacteur/Modérateur https://www.developpez.com
le 23/06/2007 à 22:15
Code : Sélectionner tout
ValToAdd = wsExcel.Cells(i, 1) & wsExcel.Cells(i, 2) & wsExcel.Cells(i, 3)

Si 3 colonnes à recuperer, avec un & " " & , eventuelement pour separer les colonnes récuperer
Code : Sélectionner tout
ValToAdd = wsExcel.Cells(i, 1) & " " & wsExcel.Cells(i, 2) & " " &  wsExcel.Cells(i, 3)
Avatar de RuDaï KiRi RuDaï KiRi - Futur Membre du Club https://www.developpez.com
le 23/06/2007 à 22:23
Merci mais si j'ai 30 colonnes, il faut que ke je fasse 30fois
Code : Sélectionner tout
ValToAdd = wsExcel.Cells(i, 1) & " " & wsExcel.Cells(i, 2) & " " &  wsExcel.Cells(i, 3)..............
je peux surment faire un boucle comme ça :
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
While wsExcel.Cells(i, 7) <> ""
        'ValToAdd = wsExcel.Cells(i, 1)
        'ValToAdd = wsExcel.Cells(i, 1) & wsExcel.Cells(i, 2) & wsExcel.Cells(i, 3)
        For j = 1 To 30
            ValToAdd = wsExcel.Cells(i, j)
        List1.AddItem ValToAdd
        Next
        
        i = i + 1
        
    Wend
mais il m'affiche tout sur une colonne dans la liste
Avatar de ProgElecT ProgElecT - Rédacteur/Modérateur https://www.developpez.com
le 23/06/2007 à 22:36
Code : Sélectionner tout
1
2
3
4
5
6
7
8
While wsExcel.Cells(i, 7) <> ""
   ValToAdd = ""    
       For j = 1 To 30
            ValToAdd = ValToAdd & wsExcel.Cells(i, j) & " "
        Next
        List1.AddItem ValToAdd
        i = i + 1
Wend
Non verifié, mais sa doit faire
Avatar de RuDaï KiRi RuDaï KiRi - Futur Membre du Club https://www.developpez.com
le 23/06/2007 à 22:41
Aha bah nickel merci.
Je m'excuse d'avance car je découvre au fur et à mesure les évolutions qu'il faut que je fasse pour que ça ressemble à mon appli en vba et donc je pense que ce fil sera ma base de question .
Si bien sûr ça ne dérange pas les modérateurs.

Voilà, là je récupère donc bien toutes mes lignes mais c'est super moche.
Comment peut on faire pour afficher le résultat proprement avec colonnes et des en tête claires genre en gras ou coloré?

Merci d'avance
Avatar de ProgElecT ProgElecT - Rédacteur/Modérateur https://www.developpez.com
le 23/06/2007 à 22:49
Il ne faut pas passer par un ListBox mais par un contrôle GRID, il y en a plusieurs, il vaudrait mieux passer par un tuto car il y a plusieur façons de remplir ces GRIDs, suivant le resultat voulu.
Apres avoir lut, reviens par la suite pour les problémes eventuels de mise en pratique pour ton application.
Avatar de RuDaï KiRi RuDaï KiRi - Futur Membre du Club https://www.developpez.com
le 24/06/2007 à 12:39
Bonjour le forum, ProgElect,
Bon j'ai essayé de comprendre comment fonctionne le flexgrid et c'est pas super simple mais bon j'ai abouti à quelque chose mais j'ai quand même une ou deux questions:
--Les colonnes ne peuvent elles pas se dimensionnées toutes seules, est on obligé de fixer la largeur avec :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
lstEssais.Gridlines = flexGridInset
    
    lstEssais.ColWidth(Col_Dossier) = 315
    lstEssais.ColAlignment(Col_Dossier) = flexAlignLeftCenter
    
    lstEssais.ColWidth(Col_GET) = 315
    lstEssais.ColAlignment(Col_GET) = flexAlignLeftCenter
    
    lstEssais.ColWidth(Col_CE) = 315
    lstEssais.ColAlignment(Col_CE) = flexAlignLeftCenter
    
    lstEssais.ColWidth(Col_GdP) = 315
    lstEssais.ColAlignment(Col_GdP) = flexAlignLeftCenter
    
    lstEssais.ColWidth(Col_ACC) = 315
    lstEssais.ColAlignment(Col_ACC) = flexAlignLeftCenter

et deuxièmement, est ce que la fenêtre ne peut elle pas se dimensionnée toute seule aussi?

Je met le code en pièce jointe ce sera peut être plus simple.

je vous remercie d'avance
Avatar de RuDaï KiRi RuDaï KiRi - Futur Membre du Club https://www.developpez.com
le 24/06/2007 à 20:00
Bon bah j'abandonne le coup de "L'autoréglage" si on peut le dire mais j'ai mis les bonnes dimensions pour les titres et ça me va à part une colonne : la colonne description qui peut être sur plusieurs lignes et de différentes longueur dans mon fichier excel, comment puis je la régler en VB sans donner une largeur de colonne car elle n'est pas fixe?

Deuxième question: je voudrais savoir comment afficher des cases à cocher dans certaines colonnes?
Parce que dans mon fichier excel, j'avais des cases à cocher (o ou y) en windings et lorsque j'importe mon fichier excel, il met les o et y et non la case à cocher ce qui est normal mais puis je faire pour traduire ces caractères en cases en vb?

Pouvez vous m'aider?
Merci d'avance
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.