Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketIndsæt formler ved hjælp af vba

 Besvar Besvar
Forfatter
AnnetteTR Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 09.Jul.2010
Land: DK
Status: Offline
Point: 47
Direkte link til dette indlæg Emne: Indsæt formler ved hjælp af vba
    Sendt: 16.Sep.2010 kl. 11:22

Hej

Jeg er ved at lave en makro, hvor brugeren indtaster en masse data for nogle rum i in input box. Disse data lægges over i én linie i et regneark. Næste input lægges i næste linie osv.

Problemet er, at i nogle af kolonnerne vil jeg have lagt en formel som baserer sig på nogle af de andre input. Men hvordan skal formlen se ud i VBA?

Jeg har min input box, hvor jeg har en "Sub" for hvad der sker når jeg trykker på knappen Gem

Næste ledige række aktiveres, og data gemmes med et offset:
With ActiveCell
    .Offset(0, 22).Value = txtSS1.Text
    .Offset(0, 23).Value = txtSS1br.Text
    .Offset(0, 24).Value = txtLugeEtMin
    .Offset(0, 25).Value = txtLugeEtMax
 
Jeg ønsker at lave en formel, hvor celle referencen for SS1br og LugeEtMin indgår  
    ' 26 min1 = SS1br*(LugeEtMin/1000)*0.3*3.6   
 
Jeg forventer at sætte formlen ind med denne funktion:  
    '.Offset(0,26).Formula =
 
Det der skal stå efter lighedstegnet er noget i stil med: X4 * Z4*0.3*3.6
hvor 4-tallet skal være den aktuelle række man står i
 
Hvordan skal formlen se ud?
 
Mvh Annette
 
Til top



Til top
AnnetteTR Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 09.Jul.2010
Land: DK
Status: Offline
Point: 47
Direkte link til dette indlæg Sendt: 16.Sep.2010 kl. 13:32
Hej
 
Jeg har fundet løsningen:-)
formlen skal være:
.Offset(0, 26).FormulaR1C1 = "=RC[-3]*RC[-2]*0.3*3.6"
 
Mvh Annette
 
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 16.Sep.2010 kl. 13:38

Hej Annette,

Jeg tror vi er ude i noget á la,:
 
 .Offset(0, 26).FormulaLocal = "=X" & ActiveCell.Row & "*Z" & ActiveCell.Row & "*0,3*3,6"
 
Er det ikke nogenlunde det?
 
//Allan
 
Til top
AnnetteTR Se dropdown
Bronze bruger
Bronze bruger
Avatar

Medlem: 09.Jul.2010
Land: DK
Status: Offline
Point: 47
Direkte link til dette indlæg Sendt: 16.Sep.2010 kl. 14:00
Hej Allan
 
Tak for hjælpen.
Jeg prøvede din formel - med en lille modifikation virker den - den der virker ser sådan ud:
 
.Offset(0, 26).Formula = "=X" & ActiveCell.Row & "*Z" & ActiveCell.Row & "*0.3*3.6"
 
Local skal formentlig tages ud fordi jeg bruger en engelsk version af excell - den anden ændring er , og . i tallene.
Så nu har jeg 2 måder at løse det på.
 
Mvh Annette
Til top
Allan Se dropdown
Forum Admin
Forum Admin
Avatar
Forum Admin

Medlem: 03.Feb.2010
Land: Danmark
Status: Offline
Point: 10330
Direkte link til dette indlæg Sendt: 16.Sep.2010 kl. 15:13
Hej Annette,
 
Super, jeg tænkte ikke på at du brugte Engelsk version, det forklarer forskellen på komma og punktum.
FormulaLocal burde virke, men skidt med det, bare det virker for dig.
 
De 2 måder er sådan set fuldstændig ens, din er bare skrevet med R1C1 standard (bruger numre til både rækker og kolonner), det er smag og behag hvad man foretrækker
 
Det var fedt det kom til at virke Big smile
 
//Allan
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk