Avatar billede kahl Mester
04. august 2016 - 15:43 Der er 16 kommentarer og
1 løsning

Kopiere formel fra regnearket ind i vba

Jeg vil gerne hente en formel ind fra regne arket tilføje lidt formel og sætte det tilbage i samme celle...
Men jeg sidder fast i hent ind fra celle.

resten skulle der være styr på, men kom endelig med optimerings forslag

Function AddToFormel(Ws As Integer)

    Dim Temp As String
    Temp = "+'" & Ws & "'!H6"
   
    Dim Formel As String
    Formel = Cells(12, G).Value

    Range("G7").Select
    ActiveCell.FormulaR1C1 = Temp

End Function
Avatar billede supertekst Ekspert
04. august 2016 - 15:55 #1
Avatar billede kahl Mester
05. august 2016 - 08:01 #2
Jeg er ikke helt sikker på hvordan jeg skal gribe den an i forhold til det jeg vil. jeg vil gerne have celles indhold som en tekst streng ind i VBA således jeg kan tilføje en ny stump formel derinde fra, og erstatte den nuværende.
Avatar billede supertekst Ekspert
05. august 2016 - 10:06 #3
Hej kahl

Kunne du evt. prøve at beskrive et eksempel med tekst - således at indhold af cellen før og efter blev tydeliggjort.
Avatar billede kahl Mester
05. august 2016 - 11:03 #4
I celle G7 står der eksempelvis allerede "='1'!h6"
Når jeg så køre macroen skal der tilføjes "+'2'!h5 (2 er variabel og bestemmes et andet sted i koden)
Køres koden igen står der allerede i G7 ='1*!H6+'2'!H6. Nu er ark 4 den næste. VBAen ved godt der er tale om ark 4. så nu skal der tilføjes "+'4'!H6" så der står "='1*!H6+'2'!H6+'4'!H6"
Avatar billede supertekst Ekspert
05. august 2016 - 11:14 #5
Tak - glemte at spørge til G i nedenstående
  Formel = Cells(12, G).Value
Avatar billede supertekst Ekspert
05. august 2016 - 11:38 #6
Hvad siger du til nedenstående:

Dim Temp As String
Sub test0408()
    Temp = ""
    AddToFormel "'1'!H6"
    AddToFormel "+'2'!H6"
    AddToFormel "+'4'!H6"
   
    ActiveCell.Formula = "=" & Temp
End Sub
Sub AddToFormel(Ws As String)
    Temp = Temp & Ws
End Sub
Avatar billede kahl Mester
05. august 2016 - 11:49 #7
Ja det er jo det store spørgsmål, tænker det er et lævn fra da jeg prøvede med Range som heller ikke virkede

Idag virker "Formel = Cells(7, 7).Value" dog efter hensigten. Det var ikke tilfældet igår. Den øverste kode stammer fra det der lå i hukommelsen 10 min i fyraften, efter en crash hvor der ikke var gemt fornyligt - åbenbart.
Avatar billede kahl Mester
05. august 2016 - 11:50 #8
Jeg siger mange tak for hjælpen og din tid
Avatar billede supertekst Ekspert
05. august 2016 - 11:58 #9
Ok & selv tak - så kan du lukke tråden.
Avatar billede kahl Mester
05. august 2016 - 12:14 #10
Det lykkedes ikke alligevel

    Dim Temp As String
    Temp = "+'" & ws & "'!H6"
   
    Dim Formel As String
    Formel = Cells(7, 7).Value

    Range("G7").Select
    ActiveCell.FormulaR1C1 = Formel & Temp

Så bliver response første gang at den sletter det der allerede står og skriver 0+'3'!H6 efterfølgende gør den det rigtig nok. men så indeholder Cellen heller ikke en formel mere men en værdi. sætter jeg nu et = foran retter den det til 0 igen.
Avatar billede supertekst Ekspert
05. august 2016 - 13:09 #11
Prøv at se hvordan Temp er defineret og anvendt i #6
Avatar billede kahl Mester
05. august 2016 - 13:42 #12
Hvordan henter den den kendte formel ind fra G7 i #6?
Jeg forstår det måske forkert men det virker ret statisk.

Det skal jo være en stump kode som skal køres individuelt pr tilføjelse (+'[ark navn]'!H6)
Jeg kan skulle gøre det 3 gange eller 10 gange og gangene gøres ikke på samme tid.
Avatar billede kahl Mester
05. august 2016 - 13:44 #13
Ws er navnet på arket
Avatar billede supertekst Ekspert
05. august 2016 - 14:01 #14
I #6 bygges flere lag op som demo af princippet jeg anvender, idet jeg starter på "bar bund".

Jeg vender tilbage senere når du ikke umiddelbart kan anvende det viste.
Avatar billede supertekst Ekspert
05. august 2016 - 15:21 #15
Hvad siger du så til denne version:

Dim Temp As String
Sub Test()
    AddToFormel 4
End Sub
Function AddToFormel(Ws As Integer)
    Dim Temp As String, Formel As String
    Temp = "+'" & Ws & "'!H6"
   
    Formel = ActiveSheet.Range("G7").Formula

    Range("G7").Select
    ActiveCell.Formula = Formel & Temp
End Function
Avatar billede kahl Mester
08. august 2016 - 15:08 #16
Mange tak for hjælpen, det var godt at se jeg faktisk ikke var så langt væk fra det samme resultat.
Avatar billede supertekst Ekspert
08. august 2016 - 15:10 #17
Selv tak og fint..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester