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

Listbox problem


Tommy H
 Share

Rekommendera Poster

Hej!

Jag har två problem som jag inte får ordning på i nedanstående kod!

1. Koden måste stoppa vid selekteringen i Lisbox1. Dvs. det måste ske ett aktivt val innan vi kör vidare!

2. Jag skulle vilja ha en Listbox (eller textbox?) för varje val jag gör med Inputboxarna, men jag får inte in det värdet i boxen.

T.ex vid val av stÅr så vill jag ha en Listbox däre det valda värdet (=stÅr) dyker upp.

Koden längre ner är för att få till en Löpnummerserie med utskrift för varje nummer, och det fungerar.


Private Sub CommandButton1_Click()
'Kör
Dim stÅr As String
    Dim stMånad As String
    Dim targetcell, target As String
    Dim stLöpnummer As Integer
    Dim stAntal As Integer
    Dim WsTarget As Worksheet
    Dim i, j, k As Integer
    Dim ValdaBlad As String
    
    Set WsTarget = ActiveSheet
    
        targetcell = Application.InputBox("Målcellen:", _
        "t.ex D6", Type:=2)
        
        
        stÅr = Application.InputBox("Ange Årtalet:", _
        "Årtal 2st siffror", Type:=1)
        stMånad = Application.InputBox("Ange Månaden:", _
        "Månaden med siffror", Type:=1)
        stLöpnummer = Application.InputBox("Första löpnumret:", _
        "Första Löpnummer", Type:=1)
        stAntal = Application.InputBox("Hur många Löpnummer:", _
        "Antal Löpnummer", Type:=1)
        
        If Len(stMånad) < 2 Then
            stMånad = "0" & stMånad
        End If
        
    With ListBox1
            .Clear
        For j = 1 To ActiveWorkbook.Sheets.Count
            .AddItem ActiveWorkbook.Sheets(j).Name
        Next j
    End With
     
    For k = 0 To ListBox1.ListCount - 1
        If ListBox1.Selected(k) Then
            ValdaBlad = ListBox1.List(k) & "," & ValdaBlad
        End If
    Next k
        If ValdaBlad = "" Then
                MsgBox "Inget blad är markerat, avslutar!"
                UserForm2.Hide
                Exit Sub
        End If

                ValdaBlad = Left(ValdaBlad, Len(ValdaBlad) - 1)

                Sheets(Split(ValdaBlad, ",")).Select
        
                WsTarget.Activate
                WsTarget.Range(targetcell).NumberFormat = "@"
        
    Do Until i = stAntal
            If Len(stLöpnummer) < 4 Then
                stLöpnummer = stLöpnummer + 1
            End If
                i = i + 1
            
            If stLöpnummer < 10 Then
                WsTarget.Range(targetcell).Value = (stÅr & stMånad & 0 & 0 & CStr(stLöpnummer))
            ElseIf stLöpnummer < 100 Then
                WsTarget.Range(targetcell).Value = (stÅr & stMånad & 0 & CStr(stLöpnummer))
            Else
                WsTarget.Range(targetcell).Value = (stÅr & stMånad & CStr(stLöpnummer))
            End If
                WsTarget.Range(targetcell).NumberFormat = "@"
ActiveWindow.SelectedSheets.PrintOut
  
    Loop

ListBox1.Clear
UserForm2.Hide

End Sub

Länk till kommentar
Dela på andra webbplatser

Ok!

Enkelt när man ser det, men komplicerat att få till det själv!

Tack!

Länk till kommentar
Dela på andra webbplatser

Jo, det ligger redan i UserForm2, men jag tog inte med det i den visade koden!

Tanken är ju mycket riktigt att jag ska "kalla på" formuläret via en knapp.

Då ska formuläret komma upp och du får via inmatningsrutor välja hur "löpnummersträngen" ska se ut.

Jag vill dock "lyxa" till det med att visa vad du väljer mha av Textboxarna som jag frågade på.

Man får stega sig fram till Löpnummersträngen för att slutligen välja vilka bladflikar som ska skrivas ut, och det är här som jag vill att koden stoppar innan valet av flikarna är gjort, och inte som det nu är att det kör förbi och blir ett felmeddelande istället!

Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...