20. februar 2015 - 12:22
#10
Nu har jeg dog det problem at Excel autoformaterer nogle af de felter jeg importerer og det gør at en del datoer volder problemer....(de vises simpelthen forkert i Excel arket)... ved du hvordan jeg kan slå det fra?
Private Sub ExportOrder()
Dim strPostkasse As String, strOmrådet As String, intDage As Integer
If MitSystem <> "DOK" Then SkiftSystem "DOK"
If chkKundLov2 Then
Select Case UCase(Format(Date, "dddd"))
Case "THURSDAY", "TORSDAG"
intDage = 4
Case "FRIDAY", "FREDAG"
intDage = 4
Case Else
intDage = 2
End Select
ElseIf chkKundLov5 Then
' Select Case UCase(Format(Date, "dddd"))
' Case "THURSDAY", "TORSDAG"
' intDage = 7
' Case "FRIDAY", "FREDAG"
' intDage = 7
' Case "MANDAG", "MONDAY"
' intDage = 7
' Case "TIRSDAG"
' Case Else
intDage = 7
' End Select
Else
Select Case UCase(Format(Date, "dddd"))
Case "FRIDAY", "FREDAG"
intDage = 3
Case Else
intDage = 1
End Select
End If
JumpTo 3, 9
Transmit "ov " & HentPostkasse
EnterTast
If ScreenText(1, 3, 12) = "RDREOVERSIGT" Then
Me.Caption = Me.Caption & "...henter ordrer"
If chkKundLov2 Then
JumpTo 4, 58
Transmit Format(Date + intDage, "ddmmyy")
JumpTo 5, 71
Transmit Format(Date, "ddmmyy")
ElseIf chkKundLov1 Then
JumpTo 4, 58
Transmit Format(Date + intDage, "ddmmyy")
JumpTo 5, 71
Transmit Format(Date, "ddmmyy")
ElseIf chkKundLov5 Then
JumpTo 4, 58
Transmit Format(Date + intDage, "ddmmyy")
JumpTo 5, 71
Transmit Format(Date, "ddmmyy")
Else
JumpTo 4, 58
EraseAll
JumpTo 5, 71
EraseAll
End If
JumpTo 6, 77
Transmit "BE"
EnterTast
Else
MsgBox "Ikke i 'ORDREOVERSIGT' som forventede?", , "I'm lost!?"
End If
Dim obExcel As excel.Application
Dim wb As Workbook
Dim ws As Worksheet
Dim PallesArray(1000, 6) As String
Dim iCount As Integer
Dim p As Integer
Dim pOrdrer As Integer 'Tællevariablen til at finde antal ordrer i alt
Dim p2 As Integer
Dim p3 As Integer
Dim j As Integer
JumpTo 6, 77 'Hopper til koordinatet
EraseAll 'Sletter alt på den linie
EnterTast ' Enter / CTRL
If Trim(ScreenText(1, 59, 3)) = vbNullString Then ' Tester om der er nogle ordrer overhovedet. Hvis ikke så ender den, og brugeren skal lave ny søgning/eksport
MsgBox "Nothing to find with the given criteria."
End
Else
p = Trim(ScreenText(1, 74, 3)) ' Finder sideantal og fjerner evt spacing
End If
pOrdrer = Trim(ScreenText(1, 59, 3)) ' Finder sideantal og fjerner evt spacing
Set obExcel = New excel.Application
obExcel.Application.Visible = True
Set wb = obExcel.Workbooks.Add(xlWBATWorksheet) 'Laver en fil, og så kan brugeren vælg at gemme eller lade være
Set ws = obExcel.Sheets(1)
ws.Activate
' Application.ScreenUpdating = False
p2 = 2 'Tællevariablen
p3 = GetLastRow ' Kalder funktionen getLastRow() som er skrevet nedenunder
For j = 1 To p
For iCount = 9 To p3 ' Starter ved række 9 i DOK og tæller op til sidste række der er tekst i
PallesArray(p2, 1) = ScreenText(iCount, 9, 10)
PallesArray(p2, 2) = ScreenText(iCount, 63, 4)
PallesArray(p2, 3) = ScreenText(iCount, 78, 2)
ws.Cells(p2, 1).Value = PallesArray(p2, 1)
ws.Cells(p2, 2).Value = PallesArray(p2, 2)
ws.Cells(p2, 3).Value = PallesArray(p2, 3)
p2 = p2 + 1
Next
SkiftF3 'tager de næste sider indtil man er oppe ved p som er sideantallet.
Next
F2 'Hopper ind på den første ordre, herefter skal man bruge "F3" for at bladre gennem ordrerne
'/-- Nu kommer loopet til at hente tingene frem på hver enkelt ordre, og så sætte de info ind i rækken på excel arket --/
p2 = 2 'Tællevariablen for at starte i 2. række
p3 = GetLastRow ' Kalder funktionen getLastRow() som er skrevet nedenunder
For j = 1 To pOrdrer 'pOrdrer er lig med det antal order som der er i alt
PallesArray(p2, 4) = ScreenText(10, 68, 4)
PallesArray(p2, 5) = ScreenText(10, 13, 10)
PallesArray(p2, 6) = ScreenText(1, 32, 9)
ws.Cells(p2, 4).Value = PallesArray(p2, 4)
ws.Cells(p2, 5).Value = PallesArray(p2, 5)
ws.Cells(p2, 6).Value = PallesArray(p2, 6)
p2 = p2 + 1
F3
Next
' Formatering af tekst
With ws.Cells
ws.Cells(1, 1) = "LID"
ws.Cells(1, 2) = "DOK DATO"
ws.Cells(1, 3) = "BEHTIL"
ws.Cells(1, 4) = "Arbnr"
ws.Cells(1, 5) = "Lovet UDF"
ws.Cells(1, 6) = "CU Ordrenummer"
End With
With ws.Range("a1:f1")
.HorizontalAlignment = xlCenter
.Font.Italic = True
.Font.Bold = True
.EntireColumn.ColumnWidth = 15
.AutoFilter
End With
' Dim antalRaekker As Integer
'
' antalRaekker = LastRow
With ws.Range("a2:f" & pOrdrer + 1)
.HorizontalAlignment = xlCenter
End With
End Sub
Function GetLastRow() As Integer
Dim i As Integer
i = 9
Do Until Trim(ScreenText(i, 78, 1)) = vbNullString
i = i + 1
Loop
i = i - 1
GetLastRow = i
End Function
Function LastRow() As Long
Dim ix As Long
ix = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
LastRow = ix'
End Function