2009-05-12 7 views
0

Dans OOo CalcOpenOffice.org: macro aide

J'ai besoin de copier une colonne (seulement les valeurs, pas le format) d'une feuille à une autre (dans la même feuille de calcul) à l'aide d'une macro affectée à un bouton.

Je parcourait un peu autour, mais n'a rien trouvé de significatif :-(

Répondre

1

Pour répondre à la question initiale:

utilisent un tableau de données, qui sera significally plus rapidement sur de grandes plages de cellules

Source = ThisWeek.getCellRangeByName("H12:H206") 
source_data = Source.getDataArray() 

Target = Steering.getCellRangeByName("M12:AU206").setDataArray(source_data()) 
1

OK, je pourrais construire la réponse et a commencé l'apprentissage de base OOo, que je réussi à éviter jusqu'à présent ;-)

Je lui donne comme si.

Sub UpdateThisWeek 

Dim Doc As Object 
Dim ThisWeek As Object 
Dim Steering As Object 
Dim Source As Object 
Dim Target As Object 
Dim Week as Integer 

Doc = ThisComponent 
ThisWeek = Doc.Sheets.getByName("This week") 
Steering = Doc.Sheets.getByName("Steering") 
Week = Steering.getCellByPosition(6,4).Value 
Source = ThisWeek.getCellRangeByName("H12:H206") 
Target = Steering.getCellRangeByName("M12:AU206").getCellRangeByPosition(Week-19,0,Week-19,194) 

Dim i, s 
For i = 0 To 194 
    s = Source.getCellByPosition(0, i).Value 
    If s > 0 Then 
     Target.getCellByPosition(0, i).Value = s 
    Else 
     Target.getCellByPosition(0, i).String = "" 
    End If 
Next i 

End Sub 
+0

bien sûr, si quelqu'un a une meilleure solution ... ;-) – cadrian