OpenOffice Calc Supprimer plusieures cellules contiguës

Patou134 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
Patou134 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
Bonsoir,
Je voudrai supprimer plusieures cellules contiguës sur une même ligne comme le fait la commande contextuelle (Clic droit, supprimer) tout en déplaçant les cellules se trouvant à droite de la sélection vers la gauche.
Comme j'ai un très gros ficher à traiter je voudrai effectuer cette opération à l'aide d'une macro.
J'ai essayé de créer un code avec "Enregistrer une macro mais cela ne me convient pas car l'adressage de la sélection est sous la forme "A1:F1" alors que j'ai besoin qu'elle soit sous la forme "0,1:0,5" (je ne suis pas sur de la syntaxe).
Afin de l'inclure dans une procédure qui balayerai tout le fichier.
J'ai un début de code que voici:
Sub Deb
Dim DOC as object, Les_Feuilles as object,La_Feuille as object,Zone as object

   Doc = thisComponent
   Les_Feuilles = Doc.Sheets
   La_Feuille = Les_Feuilles.getByName("Feuille1")
   Zone = La_Feuille.getCellRangeByName("A1:F1")
   Doc.currentController.Select(Zone)
   
End Sub


Merci par avance de votre aide.
Configuration: Windows / Chrome 97.0.4692.99

2 réponses

  1. Patou134 Messages postés 2 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonsoir,
    J'ai trouvé la réponse à mon problème.
    Voici le code pour ceux que ça intéresse.
    Sub SuppCell
    Print "Debut"
    Dim Doc As Object
    Dim Sheet As Object
    Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
    Dim indlig,indcol, startcol as integer

    'Doc = StarDesktop.CurrentComponent
    Doc = thisComponent
    Sheet = Doc.Sheets(0)
    startcol = 0
    indlig = 0
    indcol = 0

    For indlig = 0 to 6
    indcol = indcol + 1
    CellRangeAddress.Sheet = 0
    CellRangeAddress.StartColumn = startcol
    CellRangeAddress.StartRow = indlig
    CellRangeAddress.EndColumn = indcol
    CellRangeAddress.EndRow = indlig
    ' print startcol & " " & indlig & " " & indcol & " " & indlig
    Sheet.removeRange(CellRangeAddress, com.sun.star.sheet.CellDeleteMode.LEFT)
    Next indlig

    Print "Fin"
    End Sub
    0