Jeg er ikke helt klar over, hvad du ønsker? Er det bare at indholdet af Sheet2!E3 ganges med indholdet af Sheet1!H33? For så kan det gøres uden kopiering.
antal = 24 Sheets("Ark2").Range("e3") = Sheets("Ark2").Range("e3") * antal
enig med Jan, har dog lavet noget der laver det hele om til variable!!
Option Explicit Dim ws_1 As Worksheet, ws_2 As Worksheet Dim Cell_1 As Range, Cell_2 As Range
' konstanter der kan tilpasses Const sWs_1 As String = "Sheet1" Const sWs_2 As String = "Sheet2" Const sCell_1 As String = "E3" Const scell_2 As String = "H33"
Const Indhold As Integer = 24 '---------//-----------'
Private Sub Overfoer_Data_Click() Set ws_1 = Sheets(sWs_1) Set ws_2 = Sheets(sWs_2) Set Cell_1 = ws_1.Range(sCell_1) Set Cell_2 = ws_2.Range(scell_2)
Nu har jeg kigget på dit forslag Jan og det virker ikke helt efter hensigten og jeg er desværre ikke skarp nok til selv at gennemskue det.
Jeg skal kopiere en data, som er 60timer og 15 minutter. Altså 60:15 det skal fra sheet_1!H33 til sheet_2!E3 og det skal det være et tal.
Kopiere man bare tid over en tal bliver resulteten anderledes, i mit tilfælde 2,51041666666667. For at kunne vise tiden i tal bliver jeg så nød til at gange det med 24 og så får jeg 60,25 og er det jeg skal bruge. Med min makro vil jeg så gerne automatisere at tallet bliver ganget med 24
store-morten har den simple og her den med en del variable:
Option Explicit Dim ws_1 As Worksheet, ws_2 As Worksheet Dim Cell_1 As Range, Cell_2 As Range
' konstanter der kan tilpasses Const sWs_1 As String = "Sheet1" Const sWs_2 As String = "Sheet2" Const sCell_1 As String = "H33" Const scell_2 As String = "E3"
Const Indhold As Integer = 24 '---------//-----------'
Private Sub Overfoer_Data_Click() Set ws_1 = Sheets(sWs_1) Set ws_2 = Sheets(sWs_2) Set Cell_1 = ws_1.Range(sCell_1) Set Cell_2 = ws_2.Range(scell_2)
If Not Cell_1 = "" Then Cell_2.Value = Cell_1.Value * Indhold End If End Sub
Jan din løsning er super, virke perfekt. Nu er det kun en start på mit lille projekt og jeg håber I vil hjælpe, da jeg overhoved ikke har styr på programmering.
Nu vil jeg gerne have samme knap til at kopiere sheet1!I35:I37 til sheet2!E4:E6 og også her skal der ganges med 24. Vil I hjælpe?
Morten jo de kommer her, og er nemme at udvide (I min verden)
Option Explicit Dim ws_1 As Worksheet, ws_2 As Worksheet Dim Cell_1 As Range, Cell_2 As Range Dim sCell(1 To 4, 1 To 2) As String ' 1 to 4 giver 4 rækker (øg hvis der skal bruges flere) 1,2 laver to kolonner i array'et Dim Count As Integer
' konstanter der kan tilpasses Const sWs_1 As String = "Sheet1" Const sWs_2 As String = "Sheet2"
Const Indhold As Integer = 24 '---------//-----------'
Private Sub Overfoer_Data_Click() Set ws_1 = Sheets(sWs_1) Set ws_2 = Sheets(sWs_2)
For Count = LBound(sCell_1, 1) To UBound(sCell_1, 1) ' looper gennem alle rækker i array'et Set Cell_1 = ws_1.Range(sCell(Count, 1)) Set Cell_2 = ws_2.Range(sCell(Count, 2))
If Not Cell_1 = "" Then Cell_2.Value = Cell_1.Value * Indhold End If Next End Sub
Nej morten din fejler ikke. :) Men når jeg nu kommer dertil hvor jeg skal lave en dropdown liste ud fra mine sheets og skal kunne vælge at over data til det sheet jeg vælger i listen så skal jeg bruge Jans løsning.
Tak nu virker det. Ja Jan det ved jeg godt og beklager hvis du synes det er træls og jeg er sikkert forkert på den, men jeg vil gerne have en ting til at virke af gangen, så har jeg måske en mulighed for at se hvordan tingene gøres.
Jeg har nu selv, meget stolt, lave denne macro. Det er en dropdown list med navne på mine sheets. Listen har dog ikke navnene før jeg har været inde og køre macroen i "Vis programkode" har prøvet og få den til at virke når jeg åbner excel filen.
Sub Auto_Open() Dim ws As Worksheet For Each ws In Worksheets ComboBox1.AddItem ws.Name Next ws End Sub
Beklager, men jeg er ikke så skarp til programmering.
Koden som knappen afvikler er Option Explicit Dim ws_1 As Worksheet, ws_2 As Worksheet Dim Cell_1 As Range, Cell_2 As Range Dim sCell(1 To 4, 1 To 2) As String ' 1 to 4 giver 4 rækker (og hvis der skal bruges flere) 1,2 laver to kolonner i array'et Dim Count As Integer
' konstanter der kan tilpasses Const sWs_1 As String = "sheet1" Const sWs_2 As String = "sheet2"
Const Indhold As Integer = 24 '---------//-----------'
Private Sub Overfoer_Data_Click() Set ws_1 = Sheets(sWs_1) Set ws_2 = Sheets(sWs_2)
For Count = LBound(sCell, 1) To UBound(sCell, 1) ' looper gennem alle rækker i array'et Set Cell_1 = ws_1.Range(sCell(Count, 1)) Set Cell_2 = ws_2.Range(sCell(Count, 2))
If Not Cell_1 = "" Then Cell_2.Value = Cell_1.Value * Indhold End If Next End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.