Avatar billede folj Forsker
31. maj 2018 - 13:10 Der er 4 kommentarer og
1 løsning

VBA - hvad er det jeg overser - den gør ikke som forventet.

Jeg har en procedure som  skriver nogle tankvognslæs ind i en ugeliste.
Jeg skal blot have noget hjælp til hvis der er en uge uden læs…


Den skal gerne lave en afslutning , så mdet fremgår at der er lavet et udtræk i denne uge.
Mit problem består i at proceduren ikke som forventet skriver  "ingen læs" ind i celle A3.
Så skulle den også gerne skrive udtrækstidspunktet ind i celle J1 - det gør den heller ikke.

Den starter afvikling af næste procedure op, og den fejler nemlig hvis der er ingen udtræk.

Først min kode der håndterer hvis der ikke blev fundet nogle læs:
    If RowCountJC = 0 Then
      MsgBox "Ingen rækker til JC fundet i udtrækket" & Chr(10) & "Proceduren afsluttes med ""Ingen læs""..."
      NoLoads = True ' variablen bruges til at styre hvis ingen læs
      GoTo Afslut
    End If

'
' Herefter noget kode  der indskriver de fundne læs
' i de uger der kommer nogle læs.
'

' Herefter kommer mit bogmærke  hvor afslutningen laves
Afslut:
    Range("A3").Select
    If NoLoads = True Then
      Range("A3").Value = "ingen læs"
    End If
    Range("J1").Value = "Udtræk genereret " & Format(Date, "dddd yyyy-mm-dd") & " kl. " & RoundedTime(Now) & " af " & UCase(WindowsUserInit())
    Range("A3").Select

' jeg lukker data-udtræks-filen uden at spørge om der skal gemmes
  Workbooks(DataFileName).Saved = True
  Workbooks(DataFileName).Close
 
  NewTransferOnly ' vi kører en separat procedure til at indskrive i råvarearregnskabet - Vi kører også denne procedure selvstænding når vi vil overføre redigerede data til råvarearket.
End Sub
Avatar billede kabbak Professor
31. maj 2018 - 13:57 #1
hvis du både har en udtræksfil og en fil du vil skrive i, åben samtidig,så skal sørge for at den du skriver i er den aktive, ellers skriver den i den forkerte.
Avatar billede folj Forsker
31. maj 2018 - 16:30 #2
@kabbak: tak for dit input.
Det ser jeg lige på i morgen når jeg igen er på kontoret.
Avatar billede store-morten Ekspert
31. maj 2018 - 16:33 #3
Måske:
  If RowCountJC = 0 Then
 
      MsgBox "Ingen rækker til JC fundet i udtrækket" & Chr(10) _
      & "Proceduren afsluttes med ""Ingen læs""..."
     
      Range("A3").Value = "ingen læs"
      Range("J1").Value = "Udtræk genereret " & Format(Date, "dddd yyyy-mm-dd") & " kl. " & Now & " af " & Application.UserName
     
      GoTo Afslut
    End If

'
' Herefter noget kode  der indskriver de fundne læs
' i de uger der kommer nogle læs.
'

' Herefter kommer mit bogmærke  hvor afslutningen laves
Afslut:


' jeg lukker data-udtræks-filen uden at spørge om der skal gemmes
  Workbooks(DataFileName).Saved = True
  Workbooks(DataFileName).Close
 
  NewTransferOnly ' vi kører en separat procedure til at indskrive i råvarearregnskabet - Vi kører også denne procedure selvstænding når vi vil overføre redigerede data til råvarearket.
End Sub
Avatar billede folj Forsker
01. juni 2018 - 09:21 #4
Det var lige spot on, kabbak.

Den havde jeg nemlig overset.

Efter tilføjelse af en linje der akitiverer den rigtige workbook, så gik det meget bedre.

Afslut:
    ThisWorkbook.Activate ' skifter tilbage til filen tankvognsleverancer
    Range("A3").Select
    If NoLoads = True Then
      Range("A3").Value = "ingen læs"
    End If
    Range("J1").Value = "Udtræk genereret " & Format(Date, "dddd yyyy-mm-dd") & " kl. " & RoundedTime(Now) & " af " & UCase(WindowsUserInit())
    Range("A3").Select


Takker for din engagement I mit problem...
mvh Folmer
Avatar billede store-morten Ekspert
01. juni 2018 - 17:24 #5
Velbekomme
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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