J'ai bien essayé quelque chose, mais ça plante, pas sûr de savoir faire
Voilà comment j'ai intégré ton code (merci) au mien :
Code : Tout sélectionner
Option Explicit
Function DERNIERE_VALEUR_LIGNE(nLigne)
Dim nLigne as double
Dim oZone as Object
Dim oPlage as Object
Dim nCol as double
Dim oCell as Object
Dim monDoc as Object
Dim MaFeuille As Object
monDoc = ThisComponent
MaFeuille = monDoc.CurrentController.GetActiveSheet()
nLigne = nLigne -1
oZone = MaFeuille.getCellRangeByPosition(0, nLigne, 1023, nLigne)
oPlage = oZone.queryEmptyCells.RangeAddresses
nCol = oPlage(0).StartColumn -1
oCell = MaFeuille.getCellByPosition(nCol, nLigne)
DERNIERE_VALEUR_LIGNE = oCell.Value
End Function
Sub CopierContenu()
Dim oFeuille As Object ' la feuille de synthèse
Dim monDoc as Object
Dim MaFeuille As Object ' la feuille active
Dim ZoneSource1 As Object
Dim ZoneSource2 As Object
Dim PremiereColonne As Variant
Dim LignesVides() As Variant
Dim premiereLigneVide As Variant
Dim celluleDestination As Object
Dim maCellule As Object
Dim colonneType As Object
Dim format1 As String
Dim format2 As String
Dim x As Long
Dim oCursor As Object, nLig As Long
dim i as double
monDoc = ThisComponent
MaFeuille = monDoc.CurrentController.GetActiveSheet()
ZoneSource1 = MaFeuille.GetCellRangeByName("B9")
ZoneSource2 = MaFeuille.GetCellRangeByName("B11")
oFeuille = monDoc.sheets.getByName("Tableau récapitulatif")
'**********************************
'Déplacement du flux
'----------------------------------
PremiereColonne = oFeuille.getCellRangeByName("A10:A4000")
LignesVides() = PremiereColonne.queryEmptyCells.RangeAddresses 'Recheche de cellule vide dans la feuille cible
premiereLigneVide = LignesVides(0).StartRow ' Numéro première ligne vide pour y copier le flux
celluleDestination = oFeuille.getCellByPosition(1, premiereLigneVide,)
oFeuille.copyRange(celluleDestination.CellAddress, ZoneSource1.RangeAddress)
celluleDestination = oFeuille.getCellByPosition(2, premiereLigneVide,)
oFeuille.copyRange(celluleDestination.CellAddress, ZoneSource2.RangeAddress)
celluleDestination = oFeuille.getCellByPosition(0, premiereLigneVide,)
oFeuille.copyRange(celluleDestination.CellAddress, DERNIERE_VALEUR_LIGNE(6))
Thiscomponent.Store
End Sub
Et où ça plante :
Code : Tout sélectionner
oZone = MaFeuille.getCellRangeByPosition(0, nLigne, 1023, nLigne)
Une exception s'est produite :
Type : com.sun.star.lang.IndexOutOfBoundsException
Message : .
Merci pour ton aide, cordialement, Gérard