Avatar billede IrisLF Juniormester
17. juli 2014 - 11:58

inputbox /application.inputbox / scroll DESPERATION

Hjælp - min inputbox mangler en scrollbar - den fylder hele skærmen og man kan ikke se hele listen.

Jeg har brug for kode der sørger for at der kommer en scrollbar når inputbox når 25 linjer. 

Jeg kan forstå at jeg måske skal arbejde med application.inputbox men når jeg prøver at rette til det, får jeg fejl i de efterfølgende IF/THEN/ELSE statements. Jeg kan ikke regne ud hvorfor?

Kan nogen - anybody - hjælpe en stakkels frustreret pige der har brugt alt for lang tid på ikke at kunne løse det selv.

Se nedenstående kode:


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

Dim xlsKontrakt As Workbook
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 = 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