Affiche une date sur " MSFlexGrid1" V.B 6

Fermé
accent19811 Messages postés 104 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 20 août 2022 - 5 janv. 2012 à 15:41
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 - 5 janv. 2012 à 23:16
Bonjour,



Affiche une date sur " MSFlexGrid1" V.B6
Mais à condition..:

-Date doit répéter 5 fois
-Chaque fois plus 30 jours.

Voir exemple suivant..:

15/01/2012
15/02/2012
15/03/2012
15/04/2012
15/05/2012

4 réponses

f894009 Messages postés 16905 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mars 2023 1 680
5 janv. 2012 à 16:47
Bonjour,

Code pour VB6 et MSFlexGrid

Private Sub Form_Load()
Dim Date_Maintenant, Date_Mois_Suivant, i


'MSFlexGrig a 2 colonnes et 6 ligne (Titre + 5 mois)
Me.MSFlexGrid1.Clear
Me.MSFlexGrid1.Cols = 2
MSFlexGrid1.Rows = 6


Date_Maintenant = Now
Date_Mois_Suivant = Date_Maintenant

' Ecriture du titre Colonne1
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Date"

'Ecriture Date Aujourd'hui Colonne1
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 1
MSFlexGrid1.Text = Format(Date_Mois_Suivant, "DD/MM/YYYY")

'ecriture quatre mois suivants
For i = 2 To 5
Date_Mois_Suivant = Format(DateAdd("m", 1, Date_Mois_Suivant), "dd/mm/yyyy")
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = i
MSFlexGrid1.Text = Format(Date_Mois_Suivant, "DD/MM/YYYY")
Next i


End Sub
1
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
Modifié par lermite222 le 5/01/2012 à 17:05
Bonjour, bonjour f894009
Tu pourrais avantageusement remplacer les sélections Row et col
    MSFlexGrid1.Col = 1   
    MSFlexGrid1.Row = 0   
    MSFlexGrid1.Text = "Date"

par
    With MSFlexGrid1  
        .TextMatrix(0, 1) = "Date"  
        '....  
    End With

A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
0
f894009 Messages postés 16905 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 20 mars 2023 1 680
5 janv. 2012 à 17:19
Bonjour Lermite et bonne annee

Merci pour le tuyau, car je n'utilise pas souvent de MSFlexgrid ou MSHFlexgrid en VB6 a cause de la lenteur de remplissage si le nombre de ligne est un peu consequent, je prefere un Listview.

Merci encore
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
Modifié par lermite222 le 5/01/2012 à 17:32
Merci et bonne année à toi aussi et à tout les tiens.
Et, je connais bien ces contrôles.
0
accent19811 Messages postés 104 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 20 août 2022
5 janv. 2012 à 17:27
Merci mon ami pour votre aide
Mais aide-moi autre fois Svp
Répondez-moi
Pour sujet...:
Affiche une date + NUM + Prix sur " MSFlexGrid1" V.B6
Mais à condition..:

-Date doit répéter 5 fois
-Chaque fois plus 30 jours.

Voir exemple suivant..:

01---- 15/01/2012----500.00
02---- 15/02/2012----500.00
03---- 15/03/2012----500.00
04---- 15/04/2012----500.00
05---- 15/05/2012----500.00
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 193
5 janv. 2012 à 23:16
Re,
Une autre façon de faire..
Private Sub Form_Load()
Dim i As Integer, e As Integer, N As Integer
Dim M As Byte, A As Integer, J As Byte
    M = Month(Date): A = Year(Date): J = Day(Date)
    With MSFlexGrid1
        .Clear
        .Cols = 5: .Rows = 200
        .TextMatrix(0, 0) = "N°"
        .TextMatrix(0, 1) = "Date"
        .TextMatrix(0, 2) = "Total"
        For e = 0 To 3
            For i = 1 To 5
                N = e * 5 + i
                .TextMatrix(N, 0) = Format(N, "00#")
                .TextMatrix(N, 1) = DateSerial(A, M, J)
                .TextMatrix(N, 2) = 500
                M = M + 1: If M > 12 Then M = 1: A = A + 1
            Next i
            J = J + 1: If J > 30 Then J = 1: M = M + 1
            If M > 12 Then M = 1: A = A + 1
        Next e
    End With
End Sub
A+
0