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

 
ForumForumDiskussionerDiskussionerExcelExcelMakrotrasselMakrotrassel
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2021-10-14 11:24
 

Jag har ett enkelt makro som hämtar värden från ett blad och lägger in i ett annat.
Det hämtar värden från en del lösa celler samt från området B14:I33 på blad "Försäljning"
Dessa klistras sedan in på blad "Transaktioner". 

Får dock inte skriptet att fungera om det inte finns minst två rader med värden inom området.
Om det bara finns en rad med värden inom området, markerar  Range(Selection, Selection.End(xlToRight)).Select
utanför det önskade området, och lever sedan rövare när det klistras in på blad "Transaktioner"

Makrot ser ut enligt följande:

------------------------------------------

Sub Makro2()

 

'Hämta FakturaNr

    Range("H4").Select

    Selection.Copy

    Sheets("Transaktioner").Select

    Range("K1").Select

    Selection.End(xlDown).Select

    ActiveCell.Offset(1, -10).Range("A1").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'Hämta Säljare

    Sheets("Försäljning").Select

    Range("B7").Select

    Selection.Copy

    Sheets("Transaktioner").Select

    Range("K1").Select

    Selection.End(xlDown).Select

    ActiveCell.Offset(1, -9).Range("A1").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'Hämta Betaltyp

    Sheets("Försäljning").Select

    Range("A10").Select

    Selection.Copy

    Sheets("Transaktioner").Select

    Range("K1").Select

    Selection.End(xlDown).Select

    ActiveCell.Offset(1, -8).Range("A1").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'Hämta Transaktioner

    Sheets("Försäljning").Select

    Range("B14").Select

    Range(Selection, Selection.End(xlDown)).Select

    Range(Selection, Selection.End(xlToRight)).Select

    Application.CutCopyMode = False

    Selection.Copy

    Sheets("Transaktioner").Select

    Range("K1").Select

    Selection.End(xlDown).Select

    ActiveCell.Offset(1, -7).Range("A1").Select

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

 

End Sub

------------------------------------------

Jag förstår vart det går fel, kan bara inte komma på hur det skall kunna acceptera endast en rad med värden.

Med vänlig hälsning

Jonny

Nytt inlägg
 2021-10-15 07:29
 

 Hej Jonny.

Har du testat att det inte råkar vara raden ovanför som strular till det? Range(Selection, Selection.End(xlDown)).Select


Om cellen under är tom så kommer den satsen välja alla rader ned till nästa icke tomma värde, eller till slutet på arket i värsta fall. Du bör undersöka om cellen under har ett värde innan du utökar markeringen. 
If selection.offset(1,0) <>"" then
Range(Selection, Selection.End(xlDown)).Select
End IF
Sitter på telefonen och saknar möjlighet att testa, men det borde funka. Sedan så har du ganska många ställen där du försöker utöka markeringen, så du behöver använda ganska många IF satser. Selection.end motsvarar att trycka Ctrl + pil och ibland också ctrl+ shift +pil
Mvh
Christian   
Nytt inlägg
 2021-10-15 08:49
 

 Tack för det :-) 

Ska ta en kik på det när jag kommer hem.

 

Mvh

 

Jonny

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelMakrotrasselMakrotrassel

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