Hej, Principen är denna Hej, Den här suben finns i bladets kod del Hej Thommy, Du har fått in ett extra End i slutet på raden Ha! Där ser man. Lätt att stirra sig blind ibland. Tack! Är det fråga om ett fast antal rader eller kan det Radantalet är oklart, men min förhoppning är att loopen pågår sålänge som jag väljer att skriva in värden i a-kolumnen. Utgår från rad 65000 (Vet inte vilken version av Excel det är) Tack! Hej igen,VBA-fråga, kopiera cellvärde
Är relativt ny på VBA och har en fråga som jag tror borde vara ganska enkel.
Jag jobbar med ett dokument där jag vill att det jag skriver i cell B3 automatiskt upprepar sig i cell Y3 och det som skrivs i cell B4 upprepar sig i cell Y4 osv.
Det är inte jag som ska jobba med dokumentet sen så det bör vara relativt användarvänligt.
Har spelat in ett makro där B3:s cellvärde kopieras i Y3 men får det inte att funka. Är det någon som vet hur jag ska gå tillväga?
Hälsningar
FredrikSv: VBA-fråga, kopiera cellvärde
Sub MoveValue()
Range("Y4").Value = Range("B4").Value
End Sub
men för att få det att ske automatiskt måste du
lägga in en snutt i SelectionChange eventet på det blad det skall ske
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call MoveValue
End Sub
Sv:VBA-fråga, kopiera cellvärde
Tack så mycket!
Får dock felmeddelandet "sub eller function har inte definierats" på strängen:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Är det något i koden som ska ändras?
Hälsningar
Fredrik JohanssonSv: VBA-fråga, kopiera cellvärde
markera bladet i VBA editorn och klicka höger / visa kod
I vänstar listboxen välj Worksheet
I högra finns alla events för bladet
bla dettaSv:VBA-fråga, kopiera cellvärde
Har gjort detta, men det funkar ändå inte. Koden ser ut enligt följande:
Sub MoveValue()
Range("Z3").Value = Range("A3").ValueEnd
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call MoveValue
End Sub
Den ligger under worksheet, selection change. Konstigt nog funkar samma kod på min mac som jag har hemma (?). Där är istället problemet att jag vill att åtgärden ska upprepa sig för a4=z4, a5=z5, a6=z6 osv. utan att behöva skriva in alla celler som det ska gälla i. Går det att lägga in en loop där?
Tack för hjälpen, hälsningar
Fredrik
Fredrik Sv: VBA-fråga, kopiera cellvärde
Range("Z3").Value = Range("A3").ValueEnd
skall vara
Range("Z3").Value = Range("A3").Value
Ja det går att göra en loop
Tala om vad du vill skall hända
Sv:VBA-fråga, kopiera cellvärde
Vill att samma princip för cellerna a3=z3 ska gälla för a4=z4 osv. Det vill säga att följande celler i kolumn A ska kopiera sig på samma sätt som i ovanstående formel till cellerna i kolumn Z rad för rad.
Hälsningar
Fredrik Sv: VBA-fråga, kopiera cellvärde
bli i princip hela bladet???
Om rad antalet inte är känt måste man ta reda på
vilken som är sista rad för att faställa hur länge loopen
skall pågåSv:VBA-fråga, kopiera cellvärde
Sv: VBA-fråga, kopiera cellvärde
och kollar uppåt vilken som är sista rad i kolumn A
Loopar från rad 1 till sista rad i A och gör kopieringen till Y
Sub MoveValue()
Dim inx As Long
Dim LastRow As Long
LastRow = Cells(65000, 1).End(xlUp).Row
For inx = 1 To LastRow
Cells(inx, 25).Value = Cells(inx, 1).Value
Next inx
End Sub
hoppas det hjälper
man kanske också skall se till att eventet bara
fyrar av när något skrivs i kolumn A
If Target.Column = 1 Then
Call MoveValue
End If
Sv:VBA-fråga, kopiera cellvärde
Ska prova när jag är hemma från semestern igen.
Hälsningar
FredrikSv:VBA-fråga, kopiera cellvärde
Detta har legat på is ett tag, men nu ville chefen att jag skulle ta tag i detta igen. Har försökt följa dina anvisningar och skrivit följande kod:
Sub MoveValue()
Range("Z4").Value = Range("A4").Value
End Sub
------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call MoveValue
End Sub
------------
Sub MoveValue()
Dim inx As Long
Dim LastRow As Long
LastRow = Cells(65000, 1).End(xlUp).Row
For inx = 1 To LastRow
Cells(inx, 25).Value = Cells(inx, 1).Value
Next inx
End Sub
------------
If Target.Column = 1 Then
Call MoveValue
End If
------------
Får dock ett felmeddelande "Kompilieringsfel: Mångtydigt namn har upptäckts: MoveValue". Med syftning på
Sub MoveValue()
Dim inx As Long
etc
Vad gör jag för fel?
Med vänliga hälsningar
Fredrik Johansson