Avatar billede dk_akj Nybegynder
24. juli 2002 - 08:19 Der er 20 kommentarer og
2 løsninger

Oprette formel i celle med excel

Jeg opretter en formel dynamisk:
For li_count = 1 To 5
    Cells(li_count, 12).FormulaR1C1 = "=VLOOKUP(RC[-9],Vareoversigt!A:K,3,FALSE)"
Next

I cellen står der nu #name? selvom formlen er korrekt.
Markerer så cellen og trykker F2 og derefter enter så kommer de rigtige tal frem i cellen.

Hvad skal jeg gøre for at det virker uden F2 - Enter ??

//akj
Avatar billede b_hansen Novice
24. juli 2002 - 08:40 #1
prøv at se, om ikke der bliver sat nogle apostrofer omkring Vareoversigt, når du benytter F2 og Enter
Avatar billede b_hansen Novice
24. juli 2002 - 08:40 #2
Umiddelbart kunne det nemlig se ud som om, det er referencen, der er noget galt med.
Avatar billede dk_akj Nybegynder
24. juli 2002 - 08:42 #3
Der sker intet med formlen når jeg trykker F2 enter

Har også prøvet at force en recalc at sheet med appplcation.calculate, heller ikke det hjalp.

//akj
Avatar billede b_hansen Novice
24. juli 2002 - 08:46 #4
hmmm.... når jeg smider en formel i excel via en makro, gør jeg det på denne måde:
ActiveCell.FormulaR1C1 = _
        "=IF(LEN(RC[-15])=8,""00""&RC[-15],IF(LEN(RC[-15])=9,""0""&RC[-15],RC[-15]))"

Kan det skyldes, at du ikke får aktiveret din celle? Ovennævnte er nemlig sakset fra en makro, jeg bruger ret tit, og den fungerer
Avatar billede dk_akj Nybegynder
24. juli 2002 - 08:48 #5
Sjovt så er det lige det jeg sider og prøver nu, vender tilbage om 2 min.

//akj
Avatar billede janvogt Praktikant
24. juli 2002 - 08:53 #6
Plejer også at bruge ActiveCell. Det virker ihvertfald.
Avatar billede b_hansen Novice
24. juli 2002 - 08:53 #7
Så er her lidt inspiration, som burde kunne bruges i din løkke:

' Her kontrolleres længden på kontonummeret. Hvis længden er 8 tegn, sættes 2 nuller foran.
' Er længden 9, sættes 1 nul foran og ellers beholdes det oprindelige nummer
    ActiveCell.Offset(1, 15).Range("A1").Select
    ActiveCell.FormulaR1C1 = _
        "=IF(LEN(RC[-15])=8,""00""&RC[-15],IF(LEN(RC[-15])=9,""0""&RC[-15],RC[-15]))"
Avatar billede dk_akj Nybegynder
24. juli 2002 - 09:00 #8
Hvad er den "rigtige" måde at, f.eks skrive "hej1" , "hej2" osv  , i alle celler i colonne H, vel at mærke så længe der står noget i de kolonne A-G ???

///akj
Avatar billede dk_akj Nybegynder
24. juli 2002 - 09:15 #9
Nu har jeg rettet min kode til dette
For li_count = 1 To 5
    Range(Cells(li_count, 12), Cells(li_count, 12)).Select
    ActiveCell.Formula = "=VLOOKUP(RC[-9],Vareoversigt!A:K,3,FALSE)"
Next

Men det virker stadig ikke :o(

men jeg har nu snydt den ved at lave noget "grisseri" med:
sendkeys "{F2}",100
sendkeys "{ENTER}",100

Så virker det men det er jo noget fusk.

//akj
Avatar billede b_hansen Novice
24. juli 2002 - 09:23 #10
jeg er på dybt vand nu, men hvad med:

For li_count = 1 To 5
ActiveCell.Offset(li_count, 15).Range("A1").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],Vareoversigt!A:K,3,FALSE)"
Next
Avatar billede dk_akj Nybegynder
24. juli 2002 - 09:43 #11
Hmm, den smider det i et synderligt rod ud over det hele, men det virker også først efter F2 enter tricket
Avatar billede b_hansen Novice
24. juli 2002 - 09:49 #12
hmmm.... den driller vist

Hvad med at sætte ActiveCell.Select ind, før next?
Avatar billede dk_akj Nybegynder
24. juli 2002 - 09:55 #13
Desværre virker heller ikke.

Tror squ efterhånden det er en bug i excel

//akj
Avatar billede b_hansen Novice
24. juli 2002 - 10:02 #14
mmjaee... det kan da ikke helt afvises, når der nu er tale om et Microsoft-produkt ;-)

Men du skulle vel aldrig have slået nogle funktioner fra i en eller flere makroer? Det kunne være årsagen til dit problem.
Avatar billede dk_akj Nybegynder
24. juli 2002 - 10:04 #15
Pt er den makro jeg bøvler med den eneste i regnearket.

//akj
Avatar billede b_hansen Novice
24. juli 2002 - 10:06 #16
ok

Har du forresten prøvet med Activecell.update ? (jeg er dog ikke helt sikker på, hvad den gør...)
Avatar billede dk_akj Nybegynder
24. juli 2002 - 10:15 #17
der er ingen update property/funktion på activecell
Avatar billede b_hansen Novice
24. juli 2002 - 10:19 #18
Så er jeg nok desværre løbet tør for ideer.....
Avatar billede Slettet bruger
25. juli 2002 - 00:29 #19
Prøv at oprette "A:K" som et navngivet område (f.eks: 'testOmraade') og indsæt det i formlen istedet for 'Vareoversigt!A:K'

f.eks: "=VLOOKUP(RC[-9],testOmraade,3,FALSE)"
Avatar billede bak Forsker
25. juli 2002 - 10:20 #20
Problemet kunne ligge i at du blander R1C1-referencer med alm. referencer. Hvis du laver en FormulaR1C1 reference skal du holde dig til det ( RC(-9) og A:K er ikke samme type
prøv det her eller døb området som Blackadder skriver:

For li_count = 1 To 5
    Cells(li_count, 12).Formula = "=VLOOKUP(I" & li_count & ",Vareoversigt!A:K,3,FALSE)"
Next
Avatar billede bak Forsker
25. juli 2002 - 10:48 #21
Erstat I med kolonnebogstavet du ønsker at slå op.
Avatar billede dk_akj Nybegynder
25. juli 2002 - 11:58 #22
Bak >> Din løsning virker, det må jeg huske til en anden gang ikke at blande æbler og bananer.

Tak for hjælpen alle 3.

//akj
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

IT-JOB

Capgemini Danmark A/S

Open Application (Denmark)

Capgemini Danmark A/S

AI/Data Engineer

Capgemini Danmark A/S

Client Partner

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Specialister til Netværksoperations til Forsvarets nye Digitale Backbone