VBA kode holdt op med at virke korrekt - HJÆLP :'(
Hej,Jeg har lavet en Excel template - når jeg opretter et dokument ud fra den og gemmer det; kalder det et andet dokument, opdaterer og gemmer nogle data i det samt lukker det igen.
Det forgår med en userform der giver mulighed for at vælge det rækkenummer den skal opdatere i det andet dokument.
Det er lavet sådan at ved 0 og 1 skal den finde første ledige række. Hvis man vælger et andet nummer, skal det svare til den pågældende række og opdatere den.
Alt virkede perfekt - indtil for et par timers tid siden. Nu insisterer den på at vælge første ledige række uanset hvilket nummer jeg vælger. Jeg forstår ikke hvorfor og hvordan jeg fikser det:
Option Explicit
Rem Version 3
Rem =========
Const sti = "C:\Users\Iris\Dropbox\Sponsor\Sponsor mappe" '<--- SKAL TILPASSES når skabelonen og sponsorliste flyttes til ny destination
Const xlsSPfilNavn = "Sponsorliste.xlsm" '<--- Her kan efternavn på sponsorlisten rettes fra xlsx --> xlsm
Dim xlsKontrakt As Workbook
Dim tabel(11)
Dim xlsSP As Workbook
Dim antalRæk As Integer, ræk As Integer, x As Integer, vNr As Integer, tomRæk As Integer
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim wbk As Workbook
Dim ix As Long
If InStr(LCase(ActiveWorkbook.Name), ".xltm") > 0 Then
Exit Sub
End If
Set xlsKontrakt = ActiveWorkbook
Set xlsSP = Workbooks.Open(sti & "\" & xlsSPfilNavn)
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")
' *** NEW ***
frmInput.Show
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 Or 1 Then
If tomRæk > 0 Or 1 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 = 2 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
Kan nogen hjælpe mig?