Avatar billede tida Juniormester
15. januar 2009 - 13:23 Der er 6 kommentarer og
1 løsning

Makro der indsætter værdi i en celle

Jeg sidder og fumler lidt med en makro og er gået i stå. Jeg har brug for at kende den kommando der kan indsætte en værdi i en celle som den skal tage fra en bestemt placering i samme fil på et andet ark. Måske det er nemmere hvis jeg lige viser koden :

Public Sub Notaer()


'Dimensioner rækkevariable
    Dim lngRkStart As Long
    Dim lngRkSlut As Long
    Dim lngRkIndex As Long
   
'Hvilke rækker skal behandles?
    lngRkStart = InputBox("Indtast første rækkenummer")
    lngRkSlut = InputBox("Indtast sidste rækkenummer")

'HERUNDER SKAL ALT ROBOT-KODEN SKRIVES
'=====================================

Dim i As Long
Dim Funktion As String


Dim intColBestiller As Variant
Dim intColKobSalg As Variant
Dim intColValuta As Variant
Dim intColBelob As Integer
Dim intColTil As Variant
Dim intColBetaling As Variant
Dim intColReg As Integer
Dim intColKonto As Integer
Dim intColNote As Variant


Dim intColRef As Integer



intColBestiller = 2
intColKobSalg = 3
intColValuta = 4
intColBelob = 5
intColTil = 6
intColBetaling = 7
intColReg = 8
intColKonto = 9
intColNote = 10

intColRef = 12



'====================================================================
'i gennemløber intervallet [Fra , Til] vha. for-løkken
For i = lngRkStart To lngRkSlut
'For i = 2 To SlutRække

'Springer over hvis beløb er lig nul
  If Val(Cells(i, 5)) <> 0 Then



Application.Goto Reference:="Bestiller"

Reg "Bestiller", Cells(i, intColBestiller)              'Initialer



Det er her i de sidste linier jeg går kold, hvordan klarer jeg den med at indsætte værdien fra intColBestiller.
Avatar billede jkrons Professor
15. januar 2009 - 13:54 #1
fx ActiveCell.Value = intColBestiller

eller Selection:Value = intColBestiller

eller Range("A1").Value = intColbBestiller

eller noget i den stil.
15. januar 2009 - 14:07 #2
tida -> gider du smide mig din email, det er om noget helt andet end dette spørgsmål. Min mail findes under min brugerinfo. Tak Flemming
Avatar billede tida Juniormester
15. januar 2009 - 16:02 #3
Hmmm....jkrons...tak for svar.....det driller stadig :-(
Nu indsætter den værdierne 2 3 4 o.s.v. istedet for at indsætte de værdier der findes under de respektive kolonner der er repræsenteret af det definerede kolonnenummeret hvis du forstår ?
Avatar billede jkrons Professor
15. januar 2009 - 18:23 #4
Ok. Men det, du beder om i din kode, er at den skal indsætte værdien af variablen. Og den indeholder åbenbart så et tal.

Prøv at forklare, hvad det er, du ønsker at opnå, så kan jeg måske bedre hjælpe.
15. januar 2009 - 19:08 #5
Er det sådan du mener??
ArkTil.Cells(i,intColBestiller).Value = ArkFra.Cells(i, intColBestiller).Value
ArkTil.Cells(i,intColKobSalg).Value = ArkFra.Cells(i, intColKobSalg).Value

Hvis det er sådan, så kan det gøres nemmere end med 11-12 linier...

For iRow = lngRkStart To lngRkSlut
  For iCol = intColBestiller To intColRef
    If Not Val(ArkFra.Cells(iRow, iCol).Value) = 0 Then
      ArkTil.Cells(iRow, iCol).Value = ArkFra.Cells(iRow, iCol).Value
    End If
  Next iCol
Next iRow

Mon jeg har forstået det rigtigt - ikke sikkert. Håber du kan fange min indgangsvinkel samt ArkTil og ArkFra
Avatar billede tida Juniormester
16. januar 2009 - 12:31 #6
Jeg har en tabel i Ark1 som indeholder et antal rækker der hver repræsenterer en transaktion. Jeg ønsker nu at overføre udvalgte data fra disse rækker og danne notaer som udskrives herfra. Notaen ligger i Ark2.

Jeg tror jeg er ved at løse det, her er min makro :

    Public Sub Notaer2()


'Dimensioner rækkevariable
    Dim lngRkStart As Long
    Dim lngRkSlut As Long
    Dim lngRkIndex As Long
   
'Hvilke rækker skal behandles?
    lngRkStart = InputBox("Indtast første rækkenummer")
    lngRkSlut = InputBox("Indtast sidste rækkenummer")

'HERUNDER SKAL ALT ROBOT-KODEN SKRIVES
'=====================================

Dim i As Integer
Dim j As Integer


'====================================================================
 
  'i gennemløber intervallet [Fra , Til] vha. for-løkken
For i = lngRkStart To lngRkSlut

  'Springer over hvis beløb er lig nul
If Val(Cells(i, 5)) <> 0 Then


'INDSÆTTER DATA FRA FORMULAR TIL BESTILLING
'=====================================================================
'Application.Goto Reference:="KS"


Range("KS").Value = Cells(i, 3)            'Køb Salg

Range("Val").Value = Cells(i, 4)            'Valuta

Range("Belob").Value = Cells(i, 5)          'Belob

Range("Initialer").Value = Cells(i, 6)      'Til

Range("Betaling").Value = Cells(i, 7)      'Betaling

Range("Note").Value = Cells(i, 10)          'Note

Range("Kontonummer").Value = Cells(i, 11)  'Kontonummer

Range("Bestiller").Value = Cells(i, 2)      'Bestiller


'Hvis robotten er nået så langt er den kørt igennem uden fejl

Cells(i, 13) = "OK"

'Udskriv
'=====================================================================
Application.Goto Reference:="KS"
NOTA
Application.Goto Reference:="VALUTABESTILLING"
'=================================================================================================

NæsteRække:
'Skriv tid for opdatering
Cells(i, 14) = Now
End If
Next i
Exit Sub


'FEJLHÅNDTERING
'=================================================================================================
Fejl:
'Hvis der har været nogen form for fejl noteres der udover de enelte fejlmeddelser
'og en fejl i OK-kolonnen
Cells(i, 13) = "Fejl"
GoTo NæsteRække
End Sub


jkrons > smid mig et svar
Flemming > Tak for indlæg...men jeg er ikke skarp nok til at få din makro til at fungere hos mig, ærgerligt...for det ville være lækkert med en lille kort sag :-)
Avatar billede jkrons Professor
18. januar 2009 - 17:24 #7
Et svar :-)
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