Avatar billede infelix Nybegynder
18. april 2007 - 16:20 Der er 5 kommentarer

Fejl i kode

Hej, er der nogen der kan se hvad der er galt her?!? Jeg får nemlig ikke vist det som jeg vælger i min pop-up menu!Får ikke en fejl-meddelse,og det ark som skulle vise det pågældende data bliver åbnet,men der er bare ingen data i den!DEt ser ud til,at det data der skulle overføres fra arket "DATABASE" til arket "PRIORITY" ikke bliver overført som det skal!

Her er koden:

Private Sub CmdOK_Click()
Rem hvis element er udpeget
  If Me.LstPriority <> -1 Then
    findPriorityDB Me.LstPriority, 16      'række 16 = Q
   
    ActiveWorkbook.Sheets("PriorityStatus").Activate
    Unload UfmPriority
  End If
End Sub
Private Sub LstPriority_Click()          'ved klik i listbox

End Sub
Private Sub Userform_Activate()
    With LstPriority
        .RowSource = "PGRPriority"
        .ListIndex = 0
    End With
End Sub
Private Sub findPriorityDB(navn, kolonne)
Dim arkRæk
    arkRæk = 5
 
Rem Slet gl. indhold
On Error Resume Next
    ActiveWorkbook.Sheets("PriorityStatus").Range("A5:I54").Select
    Selection.ClearContents

    With ActiveWorkbook.Sheets("Database")
        For ræk = 5 To 65500
            If .Cells(ræk, kolonne) = "" Then
                Exit Sub
            Else
                If .Cells(ræk, kolonne) = navn Then
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 1) = .Cells(ræk, 3)  'kolonne - C
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 2) = .Cells(ræk, 9)  'kolonne - J
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 3) = .Cells(ræk, 13)  'kolonne - N
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 4) = .Cells(ræk, 17)  'kolonne - R
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 5) = .Cells(ræk, 18)  'kolonne - S
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 6) = .Cells(ræk, 19)  'kolonne - T
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 7) = .Cells(ræk, 20)  'kolonne - U
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 8) = .Cells(ræk, 14)  'kolonne - O
                    ActiveWorkbook.Sheets("Priority").Cells(arkRæk, 9) = .Cells(ræk, 16)  'kolonne - Q
Rem .... evt flere kolonner

                    arkRæk = arkRæk + 1
                End If
            End If
        Next ræk
   
    End With
End Sub
Avatar billede word-hajen Nybegynder
21. april 2007 - 20:05 #1
Har du prøvet at steppe din kode igennem? Sæt evt. et breakpoint ved If .Cells(ræk, kolonne) = "" Then
og tag den derfra.

Nu er det ikke sådan, at der er store/små-bogstav-forvirring mellem din liste og dit ark, vel?
Avatar billede infelix Nybegynder
23. april 2007 - 13:50 #2
hmm...har rettet lidt på det...men stadig ingen held:(,her er den nye kode:

Private Sub CmdOK_Click()
Rem hvis element er udpeget
  If Me.LstPriority <> -1 Then
    findPriorityDB Me.LstPriority, 16      'række 16 = Q
   
    ActiveWorkbook.Sheets("Ark1").Activate
    Unload UfmPriority
  End If
End Sub


Private Sub LstPriority_Click()          'ved klik i listbox

End Sub


Private Sub Userform_Activate()
    With LstPriority
        .RowSource = "PGRPriority"
        .ListIndex = 0
    End With
End Sub
Private Sub findPriorityDB(navn, kolonne)
Dim arkRæk
    arkRæk = 5
 
Rem Slet gl. indhold
On Error Resume Next
    ActiveWorkbook.Sheets("Ark1").Range("A5:I5").Select
    Selection.ClearContents

    With ActiveWorkbook.Sheets("Database")
        For ræk = 5 To 65500
            If .Cells(ræk, kolonne) = "" Then
                Exit Sub
            Else
                If .Cells(ræk, kolonne) = navn Then
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 1) = .Cells(ræk, 3)  'kolonne - C
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 2) = .Cells(ræk, 9)  'kolonne - J
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 3) = .Cells(ræk, 13)  'kolonne - N
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 4) = .Cells(ræk, 17)  'kolonne - R
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 5) = .Cells(ræk, 18)  'kolonne - S
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 6) = .Cells(ræk, 19)  'kolonne - T
                    ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 7) = .Cells(ræk, 20)  'kolonne - U
                   
Rem .... evt flere kolonner

                    arkRæk = arkRæk + 1
                End If
            End If
        Next ræk
   
    End With
End Sub
Avatar billede word-hajen Nybegynder
23. april 2007 - 14:03 #3
Jeg prøver at gentage mit spørgsmål. Har du steppet din kode igennem linje for linje? Nogle gange kan man ikke se skoven for bare træer.
Avatar billede infelix Nybegynder
23. april 2007 - 14:19 #4
yep..det har jeg...fik ik' ret meget ud af det...:(
Avatar billede word-hajen Nybegynder
23. april 2007 - 19:20 #5
Det er ikke mange oplysninger, du kommer med. Så må jeg jo spørge i stedet for - kommer du ind i linjen

  ActiveWorkbook.Sheets("Ark1").Cells(arkRæk, 1) = .Cells(ræk, 3)  'kolonne - C

Hvis du gør, så tjek hvad value på .Cells(ræk, 3) er.
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