PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAKopiera en cell flera gångerKopiera en cell flera gånger
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-02-21 09:09
 

 Hej! Jag har lyckats få ihop ett macro som flyttar över info från cell A1 till I2. 

Cell A1 uppdatersa varje timme. Sedan kopierar den över data till I2,I3,I4,I5 osv. Tillslut blir listan så lång att den inte går att hantera, och jag är bara intresserad av dom senaste timmarna. 

Jag har försökt mig på ett macro som ska radera första cellen i I2 och flytta upp resterande från cell I när man har fått ett visst antal kopieringar.

Alltså jag vill ha data från I2 till I30 och sedan när nästa uppdatering sker ska I2 raderas och och det nya talet fyllas på i I30

Här kommer det första macrot som fungerar som jag vill.


Option Explicit
Public dTime As Date

Sub ValueStore()
Dim dTime As Date
    Range("I" & Cells(Rows.Count).Row).End(xlUp).Offset(1, 0).Value = Range("A1").Value
    Call StartTimer
   
End Sub


Sub StartTimer()
    dTime = Now + TimeValue("01:00:00")
    Application.OnTime dTime, "ValueStore", Schedule:=True
End Sub

Sub StopTimer()
    On Error Resume Next
    Application.OnTime dTime, "ValueStore", Schedule:=False
End Sub

_________________________________________________________________________________________________________

Och sedan vill jag lägga till den här, men får det inte att fungera.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NR As Long
If Not Intersect(Target, Range("A1")) Is Nothing Then
   NR = Range("I" & Cells(Rows.Count).Row).End(xlUp).Row + 1
   Range("I" & NR).Value = Range("A1").Value
   If NR > 30 Then Range("I1").Delete xlShiftUp
End If
End Sub

 

Nytt inlägg
 2019-02-21 11:31
 
hej hej.

som den ser ut nu så triggas event både av ontime och worksheet_change. plocka dina tre rader från change eventet in till valuestore, där du ersätter din rad som sätter värde till i-kolumnen med de tre från change... ta bort change eventet. sedan kan du sätta ontime till att triggas efter en sekund medan du testar :).

NR = Range("I" & Cells(Rows.Count).Row).End(xlUp).Row + 1
Range("I" & NR).Value = Range("A1").Value
If NR > 30 Then Range("I1").Delete xlShiftUp
Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAKopiera en cell flera gångerKopiera en cell flera gånger

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter