OpenOffice Calc Supprimer plusieures cellules contiguës

Fermé
Patou134 Messages postés 3 Date d'inscription lundi 10 janvier 2022 Statut Membre Dernière intervention 10 février 2022 - Modifié le 9 févr. 2022 à 23:58
Patou134 Messages postés 3 Date d'inscription lundi 10 janvier 2022 Statut Membre Dernière intervention 10 février 2022 - 10 févr. 2022 à 23:10
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
A voir également:

2 réponses

yclik Messages postés 3763 Date d'inscription vendredi 25 juillet 2014 Statut Membre Dernière intervention 13 février 2025 1 534
10 févr. 2022 à 17:25
0
Patou134 Messages postés 3 Date d'inscription lundi 10 janvier 2022 Statut Membre Dernière intervention 10 février 2022
10 févr. 2022 à 23:10
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