problème de lancement de macro

posée 2019-07-29 17:01:16 +0200

Image Gravatar de leastu

Bonjour, J'ai créé une macro, hélas lorsque je lance le bouton d’exécution, celle ci ne va pas jusqu'au bout et me sort en réponse uniquement les titres de mon tableau de départ.

Voici la macro en question , est ce que quelqu'un verrait où est mon erreur ? Merci d'avance pour vos réponses et votre aide !

sub essai1_macro_finale()

dim oClasseur as object, oFeuilleDep as object, oPlageDep as object dim oFeuilleArr as object, oCellArr as object, oCellCrit as object dim oFiltre as object
dim oCellCrit2 as object dim oCellCrit3 as object dim oCellCrit4 as object dim oDonnees as object dim oChampFiltre0 (0) As New com.sun.star.sheet.TableFilterField dim oChampFiltre1 (1) As New com.sun.star.sheet.TableFilterField

oClasseur = thisComponent 'défini le classeur courant oFeuilleDep = oClasseur.Sheets.getByName("Donnees") oPlageDep = oFeuilleDep.getCellRangeByName("A1:L1") 'sélectionner la plage de cellule de titre à prendre en compte oFeuilleArr = oClasseur.Sheets.getByName("Param") oCellArr = oFeuilleArr.getCellRangeByName("I7") 'cellule où copier le résultat

oFeuilleArr.copyrange(oCellArr.CellAddress, oPlageDep.rangeAddress)

oPlageDep = oFeuilleDep.getCellRangeByName("A1:L16") 'sélection de la plage de données de départ oFiltre = oPlageDep.createFilterDescriptor(true) 'création de l'outil de filtrage et affectation à la zone à filtrer

oCellCrit = oFeuilleDep.getCellRangeByName("I3") 'selection de la case du critere 1 oCellCrit2 = oFeuilleDep.getCellRangeByName("J3") 'selection de la case du critere 2 oCellCrit3 = oFeuilleDep.getCellRangeByName("K3") oCellCrit4 = oFeuilleDep.getCellRangeByName("L3")

with oChampFiltre1(0) .Field = 8 'numero de la colonne à trier (0=A) .IsNumeric = true 'critere numerique
.Operator = com.sun.star.sheet.FilterOperator.GREATER_EQUAL 'choix de l'opérateur .NumericValue = oCellCrit.value 'choix de la case du critere end with

with oChampFiltre1(0) .Connection = com.sun.star.sheet.FilterConnection.AND .Field = 8 'numero de la colonne à trier (0=A) .IsNumeric = true 'critere numerique
.Operator = com.sun.star.sheet.FilterOperator.LESS_EQUAL 'choix de l'opérateur .NumericValue = oCellCrit2.value 'choix de la case du critere end with

with oChampFiltre1(1) .Connection = com.sun.star.sheet.FilterConnection.AND 'opérateur entre les deux conditions .Field = 9 'numero de la colonne à trier .IsNumeric = true
.Operator = com.sun.star.sheet.FilterOperator.GREATER_EQUAL .NumericValue = oCellCrit3.value 'choix de la case du critère end with

with oChampFiltre1(1) .Connection = com.sun.star.sheet.FilterConnection.AND 'opérateur entre les deux conditions .Field = 9 'numero de la colonne à trier .IsNumeric = true
.Operator = com.sun.star.sheet.FilterOperator.LESS_EQUAL .NumericValue = oCellCrit4.value 'choix de la case du critère end with

with oFiltre
.UseRegularExpressions = true
.ContainsHeader = true
.CopyOutputData = true 'copie les résultats du filtrage
.OutputPosition = oFeuilleArr.getCellRangeByName("I7").CellAddress 'definition d'une adresse qui sera celle de l'arrivée de mon filtrage .setFilterFields(oChampFiltre1()) end with

oPlageDep.filter(oFiltre)

oFeuilleArr.columns.getByName("I").OptimalWidth=true 'optimiser la largeur de colonne oFeuilleArr.columns.getByName("T").OptimalWidth=true 'optimiser la largeur de colonne

end sub

éditer requalifier signaler fermer fusionner supprimer

Commentaires

Nul doute qu'en fournissant un document intégrant la macro, nous pourrions analyser le problème qui dépend bien évidemment du contenu.

Contenu que l'on ne peut évidemment deviner.

Image Gravatar de ValioudValioud ( 2019-08-02 11:45:48 +0200 )éditer