Just nu i M3-nätverket
Gå till innehåll
Stefan Flink

LÖST kopiera så länge det finns ett värde, (även noll)

Rekommendera Poster

Hej.

Jag försöker få ordning på ett makro men löser inte "IF" delen. Jag har även ett bekymmer till och det är när man ska kopiera samma cell flera ggr. 

Tanken är att det kommer finnas värden att kopiera i blad1, som ska sättas in på blad2. Dessa värden finns i I23:I25 och sen har jag en datumcell i I28. Så långt inga problem, när man kommer vidare så kan det finnas värden att kopiera i J23:J25 som då även vill kopiera I28 samtidigt men då får jag upp att åtgärden fungerar inte på flera markeringar.

Mina värden kommer finnas mellan I23:I25-p23:p25, dock kommer inte alla dessa vara ifyllda varje gång så jag vill få till att man kopierar tills man kommer till en tom (blank) cell. I mitt fall så är noll ett värde som jag behöver.

 

Så här ser det ut för tillfället

 

Sub Skicka()
 '
 ' Kopiering Makro
 ' Kopierar till databas.
 '
With Sheets("Blad1")
    .Range("i23:i25, i28").Copy
    End With
    With Sheets("Blad2")
        .Cells(.Rows.Count, 2).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, _
        Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    End With
With Sheets("Blad1")
    .Range("j23:j25, i28").Copy
    End With
    With Sheets("Blad2")
        .Cells(.Rows.Count, 2).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, _
        Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    End With
    End Sub

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Här får du lite att leka med 

Sub Skicka()
 '
 ' Kopiering Makro
 ' Kopierar till databas.
 '
Dim rKälldata As Range
Dim rDatum As Range
Dim rMålcellsStart As Range

'Ange var dina "rörliga" källdata börjar
Set rKälldata = Sheets("Blad1").Range("i23:i25")

'Ange var ditt datum finns
Set rDatum = Sheets("Blad1").Range("i28")

'Ange var din första lediga rad finns för måldata (med din metod)
Set rMålcellsStart = Sheets("Blad2").Cells(Sheets("Blad2").Rows.Count, 2).End(xlUp).Offset(1)


' Loppa tills första cellen i källdata tomt
Do Until rKälldata(1, 1).Value = ""
'Tilldela målcellerna det tranponerade värdet från den rörliga delen av källdata + orörligt datum
    rMålcellsStart.Resize(1, 3) = Application.WorksheetFunction.Transpose(rKälldata)
    rMålcellsStart.Offset(0, 3) = rDatum
' flyttar områdena för käll- respektive måldata åt höger och nedåt
    Set rKälldata = rKälldata.Offset(0, 1)
    Set rMålcellsStart = rMålcellsStart.Offset(1, 0)
Loop

    End Sub

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...