Avatar billede IrisLF Juniormester
16. juli 2014 - 17:39

Fejlkode Type mismatch (Error 13) VBA ... HJÆLP

Jeg får en Type mismatch (Error 13)fejl i min kode.

Det hele virkede indtil jeg forsøgte at ændre inputbox til application.inputbox (for at kunne få en scroll bar til min inputbox)

nu - selv hvis jeg retter tilbage, virker det slet ikke længere.

Jeg forstår ikke helt hvorfor. Nogen der kan fange fejlen?

Pls. hjælp mig... :)



Rem Version 3
Rem =========
Const sti = "C:\Users\Iris\Dropbox\Sponsor\Sponsor mappe"      '<--- SKAL TILPASSES når skabelonen og sponsorliste flyttes til ny destination

Dim xlsKontrakt As Workbook                                    '<--- tabellen kan udvides efter behov - p.t. anvendes pladserne fra 0 - 10 *)
Dim tabel(11)

Dim xlsSP As Workbook
Dim antalRæk As Integer, ræk As Integer, x As Integer, valg As String, svar, vNr As Integer, tomRæk As Integer
Const xlsSPfilNavn = "Sponsorliste.xlsm"                        '<--- Her kan efternavn på sponsorlisten rettes fra xlsx --> xlsm
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

    If InStr(LCase(ActiveWorkbook.Name), ".xltm") > 0 Then
   
        Exit Sub
       
    End If
   
    Set xlsKontrakt = ActiveWorkbook

    Workbooks.Open (sti & "\" & xlsSPfilNavn)
    Set xlsSP = ActiveWorkbook
    xlsSP.Sheets(1).Activate
    antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
   
    Rem Søg efter tom række
    tomRæk = findTomRække
   
    valg = "Tast nr" & vbCr & "0 Ny sponsor"
   
    For ix = 2 To antalRæk
        valg = valg & vbCr & ix & " " & Range("B" & ix) & " " & Range("C" & ix)
    Next ix
   
  svar = Application.InputBox(valg, "Nyoprettelse eller opdatering")
   
    If svar = "" Then                              'cancel
        Exit Sub
    Else
        If IsNumeric(svar) = True Then
            vNr = svar
        Else
            Exit Sub                                'ej numerisk
        End If
    End If
   
    If vNr = 0 Then
        If tomRæk > 0 Then
            ræk = tomRæk
        Else
            ræk = antalRæk + 1
        End If
    Else
        ræk = vNr
    End If
   
    xlsKontrakt.Activate
    Rem Tabellen udfyldes i den orden, som sponsorlisten foreskriver
    tabel(0) = Range("C105") + Range("C111")        'beløb  *)
    tabel(1) = Range("C30")                        'navn
    tabel(2) = Range("C31")                        'adresse
    tabel(3) = Range("C35")                        'CVR/SE
    tabel(4) = Range("C32")                        'kontakt
    tabel(5) = Range("C33")                        'tlf
    tabel(6) = Range("C34")                        'email
    tabel(7) = Range("D41")                        'fra dato
    tabel(8) = Range("D42")                        'til dato
    tabel(9) = Range("D46")                        'genforh.dato
    tabel(10) = ""                                  'logo-sti

   
xlsSP.Activate
   
    With ActiveWorkbook
        For x = 0 To 10
            Range("A" & ræk).Offset(0, x) = tabel(x)
        Next x
    End With
   
Rem Luk sponsorliste
    xlsSP.Save
    xlsSP.Close
   
    Set xlsSP = Nothing
End Sub
Private Function findTomRække()
Dim ræk
    For ræk = 3 To antalRæk
        If Range("B" & ræk) = "" Then
            findTomRække = ræk
            Exit Function
        End If
    Next ræk
   
    findTomRække = 0
End Function
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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