VBA: Macro pour passer des lignes et remplissage automatique

EDIT: Si je voulais plutôt remplir automatiquement ces cellules, le code suivant fonctionnerait-il?

Sub BC_Edit() ' Define width and height of table Dim datasetWidth, datasetHeight As Integer ' Find values for width and height of table datasetWidth = Range("A1").End(xlToRight).Column datasetHeight = Range("A1").End(xlDown).Row ' Loop over each column For x = 1 To datasetWidth Set sourceRange = Cells(2,x) Set fillRange = Range(Cells(3, x), Cells(datasetHeight, x)) sourceRange.AutoFill Destination:=fillRange Next End Sub 

Je travaille avec quelques sets de données extrêmement volumineux – chacun d'environ 3000 lignes par 4 000 colonnes. Alors que Excel peut ne pas être le meilleur outil pour le travail, j'ai déjà construit une quantité considérable d'infrastructure autour des données et je ne peux pas passer à un cadre différent. J'utilise Excel 2007.

Dans une feuille de calcul particulière, lorsque j'essaie de remplir automatiquement en utilisant une formule, j'ai saisi la totalité de la deuxième colonne B (3000 x 1) via copyr et coller de cette colonne dans la sélection restante 3000 par 3998, ou une partie de cette sélection, Excel me donne une erreur de memory / ressources. Donc, je souhaite boucler chaque ligne et replace automatiquement toutes les colonnes. (En d'autres termes, j'aimerais utiliser A2 pour remplir automatiquement A3: A4000, B2 pour remplir automatiquement B3: B4000, etc.) Peut-être cela aiderait-il à résoudre le problème de la memory. Comment devrais-je écrire une macro pour y parvenir?

J'apprécierais tout conseil sur cette question, et peut-être une aide avec le code VBA approprié, si possible.

Voici un joli exemple de base d'une macro pour définir les colonnes en dessous de 2 dans la formule de la colonne 2. Il serait préférable de l'attacher à un button ou quelque chose de similaire plutôt que de fonctionner chaque fois que vous ouvrez la feuille.

 Sub Button_Click() ' Define width and height of table Dim datasetWidth, datasetHeight As Integer ' Find values for width and height of table datasetWidth = Range("A1").End(xlToRight).Column datasetHeight = Range("A1").End(xlDown).Row ' Loop over each column For x = 1 To datasetWidth ' From row 3 to the height of data, set the formula of the cells to ' the formula contained in row 2 of that column Range(Cells(3, x), Cells(datasetHeight, x)).Formula = Cells(2, x).Formula Next End Sub