Print side | Luk vindue

Indsæt formler ved hjælp af vba

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=87
Udskrevet den: 17.Maj.2024 kl. 05:19


Emne: Indsæt formler ved hjælp af vba
Besked fra: AnnetteTR
Emne: Indsæt formler ved hjælp af vba
Posteringsdato: 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
 



Svar:
Besked fra: AnnetteTR
Posteringsdato: 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
 


Besked fra: Allan
Posteringsdato: 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
 


Besked fra: AnnetteTR
Posteringsdato: 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


Besked fra: Allan
Posteringsdato: 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



Print side | Luk vindue