Msflexgrid [Résolu]

Signaler
Messages postés
19
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
21 janvier 2013
-
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
-
Bonjour, je fais apparaitre à l'écran le contenu d'une flexgrid. J'y ai mis dans le coin droit de chacune des cellules un nombre. Lorsque je veux rajouter dans le coin gauche inférieur une autre donnée cette dernière efface la première!!!
Vous auriez une solution??

[mailto:clementmonette@gmail.com clementmonette@gmail.com]

Vous êtes tous des champions...Bravo

9 réponses

Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Salut jujube,
Salut MPi,
"...une autre méthode de procéder.."
Peut être celle- là :


.CellAlignment = flexAlignLeftTop
vBuffer =.TextMatrix(nTempRow, nTempCol) & vbNewLigne & _
             "   " &  nPrenom & " " & nNom & "  " & nAge
             .TextMatrix(nTempRow, nTempCol) = vBuffer


l' idée est de
-récupèrer le contenu de la cellule (coin supérieur gauche)
-forcer une nouvelle ligne avec vbNewLigne
-ajouter un espace , au pif ou en calculant la différence entre
longueur de la chaine nom prenom age et la largeur de la cellule
-ajouter nom,prenom et age.
A tester donc...


Ps: Mettre la propriété WrapText à True











<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonjour,
Sûrement une question d' index de ligne.
Avec un bout de code ça sera plus clair pour nous.

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
19
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
21 janvier 2013

L'idée est de me faire un calendrier dans lequel la date serait en haut à droite et le nom et l'âge de la personne en bas à gauche

Placer les jours du mois.....

JourUn = Format(Date, "yyyy") & "/" & dChoice & "/" & "01"
pAnnee = CInt(Format(JourUn, "yyyy"))
pMois = CInt(Format(JourUn, "mm"))
JourDebut = Weekday(JourUn)                      ' Trouve la position du premier jour
sNbrJours = sJourMois(pMois, pAnnee)         ' Trouve le nombre de jours dans le mois

sDate = 0
For x = 2 To 7                    ' Pour les rangées
    For y = 0 To 6               ' Pour les colonnes                                 
            If JourDebut + sDate <= 7 Then
                y = (JourDebut - 1) + sDate
            End If
        sDate = sDate + 1
        'If sJourMois(Format(Date, "mm"), Format(Date, "yyyy")) < sDate Then Exit Sub
        grdCalendrier.Row = x
        grdCalendrier.Col = y
        grdCalendrier.Font = "Arial Narrow"
        grdCalendrier.FontWidth = 10
        grdCalendrier.CellAlignment = flexAlignRightTop
        grdCalendrier.TextMatrix(x, y) = sDate
       
        If sDate = sNbrJours Then Exit Sub
    Next y
Next x
End Sub

Placer les noms...............

 With xGrid
        If (bRecordOpened = True) Then
'            .Visible = False
            .Clear
                       
            nNbrCol = m_rsCurrRecordSet.Fields.Count + 4
           
            .Cols = nNbrCol
           
            If MoveLast Then
              .Rows = 8
            Else
              .Rows = 8
            End If
            Call MoveFirst
         
            nTempCol = 0
            nTempRow = 0
          
          
            If m_rsCurrRecordSet.RecordCount > 0 Then
               
                Call m_rsCurrRecordSet.MoveFirst
                Do While Not (m_rsCurrRecordSet.EOF)
              
                    dDate = m_rsCurrRecordSet.Fields(2).Value                     ' Nous avons besoin de la date de l'évènement
                    nAge = DateDiff("m", dDate, Date) \ 12                             ' Déterminer l'âge de la personne
                    dDate = Format(dDate, "mm/dd") & "/" & 2007                ' Déterminer la première journée du mois
          
                                             
                        If Not IsNull(vBuffer) Then
                            nPrenom = m_rsCurrRecordSet.Fields(1).Value
                            nNom = m_rsCurrRecordSet.Fields(0).Value
                        Call Grille                                                                      ' pour déterminer dans quelle case je veux écrire l'information
                        vBuffer = nPrenom & " " & nNom & "  " & nAge
                        .CellAlignment = flexAlignLeftBottom
                        .TextMatrix(nTempRow, nTempCol) = vBuffer
                                   
                        End If
                    Call m_rsCurrRecordSet.MoveNext
                Loop
            
            End If
        End If
        FillCalendar = True
        .Visible = True
    End With
 
Merci à l'avance

Vous êtes tous des champions...Bravo
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Si je comprends bien le problème, je ne pense pas que tu puisses inscrire une donnée dans le coin droit supérieur et le coin gauche inférieur d'une même cellule en même temps. Il faudrait que tu cherches une autre méthode de procéder... ou créer ta propre grille...

MPi²
Messages postés
19
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
21 janvier 2013

Merci beaucoup pour ta suggestion, mais ça ne passe pas. Je vais faire la méthode qu'on m'a suggéré, faire ma propre grille.

Merci pour votre temps..

Vous êtes tous des champions...Bravo
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
beh , je viens de tester et chez moi ça marche !


Au départ : iGrid.TextMatrix(iGrid.Row, iGrid.Col) ="Contenu Initial"


Private Sub iGrid_DblClick() ' juste pour le test
  Dim vBuffer As String
  vBuffer =Mid(iGrid.TextMatrix(iGrid.Row, iGrid.Col),1,2)
  iGrid.TextMatrix(iGrid.Row, iGrid.Col) = vBuffer & _
                     vbNewLine & "              test"
End Sub


Resultat sur deux lignes : => Co
                                               test











<hr />

I LIKE TO BE HERE WHEN I CAN


<hr />
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
désolé pour la mise en page !

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />
Messages postés
19
Date d'inscription
dimanche 27 octobre 2002
Statut
Membre
Dernière intervention
21 janvier 2013

Un gros merci, je me suis planté dans le code........
C'est surement l'heure du dodo.....
Clément
Vous êtes tous des champions...Bravo
Messages postés
1883
Date d'inscription
samedi 1 avril 2006
Statut
Membre
Dernière intervention
20 novembre 2007
2
Bonne nuit alors..!
C' est encore trop tôt pour moi

<hr />I LIKE TO BE HERE WHEN I CAN
<hr />