Bonjour
La mémorisation de macro est en effet très limitée. Il devient rapidement nécessaire (et plus simple) de programmer “directement”.
Dans l’exemple suivant je déclare (instruction dim
) deux variables oFeuilleContrat et oFeuilleListeContrats qui, comme leur nom l’indique, serviront à travailler avec deux feuilles différentes.
dim oFeuilleContrat as object, oFeuilleListeContrats as object
Avec l’instruction suivante :
oFeuilleContrat = thiscomponent.sheets.getByName("Contrats")
on va rechercher dans le classeur (thiscomponent
) et la collection des feuilles (sheets
) celle qui se nomme Contrats.
Avec l’instruction suivante :
oFeuilleContrat.getCellRangeByName("A1").string = "j'écris du texte"
On écrit directement dans la cellule A1 de la feuille Contrats
Avec l’instruction suivante :
oCell = oFeuilleContrat.getCellRangeByName("A2")
On utilise une variable oCell
(comme les autres variables le nom est libre, hormis quelques contraintes de syntaxe) qui va nous permettre de manipuler la cellule A2 de la feuille Contrats (ici on entre une valeur dans la cellule)
Avec l’instruction suivante :
oFeuilleListeContrats.getCellRangeByName("C1").value = oCell.value
On modifie la cellule C1 de l’autre feuille en lui affectant la valeur de la cellule A2 de la première feuille…
Ci-dessous le code complet
sub EcrireFeuille
dim oFeuilleContrat as object, oFeuilleListeContrats as object
dim oCell as object
oFeuilleContrat = thiscomponent.sheets.getByName("Contrats")
oFeuilleListeContrats = thiscomponent.sheets.getByName("Liste des contrats")
oFeuilleContrat.getCellRangeByName("A1").string = "j'écris du texte"
oCell = oFeuilleContrat.getCellRangeByName("A2")
oCell.value = 2310
oFeuilleListeContrats.getCellRangeByName("C1").value = oCell.value
end sub
Voir le classeur ecrireFeuille.ods
Notre wiki regroupe différentes ressources permettant d’apprendre le langage, en particulier celle-ci.
Cordialement