ce matin j'ai mis a jour mon PC vers W11, et après redémarrage de mon PC libre office s'était mis à jour vers la version 7.6.4.1, je ne sais pas à quelle version j'était avant. > Libre office n'a pas changé de version, juste son apparence à changer légèrement avec le passage à W11
mon soucis est que pour un de mes documents j'avais une macro pour masquer des lignes selon une valeur (0 ou 1) dans une colonne, cette valeur était un résultat d'une formule de condition de la ligne. la fonction masquage était actionné ou actualisé uniquement lorsque je cliquais sur l'icone de la macro que j'avais mis dans la barre d'outils, le réaffichage des lignes par une autre macro et autre bouton,
il me semblais avoir mis la macro dans le document justement pour évité de la perdre car c'était mon seul document nécessitant ces macro.
j'utilisais cette macro depuis environ 18 mois et sans problèmes,
après avoir relancer mon document et ajouté du contenu dans celui ci, j'ai sauvegardé le document. j'ai ensuite voulu contrôlé un des éléments qui était sur une des lignes masqué c'est là que je me suis aperçus que mes macro ne fonctionnait plus, et même disparu.
depuis 9h ce matin je cherche cette macro sur internet, sur ce forum, je ne la retrouve pas, je ne sais pas si c'est moi qui cherche mal mais ça me rend dingue. Alors que je l'avais trouvé sur ce forum sans embêté tout le monde.
J'ai même demandé à chat gpt de l'aide pour la reconstruire, après plusieurs tentatives, j'ai eu une macro qui ne fais pas bien le boulot : qui me masque toutes les lignes remplis sans tenir compte de la valeur résultante dans les cellules de la colonne "T"
et qui met un temps anormal : plusieurs minutes avant que le travail de la macro soit effectif alors qu'avant la mise à jour de l'affiche était instantané
Macro donné par chat gpt pour masqué les lignes
Code : Tout sélectionner
Sub MaquerLignecondition1
Dim oFeuille As Object
Dim oCell As Object
Dim oLigne As object
Dim i AS Long
Dim iLastRow As Long
Dim oColonneT As Object
oFeuille = ThisComponent.CurrentController.ActiveSheet
oColonneT = oFeuille.getCellRangeByName("T1:T1048576")
For IlastRow = oColonneT.Rows.Count -1 To 0 Step -1
If oFeuille.getCellByPosition(19,iLastRow).Type <> com.sun.star.table.CellContentType.EMPTY Then
Exit For
End If
Next iLastRow
For i = 0 to iLastRow
oCell = OFeuille.getCellByPosition(19,i)
oLigne = oFeuille.Rows.getByIndex(i)
If oCell.Type = com.sun.star.table.CellContentType.VALUE Then
oLigne.IsVisible = (oCell.Value = 1)
Else oLigne.IsVisible = False
End If
Next i
End Sub
je suis pas doué pour la programmation donc créer une macro c'est pas vraiment dans mes cordes
merci à ceux qui voudront bien m'aider