15. september 2010 - 17:18Der er
14 kommentarer og 1 løsning
VB i excel
Hej Eksperter
jeg har lavet en Userform hvor jeg har nogle label på. Jeg skal have sat nogle if Then sætninger ind, fordi hvis der ikke står noget i cellerne fejler userforme.
Er der en der kunne hjælpe mig.
Her er koden jeg bruger
Private Sub UserForm_Activate() With Sheets("senior") Label31.Caption = .Range("q2").Value & " " & .Range("r2").Value & " " & .Range("s2").Value & " " & .Range("t2").Value & " " & .Range("U2").Value & " " & .Range("V2").Value & " " & .Range("W2").Value End With
her er så koden som gør det nemmere at tilføje flere labels
Private Sub UserForm_Activate() Dim A As String, R As Integer, K As Integer, L As Integer With Sheets("senior") L = 31 'startlabels For R = 2 To 4 ' rækker, ret til flere rækker, hvis du laver flere labels For K = 17 To 23 ' kolonner A = A & .Cells(R, K) If K < 23 Then A = A & " " ' sætter mellemrum Next
If Len(A) > 0 Then Me.Controls("label" & L).Caption = A L = L + 1 A = "" Next End With End Sub
With Sheets("Damer") Dim A As String L = 31 'startlabels For R = 2 To 4 ' rækker, ret til flere rækker, hvis du laver flere labels For K = 17 To 23 ' kolonner If Not IsError(.Cells(R, K)) Then ' den fejlede når du har fejlmedellelse på formlen, det fanges her A = A & .Cells(R, K) If K < 23 Then A = A & " " ' sætter mellemrum End If Next
If Len(A) > 0 Then Me.Controls("label" & L).Caption = A L = L + 1 A = "" Next End With
Jeg har lige lavet koden så den gælder alle ark i TOP 3. Så skal du ikke bruge andet.
Private Sub UserForm_Activate() Dim Sider As Variant, I As Integer Dim A As String, R As Integer, K As Integer, L As Integer Sider = Array("Senior", "Oldboys", "Veteran", "Super_Veteran", "Damer", "Junior") ' dine ark, husk rigtig rækkefølge
L = 19 'startlabels
For I = 0 To UBound(Sider) With Sheets(Sider(I)) For R = 2 To 4 ' rækker, ret til flere rækker, hvis du laver flere labels For K = 17 To 23 ' kolonner If Not IsError(.Cells(R, K)) Then ' fanger fejl i celler A = A & .Cells(R, K).Value If K < 23 Then A = A & " " ' sætter mellemrum End If Next
If Len(A) > 0 Then Me.Controls("label" & L).Caption = A L = L + 1 A = "" Next End With 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.