Gå til innhold

Kommandoknapp / macro i excel


Anbefalte innlegg

Jeg lager et skjema som skal registrere utlevering og innlevering av utstyr.  Det er greit nok

Det er faste enheter, med registrert dato for utlevering, og innlevering.

 

Navn på den som låner utstyr i kolonne B, dato ut i kolonne  H og dato inn i kolonne I                        

 

Jeg har så laget en kommandoknapp, for å nullstille den enkelte rad, og overføre data til ny fane for en type logg.

Jeg har tilordnet macro til commandoknappen, en modifisert kode funnet på denne nettsiden:

 

Private Sub Nullstill_Click()
 
Dim Src As Worksheet 
 
Dim Trg As Worksheet 
 
Dim Rsrc As Long 
 
Dim Rtrg As Long 
 
Dim C As Long
 
Set Src = ThisWorkbook.Sheets("Utstyr") 
 
Set Trg = ThisWorkbook.Sheets("History") 
 
Rsrc = ActiveCell.Row 
 
Rtrg = Trg.Cells(Trg.Rows.Count).End(xlUp).Row + 1 
 
For C = 1 To 9 
 
    Trg.Cells(Rtrg, C).Value = Src.Cells(Rsrc, C).Value
    
Next
 
If MsgBox("Raden ble oveført. Skal vi tømme skjemaet?", vbYesNo + vbQuestion) = vbYes Then
    
    For C = 8 To 9 
    
        Src.Cells(Rsrc, C).Value = ""
        
    Next
    
End If
 
End Sub
 
Dette fungerer halvveis.  Og jeg klarer ikke finne feilen.
 
Det jeg ønsker er at feltene i kolonne B, H og I nullstilles på aktuell rad, og at informasjonen på raden overføres til ny fane.
 
Det som skjer er
  • Kolonne H og I nullstilles, kolonne B blir stående (jeg finner ikke ut hvordan inkludere kolonne B i formelen uten å få scriptfeil)
  • Dataene overføres til rad 2 i ny fane, men overskrives neste gang jeg nullstiller.  Jeg ønsker at det skal legge seg under på første ledige rad.

 

Noen som har noen tips til hvordan endre scriptet?

Endret av Gerotti
Lenke til kommentar
Videoannonse
Annonse
Enkel og uelegant fiks:

 

    For C = 8 To 9 

    

        Src.Cells(Rsrc, C).Value = ""

        

    Next

 

endre til

 

    For C = 8 To 9 

    

        Src.Cells(Rsrc, C).Value = ""

    Next

        Src.Cells(Rsrc, 2).Value = ""

End If

 

 

Prøv å endre Rtrg = Trg.Cells(Trg.Rows.Count).End(xlUp).Row + 1  til Rtrg = Sheets("SHEET TO").Range("B" & rows.count).End(xlUp).Row + 1

Endret av asdffdsa
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...