Je bloque sur la manière de définir ma zone dans le code suivant.
Ma feuille est triée selon un critère ascendant alphabétique dans la colonne "A"
Je souhaite
1- récupérer la valeur de la cellule "A2" (OK)
2- créer une zone de toutes les lignes dont la colonne "A" est de la valeur de la cellule "A2" (Pas OK)
3- créer une nouvelle feuille nommée de la valeur de "A2" (OK)
4- copier les lignes de ma zone dans ma nouvelle feuille (Pas testé)
5- supprimer les lignes de ma zone copiée
De cette manière, je dois pouvoir créer autant de feuilles qu'il y a de noms dans la colonne "A" et vider ma feuille 1
Je cherche donc de l'aide pour dans un premier temps définir ma zone à copier.
Code : Tout sélectionner
option Explicite
Sub cop_feuille
Dim lesFeuilles As Object, maFeuille As Object, maZone As Object, maCellule As Object, lesLignes As Object
Dim uneLigne As Object, celluleArrivee As Object, newFeuille As Object
Dim valeur As String
maFeuille = ThisComponent.Sheets.getByName("Feuille1")
rem faire une boucle : "tant que A2 n'est pas vide :
' ????
rem recupérer la valeur de la cellule A2
maCellule = maFeuille.getCellRangeByName("A2")
valeur = maCellule.getString()
print valeur
rem définir la zone de départ à copier
maZone = maFeuille.getCellRangeByName(valeur)
lesLignes = maZone.Rows
uneLigne = lesLignes(1)
rem création d'une nouvelle feuille
lesFeuilles = ThisComponent.Sheets
lesFeuilles.insertNewByName(valeur,1)
rem copie de la zone départ dans la nouvelle feuille
newFeuille = lesFeuilles.getByName(valeur)
celluleArrivee = newFeuille.getCellRangeByName("A2")
maFeuille.copyRange(CelluleArrivee.CellAddress, uneLigne.RangeAddress)
rem supprimer les lignes copiées dans la Feuille1
' ???
End Sub