Poser votre question
0

Macro copie formule

posée 2020-01-28 18:41:02 +0200

Image Gravatar de juju81

Bonjour,

Je souhaiterai, via une macro, saisir une formule dans une cellule puis la copier sur une plage de cellules déterminée (ex : saisie de la formule en cellule A2 à copier en colonne A jusqu'à la ligne 500).

J'ai trouvé le code pour saisir la formule dans la cellule mais je cale sur la copie jusqu'à la ligne 500.

Merci d'avance à ceux qui pourront m'aider !

Bonne soirée

éditer requalifier signaler fermer fusionner supprimer

3Réponses

0

répondue 2020-01-28 19:26:11 +0200

Image Gravatar de Pierre DeCambrai

updated 2020-01-28 19:45:35 +0200

Bonjour,
Il me semble qu'il n'y ait pas besoin d'une macro pour cela, si toutefois il s'agit bien de recopier vers le bas d'une même colonne, un formule; il suffit , après avoir saisi la formule(enA2), sélectionner la zone A2:A500 (dans la zone de nom par exemple), puis de saisir Ctrl/D pour obtenir la recopie.

Cordialement. description de l'image

éditer signaler supprimer permalien plus
0

répondue 2020-01-30 08:27:03 +0200

Image Gravatar de pierre-yves samyn

updated 2020-01-30 08:28:38 +0200

Bonjour

Deux possibilités :

  1. On entre la formule en A2 et on remplit vers le bas sur la plage concernée (équivalent du menu FeuilleRemplir les cellules)
  2. On crée un tableau des formules à saisir et on l'entre directement dans la plage

Par exemple saisieFormule.ods :

Sub SaisieFormule()

dim oSheet as object, oCell as object, oRange as object
dim sFormule as string
dim tableauFormule(498) as variant
dim i as long

sFormule = "=$A$1*2"

oSheet = thiscomponent.sheets.getByName("Feuille1")

' Première solution' 
oCell = oSheet.getCellRangeByName("A2")

oCell.Formula = sFormule
oRange = oSheet.getCellRangeByName("A2:A500")
oRange.fillSeries(com.sun.star.sheet.FillDirection.TO_BOTTOM,com.sun.star.sheet.FillMode.SIMPLE,0,0,0)

' Deuxième solution'
oRange = oSheet.getCellRangeByName("B2:B500")

for i= 0 to 498
   tableauFormule(i)=array("=$A$1*2")
next i

oRange.FormulaArray=tableauFormule

End Sub

Cordialement

éditer signaler supprimer permalien plus

Commentaires

Merci pour l'aide !

Image Gravatar de juju81juju81 ( 2020-02-02 12:40:50 +0200 )éditer
0

répondue 2020-01-29 21:50:21 +0200

Image Gravatar de juju81

Bonsoir,

Merci pour l'astuce que je ne connaissais pas. Mais au cas présent, la recopie de la formule doit absolument se faire par macro.

Je m'explique ... Je développe actuellement dans un cadre professionnel un outil de retraitement automatique de données. Un fichier csv est notamment intégré par macro sur un onglet particulier (colonnes A à F par exemple) et j'ai besoin d'une macro permettant de concatener (automatiquement) en colonne G les colonnes A et B sur un nombre de lignes bien précis (2000).

Merci d'avance pour votre aide.

éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2020-01-28 18:41:02 +0200

Consultée: 42 fois

Mise à jour: Jan 30