Le samedi 10 novembre 2007 21:31, letrange a écrit :
> Bonjour,
> J'essaie de bricoler un petit agenda avec O.calc.
> J'ai une case B2 contenant à l'ouverture la date du jour [(aujourdhui()]
> Je voudrais, à l'aide d'un bouton et une macro, pouvoir remonter ou avancer
> dans le calendrier mais ce qui marchait en basic autrefois semble difficile
> ici : nouvelle date=date affichée +1   (ou date-1), à chaque clic et
> toujours en B2. Est-ce possible ?
> (les données sont dans une autre feuille et importées avec [recherchev ])

Oui, c'est assez simple à faire. 
Je te donne un exemple qui me sert à changer le temps indiqué dans une 
cellule. J'ai 4 boutons (2 pour les minutes, 2 pour les secondes) qui 
déclenchent les macros AjouterUne*** ou EnleverUne***
L'exemple est à adapter bien sûr.

Sub ModifierTemps(Temps As Date)
        Dim oDocument As Object, oFeuille As Object, oSelectionEnCours As Object
        Dim oControleur As Object
        Dim oCoordonnees As Object, oCelluleEnCours As Object
        Dim nLigne As Integer, nColonne As Integer
                        
        oDocument = ThisComponent
        oControleur = oDocument.CurrentController
        oFeuille = oControleur.ActiveSheet
        oSelectionEnCours = oDocument.CurrentSelection
        
        ' Vérification que seule une cellule est sélectionée
        If oSelectionEnCours.supportsService("com.sun.star.table.Cell") Then
                ' Récupération des coordonnées de la cellule
                oCoordonnees = oSelectionEnCours.CellAddress
                nColonne = oCoordonnees.Column
                nLigne = oCoordonnees.Row
                oCelluleEnCours = oFeuille.getCellByPosition(nColonne,nLigne)

                'On modifie la valeur de l'heure
                oCelluleEnCours.Value = oCelluleEnCours.Value + Temps
        End If

End Sub

Sub AjouterUneSeconde()
        Dim TempsAAjouter As Date
        TempsAAjouter = TimeValue("00:00:01")
        ModifierTemps(TempsAAjouter)
End Sub

Sub AjouterUneMinute()
        Dim TempsAAjouter As Date
        TempsAAjouter = TimeValue("00:01:00")
        ModifierTemps(TempsAAjouter)
End Sub

Sub EnleverUneSeconde()
        Dim TempsAEnlever As Date
        TempsAEnlever = TimeValue("00:00:01")
        ModifierTemps(-TempsAEnlever)
End Sub

Sub EnleverUneMinute()
        Dim TempsAEnlever As Date
        TempsAEnlever = TimeValue("00:01:00")
        ModifierTemps(-TempsAEnlever)
End Sub


-- 
Michel Grentzinger
        OpenPGP key ID : B2BAFAFA
                Available on http://www.keyserver.net

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à