08. november 2005 - 11:17Der er
22 kommentarer og 1 løsning
Udtag Hvis= til andet ark X flere
oyejo Kan man ikke gøre så man kan have flere end bare ht!? Tænker GT, D10X, MKR, Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = Cells(5, 6).Address Then Target.Offset(, -3).Value = Trim(Target.Offset(, -3).Text) If UCase(Target.Offset(, -3).Value) = "HT" Then Target.Offset(, -3).Value = "HT" End If For Each c In Range(Cells(5, 3), Cells(5, 4)) If IsEmpty(c) Then Cells(5, 3).Select Exit Sub End If Next Cells(5, 6).FormulaR1C1 = "=now()" Call Add_vognløb If vdB(1, 1) = "HT" Then Call HT End If End Sub
Denne kan man jo bare bruge igen Public Sub HT() With Worksheets("HT") .Rows(2).Insert With Range(.Cells(2, 1), .Cells(2, 4)) .Value = vdB .Borders().LineStyle = xlContinuous End With End With ActiveWorkbook.Save End Sub
Arknavn må være det samme som testverdi, slik "HT" ble benyttet før.
Skriv inn de riktige verdier på denne linje: If vTyp = "HT" Or vTyp = "GT" Or vTyp = "D10X" Or vTyp = "MKR" Then (hvis du har riktig mange verdier, får vi finne en annen løsning)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = Cells(5, 6).Address Then Target.Offset(, -3).Value = Trim(Target.Offset(, -3).Text) vTyp = UCase(Target.Offset(, -3).Text)
If vTyp = "HT" Or vTyp = "GT" Or vTyp = "D10X" Or vTyp = "MKR" Then Target.Offset(, -3).Value = vTyp Else vTyp = 0 End If
For Each c In Range(Cells(5, 3), Cells(5, 4)) If IsEmpty(c) Then Cells(5, 3).Select Exit Sub End If Next Cells(5, 6).FormulaR1C1 = "=now()"
obs!Skriv inn de riktige verdier på denne linje: If vTyp = "HT" Or vTyp = "GT" Or vTyp = "D10X" Or vTyp = "MKR" Then Dette gjelder selvfølgelig i : Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sub Add_vognløb() With Worksheets("Vognløb") With Range(.Cells(5, 3), .Cells(5, 6)) vdB = .Value .ClearContents .Resize(1, 1).Select End With .Rows(11).Insert With Range(.Cells(11, 3), .Cells(11, 6)) .Value = vdB .Borders().LineStyle = xlContinuous .Interior.ColorIndex = xlNone End With End With With Worksheets("Printliste") .Rows(2).Insert
With Range(.Cells(2, 1), .Cells(2, 4)) .Value = vdB .Borders().LineStyle = xlContinuous End With
End With ActiveWorkbook.Save End Sub
Public Sub sTYPE()
With Worksheets(vTyp) .Rows(2).Insert With Range(.Cells(2, 1), .Cells(2, 4)) .Value = vdB .Borders().LineStyle = xlContinuous End With End With ActiveWorkbook.Save End Sub
Som du ser i Sub sType() : istedet for navnet på arket, har vi lagt en varialbel med navn vTyp inn i, With Worksheets(vTyp) da vTyp kan ha alle dine 25 verdier, trenger du kun en versjon av Public Sub sTYPE(), den virker på alle ark.
Hvis du har så mange som 25 verdier, er det bedre å benytte versjoen under. der lister du bare opp navnene på dine ark. HUSK! DINE ARK MÅ HA SAMME NAVN SOM DINE TESTVERDIER. ( som i gamle HT, her hadde arket og testverdien samme navn "HT")
Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim it As Variant Dim vTypeList() As Variant
If Target.Address = Cells(5, 6).Address Then
For Each c In Range(Cells(5, 3), Cells(5, 4)) If IsEmpty(c) Then Cells(5, 3).Select Exit Sub End If Next Cells(5, 6).FormulaR1C1 = "=now()"
With Cells(5, 3) Trim (.Text) .Value = UCase(.Text) vTyp = .Text End With
Call Add_vognløb
vTypeList = Array("HT", "GT", "D10X", "MKR") For Each it In vTypeList If vTyp = it Then Call sTYPE Next
I Ark1 Kommer jeg denne kode ind Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim it As Variant Dim vTypeList() As Variant
If Target.Address = Cells(5, 6).Address Then
For Each c In Range(Cells(5, 3), Cells(5, 4)) If IsEmpty(c) Then Cells(5, 3).Select Exit Sub End If Next Cells(5, 6).FormulaR1C1 = "=now()"
With Cells(5, 3) Trim (.Text) .Value = UCase(.Text) vTyp = .Text End With
Call Add_vognløb
vTypeList = Array("HT", "GT", "D10X", "MKR") For Each it In vTypeList If vTyp = it Then Call sTYPE Next
End If End Sub
Og i Module1 disse koder Public vdB() As Variant Sub Add_vognløb() With Worksheets("Vognløb") With Range(.Cells(5, 3), .Cells(5, 6)) vdB = .Value .ClearContents .Resize(1, 1).Select End With .Rows(11).Insert With Range(.Cells(11, 3), .Cells(11, 6)) .Value = vdB .Borders().LineStyle = xlContinuous .Interior.ColorIndex = xlNone End With End With With Worksheets("Printliste") .Rows(2).Insert
With Range(.Cells(2, 1), .Cells(2, 4)) .Value = vdB .Borders().LineStyle = xlContinuous End With
End With ActiveWorkbook.Save End Sub Public Sub sTYPE()
With Worksheets("vTyp") .Rows(2).Insert With Range(.Cells(2, 1), .Cells(2, 4)) .Value = vdB .Borders().LineStyle = xlContinuous End With End With ActiveWorkbook.Save End Sub ----- Men så laver den fejl på "With Worksheets("vTyp")"
With Worksheets(vTyp) .Rows(2).Insert With Range(.Cells(2, 1), .Cells(2, 4)) .Value = vdB .Borders().LineStyle = xlContinuous End With End With ActiveWorkbook.Save End Sub Hvis den set sådan ud laver den Rum-time error'9': Subscript uot of range
Er litt usikker på hva du mener nå. ekstra celler, skal i være i sheet "vognløb"? Kanskje det er letter å forstå hvis du forteller hva det skal benyttes til
Der er bare så det kommer en celle i mellem E og f / Bemærkning / Dato Så dato bliver til G
Synes godt om
Ny brugerNybegynder
Din løsning...
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.