Avatar billede martin_sj Nybegynder
04. november 2007 - 20:58 Der er 8 kommentarer og
1 løsning

indsæt formel automatisk per ubestemt antal rækker

Jeg har et regneark, hvor jeg importere data til.
Når data er importeret skal der i sidste kolonne indsættes en værdi udfra en formel.
Dette skal ske automatisk ved import.
Dvs noget der erstatter at jeg skriver en formel og trækker formlen ned af kolonnen.
Altså hvis der er data på rækken skal eks. kolonne A + kolonne B, resultat i kolonne D.
Avatar billede jlemming Nybegynder
04. november 2007 - 21:12 #1
må det være vba kode?
Avatar billede martin_sj Nybegynder
04. november 2007 - 21:17 #2
Det skal det være :-)
Avatar billede jlemming Nybegynder
05. november 2007 - 08:23 #3
Det er nok noget i denne retning.
sker din import via vba?


  rk = ActiveCell.SpecialCells(xlLastCell).Row
  kol = ActiveCell.SpecialCells(xlLastCell).Column
  For t = 1 To rk
        Cells(t, kol + 1).Formula = "=A" & t & "+B" & t
  Next t
Avatar billede jlemming Nybegynder
05. november 2007 - 08:28 #4
med denne her er dit ark altid opdateret, isættes som vba kode på det pågældende ark

den vil altid starte i række 1, ønskes anden start række ændres for t = ? to rk

Private Sub Worksheet_Change(ByVal Target As Range)
  rk = ActiveCell.SpecialCells(xlLastCell).Row
  kol = ActiveCell.SpecialCells(xlLastCell).Column
  For t = 1 To rk
        Cells(t, kol + 1).Formula = "=A" & t & "+B" & t
  Next t

End Sub
Avatar billede martin_sj Nybegynder
05. november 2007 - 08:58 #5
Takker det virker fint!
Jeg har dog det problem at min formel ikke lige kan køres fra vba, kan du hjælpe?
Send svar for point.
Cells(t, kol + 1).Formula =
(VLOOKUP(DATA!$A3;DATAOld!$A$3:$V$65000;2;FALSE)=DATA!B3)*
(VLOOKUP(DATA!$A3;DATAOld!$A$3:$V$65000;3;FALSE)=DATA!C3)
Avatar billede jlemming Nybegynder
05. november 2007 - 09:21 #6
ja det tror jeg. først skal du huske "" der ud over skal ; skrives som ,
Hvorfor ved jeg ikke, :-)

eks.
  Cells(t, kol + 1).Formula = "=VLOOKUP(A1,A1:A10,1,FALSE)"

Jeg bliver desværre nød til at løbe, kommer tilbage senere i eftermiddag.
Håber du for det til at virke.
Avatar billede martin_sj Nybegynder
05. november 2007 - 11:31 #7
Efter lidt modificering virker det perfekt.
Worksheets("DATA").Cells(t, kol + 1).Formula = "=VLOOKUP(DATA!A" & t & ",DATAOld!A1:Y" & rk & ",2,FALSE)=DATA!B" & t & ""
Avatar billede martin_sj Nybegynder
05. november 2007 - 13:12 #8
Jeg har endnu et lille problem.
Min formular uden om VBA:
(VLOOKUP(DATA!$A3;DATAOld!$A$3:$V$65000;2;FALSE)=DATA!B3)*
(VLOOKUP(DATA!$A3;DATAOld!$A$3:$V$65000;3;FALSE)=DATA!C3)
Her har jeg sat to VLOOKUP sammen og adskilt dem med "*".
Hvad gør jeg i VBA, når jeg skal checke på flere kolonner?
Avatar billede martin_sj Nybegynder
05. november 2007 - 13:19 #9
Fik selv løst det:

Worksheets("DATA").Cells(t, kol).Formula = "=(VLOOKUP(DATA!A" & t & ",DATAOld!A1:Y" & rk & ",2,FALSE)=DATA!B" & t & ")" & _
"=(VLOOKUP(DATA!A" & t & ",DATAOld!A1:Y" & rk & ",3,FALSE)=DATA!C" & t & ")"
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