Filtrer entre deux dates dans LibreOffice calc

Bonjour

Je retourne a vous pour demander votre aide et Merci avant tout.

J'ai crée un fichier LibreOffice calc(ci-joint) pour suivi des Entrees et Sorties d'un Compte.

je veux filtrer entre deux dates choisies dans la colonne A de la feuille nommée "Compte"; ces 2 dates sont écrites au préalale dans les cellules "I2''; Date de Debut et "I3"; Date de Fin. avec leur limites affichees par formules Date Min et Date Max de la colonne A; dans les cellules "K2" eT "K3".

Le résultat sera envoye vers la feuille nommee "Relevé" par clic sur le bouton de commande vert nommé "FiltrerEntre2Dates;cliquerICI "

Abdu.

Hello,

voici une solution en utilisant des plages nommées et un balayage des données Source en Basic :

Sub FiltreDates()
    Dim oSource As Object, oDest As Object, oTableSrc As Object, oTableDest As Object
    Dim i As Integer, j As Integer, k as Integer
    Dim mondocument As Object,  dateDebut, dateFin
    monDocument = ThisComponent
    oSource = monDocument.Sheets.getByName("Compte")
    oDest = monDocument.Sheets.getByName("Relevé")
    dateDebut = monDocument.NamedRanges.getByName("dateDébut").getReferredCells().getCellByPosition(0, 0).getValue()
    dateFin = monDocument.NamedRanges.getByName("dateFin").getReferredCells().getCellByPosition(0, 0).getValue()   
    oTableSrc = monDocument.NamedRanges.getByName("DataSrc").getReferredCells() ' données de départ
    oTableDest = monDocument.NamedRanges.getByName("DataDest").getReferredCells() ' table de destination
    oTableDest.clearContents(7) 'Effacement table destination
    k=0
    For i = 0 To oTableSrc.Rows.Count - 1
        if   oTableSrc.getCellByPosition(0, i).getValue() >= datedebut And _
             oTableSrc.getCellByPosition(0, i).getValue() <= datefin then
            For j = 0 To oTableSrc.Columns.Count - 1  
                if  oTableSrc.getCellByPosition(j, i).getType() = com.sun.star.table.CellContentType.TEXT    then
                   oTableDest.getCellByPosition(j,k).String =  oTableSrc.getCellByPosition(j, i).getString() 
                else      
                   oTableDest.getCellByPosition(j, k).Value =  oTableSrc.getCellByPosition(j, i).getValue() 
                end if        
            Next j
            k=k+1
        end if
    Next i
    ThisComponent.CurrentController.setActiveSheet oDest
End Sub

J'ai essayé une autre méthode en passant par un filtre mais cela ne fonctionne pas car tu as des formules qui dépendent de la ligne précédente qui dans un filtre n'est pas forcément la bonne.

Pour poser des questions concernant LibreOffice ou OpenOffice , tu as intérêt à utiliser un autre forum (par exemple forum.openoffice.org/fr) parce qu'ici cela n'a pas l'air d'intéresser grand monde vu le peu de réponse quand une question est posée.

Ami calmant, J.P

Bonjour "Jurassic Ami calmant, J.P"

Merci pour ta reponse ton aide et conseil.

Je vais voir et te repondrais, je vais verifie. A1ere vue j'ai constate le format de la date pas celle en jj/mm/aaaa

Mais cela n'est pas un grand probleme je vais me debrouiller.

Abdu

Bonjour

J'ai fait une petite modif sur une macro VBA Excel;sans la convertir en VB calc où je l'ai collée.

Elle est plus rapide et marche bien.

Cordialement

Rechercher des sujets similaires à "filtrer entre deux dates libreoffice calc"