Avatar billede mvhansen Nybegynder
15. september 2010 - 17:18 Der 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

With Sheets("senior")
  Label32.Caption = .Range("q3").Value & "    " & .Range("r3").Value & "    " & .Range("s3").Value & "      " & .Range("t3").Value & "      " & .Range("U3").Value & "      " & .Range("V3").Value & "      " & .Range("W3").Value
End With

With Sheets("senior")
  Label33.Caption = .Range("q4").Value & "    " & .Range("r4").Value & "    " & .Range("s4").Value & "      " & .Range("t4").Value & "      " & .Range("U4").Value & "      " & .Range("V4").Value & "      " & .Range("W4").Value
End With

End sub

mvh

mvhansen
Avatar billede kabbak Professor
15. september 2010 - 17:42 #1
Private Sub UserForm_Activate()
Dim A As String
    With Sheets("senior")
        A = .Range("q2").Value & "    " & .Range("r2").Value & "    " & .Range("s2").Value & "      " & .Range("t2").Value & "      " & .Range("U2").Value & "      " & .Range("V2").Value & "      " & .Range("W2").Value
        If Len(A) > 0 Then Label31.Caption = A
        A = .Range("q3").Value & "    " & .Range("r3").Value & "    " & .Range("s3").Value & "      " & .Range("t3").Value & "      " & .Range("U3").Value & "      " & .Range("V3").Value & "      " & .Range("W3").Value
        If Len(A) > 0 Then Label32.Caption = A
        A = .Range("q4").Value & "    " & .Range("r4").Value & "    " & .Range("s4").Value & "      " & .Range("t4").Value & "      " & .Range("U4").Value & "      " & .Range("V4").Value & "      " & .Range("W4").Value
        If Len(A) > 0 Then Label33.Caption = A
    End With
End Sub
Avatar billede kabbak Professor
15. september 2010 - 18:17 #2
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
Avatar billede mvhansen Nybegynder
16. september 2010 - 22:01 #3
Hej Kabbak

Det funger ikke.
I de celler med data der bliver hentet ind i labels,
er der nogle formeler i som henter data fra andre celler.

mvh
mvhansen
Avatar billede kabbak Professor
17. september 2010 - 08:49 #4
ok
prøv at sætte .value på

Cells(R, K).Value
Avatar billede mvhansen Nybegynder
17. september 2010 - 14:26 #5
Hej
Jeg får en fejl i denne linje

A = A & .Cells(R, K).Value

mvh
mvhansen
Avatar billede mvhansen Nybegynder
17. september 2010 - 14:32 #6
Hej
Hvis der står noget i cellen virker det

mvh
mvhansen
Avatar billede mvhansen Nybegynder
17. september 2010 - 14:39 #7
Hej
Hvis der står noget i cellen virker det.
Hvis der ikke står noget virker det ikke

mvh
mvhansen
Avatar billede kabbak Professor
17. september 2010 - 21:03 #8
Jeg kan ikke få den fejl, er der formel i cellen ?
Avatar billede mvhansen Nybegynder
17. september 2010 - 22:40 #9
Hej
Ja der er formel i cellen.

i celle q2 formel =SMALL(O2:O200;1)

i celle r2 formel =SMALL($A$2:$A$200+$O$2:$O$200*1000;1)-Q2*1000

i celle s2 formel =VLOOKUP(R2;$A$2:$C$200;2;FALSE)

i celle t2 formel =VLOOKUP(R2;$A$2:$C$200;3;FALSE)

i celle u2 formel =VLOOKUP(R2;$A$2:$D$200;4;FALSE)

i celle v2 formel =LARGE(L2:L200;1)

i celle w2 formel =VLOOKUP(R2;$A$2:$M$200;13;FALSE)


mvh
mvhansen
Avatar billede kabbak Professor
20. september 2010 - 18:28 #10
jeg kan ikke få den til at fejle, kan du sende et eksempel
kabbak snabela vip dot cybercity dot dk
Avatar billede kabbak Professor
30. september 2010 - 23:56 #11
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
Avatar billede kabbak Professor
30. september 2010 - 23:58 #12
fejlmedellelse = fejlmeddelse

det er sent ;-))
Avatar billede mvhansen Nybegynder
01. oktober 2010 - 08:47 #13
Hej Kabbak
Det var hurtig :-)
Du får mange tak for hjælpen.

mvh

mvhansen
Avatar billede kabbak Professor
02. oktober 2010 - 20:11 #14
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
Avatar billede mvhansen Nybegynder
03. oktober 2010 - 00:01 #15
Hej kabbak
Tak skal du have
mvh
mvhansen
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester