18. januar 2004 - 18:10Der er
16 kommentarer og 2 løsninger
excel VBA Skal aflevere data på flere forskellige regneark
If ListBox1.Text = "Autodrift" Then Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If With ActiveCell
.Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text .Offset(0, 6).Value = TextBox3.Text End With End If
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
If ListBox1.Text = "Autodrift" Then Worksheets(ListBox1.Text).select ' NY Linie Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If With ActiveCell
.Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text .Offset(0, 6).Value = TextBox3.Text End With End If
den virker kun før else hvis den også skal virke efter else så
Worksheets("Autodrift").select ' NY Linie If ListBox1.Text = "Autodrift" Then Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If With ActiveCell
.Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text .Offset(0, 6).Value = TextBox3.Text End With End If
Ja, jeg kludrer i det. Lad mig prøve at gøre det omvendt så: Foruden at aflevere data til arket "autodrift" skal der også afleveres data til fx "ark33" Jeg ønsker med andre ord først at aflevere data til "ark1" og herefter til "ark2". Er det mere klart nu?
Sub Gem() If ListBox1.Text = "Autodrift" Then Worksheets(Autodrift).Activate Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select With ActiveCell .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text .Offset(0, 6).Value = TextBox3.Text End With End If End If Call FlereArk("Ark1") Call FlereArk("Ark2") End Sub
Public Sub FlereArk(Navn As String) Worksheets(Navn).Activate lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select With ActiveCell
Jeg har selv løst det således, hvor der bliver overført til 3 ark samtidig,nemlig henholdsvis 1) autodrift,2)en opsamlingskonto"auto" og en opsamlingskonto "bank", men jeg er altså ikke tilfreds med løsningen, som jeg finder er noget tung. Det virker, men der må findes en mere elegant løsning!?
If ListBox1.Text = "Autodrift" Then Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If With ActiveCell
.Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text .Offset(0, 6).Value = TextBox3.Text End With End If
If ListBox1.Text = "Autodrift" Then Sheets("Auto").Select Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If
With ActiveCell .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text End With End If
If ListBox1.Text = "Autodrift" Then Sheets("Bank").Select Range("a3").Select If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If
With ActiveCell .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 4).Value = TextBox3.Text End With End If
Sub Gem() If ListBox1.Text = "Autodrift" Then Worksheets("Autodrift").Activate If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If
With ActiveCell .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text ' hvorfor TextBox3 2 gange .Offset(0, 6).Value = TextBox3.Text End With Call FlereArk("Ark1") ' Arket kaldes hvis ListBox1.Text = "Autodrift" End If Call FlereArk("Ark2") ' Arket kaldes altid End Sub
Public Sub FlereArk(Navn As String) Worksheets(Navn).Activate If Range("a3").Value = "" Then Range("a3").Select Else lastrow = Cells(Rows.Count, "a").End(xlUp).Row Range("a" & lastrow + 1).Select End If With ActiveCell .Value = TextBox1.Text .Offset(0, 1).Value = TextBox2.Text .Offset(0, 2).Value = TextBox4.Text .Offset(0, 3).Value = TextBox3.Text ' hvorfor TextBox3 2 gange .Offset(0, 6).Value = TextBox3.Text End With 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.