Macro werkt niet op alle PCs

Status
Niet open voor verdere reacties.

Eendj3

Gebruiker
Lid geworden
12 sep 2011
Berichten
5
Beste allen,

Ik heb een macrotje gemaakt voor het inlezen van een ascii text bestand. Ik moet erbij zeggen dat ik aardig nieuw ben wat betreft programmeren en heb hier en daar wat bij elkaar gekopieerd. Uiteindelijk is het gelukt en op mijn eigen PC werkt hij perfect. Helaas heb ik dit ook op werk willen testen maar werkt hij maar gedeeltelijk.

Het doel is om het ascii bestand te splitsen en daarna de kolommen een vaste breedte te geven etc. Op de werkcomputers splitst hij helaas alleen in kolommen maar verder wordt er niets meer gedaan. Het vreemde is dat hij enkel op 1 werkpc werkt terwijl de andere het niet doen.

Ik heb op alle computers de macrobeveiliging uitgezet.

Excel versie van alle computers is Excel 2007

Zou iemand mij aub kunnen helpen?

Mvg,

Eendj3

Hmm ik kan op de een of ander manier geen bijlage toevoegen?
 
zou het niet te maken kunnen hebben met landinstellingen en decimaalscheidingstekens? Denk daarbij aan scheidingsteken bij CSV files die in de VS , zijn in in europa ;. Dat soort dingen?
 
Het vreemde is als ik het compileer (of in ieder geval F5 druk) dat hij dan wel doet...

Ook heb ik dan het beginstuk van de macro (het openen van het bestand en deze splitst) weggehaald en dan doet de rest van de macro het wel...
 
Ja dan ligt het inderdaad niet aan de landinstellingen
 
Zonder voorbeeldbestand of iig de vba code blijft het gissen.....
 
Omdat ik geen bijlage kan toevoegen C&P ik alles maar zo. Hou aub rekening dat ik een beginner ben, ik heb stukjes bij stukjes geplakt en aangepast :p

Code:
Sub OpenGB()
ChDrive "C:\"
ChDir "C:\OMEGON\OMG\B\ASCII"
Application.ScreenUpdating = False

GBToOpen = Application.GetOpenFilename(Title:="Please choose a file to import", FileFilter:="Ascii Files *.asc (*.asc),")
    If GBToOpen = False Then
        Exit Sub
    Else
        Workbooks.OpenText _
            Filename:=GBToOpen, _
            StartRow:=13, _
            DataType:=2, _
            FieldInfo:=Array( _
                Array(0, 9), _
                Array(1, 1), _
                Array(4, 1), _
                Array(7, 9), _
                Array(11, 9), _
                Array(22, 9), _
                Array(30, 2), _
                Array(35, xlDMYFormat), _
                Array(42, 1), _
                Array(68, 2), _
                Array(76, 1), _
                Array(92, 1), _
                Array(108, 1), _
                Array(111, 1)), _
            TrailingMinusNumbers:=True
    End If

Columns("A:B").ColumnWidth = 2.14
Columns("C:C").ColumnWidth = 5
Columns("D:D").ColumnWidth = 10
Columns("E:E").ColumnWidth = 32.14
Columns("F:F").ColumnWidth = 9.29
Columns("G:G").ColumnWidth = 15
Columns("H:H").ColumnWidth = 15
Columns("I:I").ColumnWidth = 3.75
Columns("J:J").ColumnWidth = 15

Dim r As Long
For r = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(r, 1) = "" Then Rows(r).Delete
    If Cells(r, 5) = "" Then Rows(r).Delete
    If Cells(r, 4) = "" Then Rows(r).Delete
    If Cells(r, 1) = "---" Then Rows(r).Delete
    If Cells(r, 1) = "pr" Then Rows(r).Delete
Next r

Dim b As Long
For b = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    If Cells(b, 9) = 1 Then Cells(b, 11) = Cells(b, 10) * -1
    If Cells(b, 9) = 2 Then Cells(b, 11) = Cells(b, 10) * -1
    If Cells(b, 9) = 5 Then Cells(b, 11) = Cells(b, 10)
    If Cells(b, 9) = 6 Then Cells(b, 11) = Cells(b, 10)
Next b

Dim q As Integer
    q = Cells(Rows.Count, 1).End(xlUp).Row

Range(Cells(1, 11), Cells(q, 11)).Select
Selection.Copy
Cells(1, 10).Select
Selection.PasteSpecial _
    Paste:=xlPasteValues, _
    Operation:=xlNone, _
    SkipBlanks:=False, _
    Transpose:=False
    
Dim w As Long
For w = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
    Cells(w, 12) = Cells(w, 8) + Cells(w, 7) + Cells(w, 10)
Next w

Range("F:F,I:I,C:C").Select
Range("C1").Activate
With Selection
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
End With

Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A1").Select
ActiveCell.FormulaR1C1 = "PR"
Range("B1").Select
ActiveCell.FormulaR1C1 = "DB"
Range("C1").Select
ActiveCell.FormulaR1C1 = "STKN"
Range("D1").Select
ActiveCell.FormulaR1C1 = "DATUM"
Range("E1").Select
ActiveCell.FormulaR1C1 = "OMSCHRIJVING"
Range("F1").Select
ActiveCell.FormulaR1C1 = "BKSTK"
Range("G1").Select
ActiveCell.FormulaR1C1 = "DEBIT"
Range("H1").Select
ActiveCell.FormulaR1C1 = "CREDIT"
Range("I1").Select
ActiveCell.FormulaR1C1 = "H/L"
Range("J1").Select
ActiveCell.FormulaR1C1 = "BTW"
Range("L1").Select
ActiveCell.FormulaR1C1 = "INCL"

Range("G:H,J:J,L:L").Select
Selection.NumberFormat = "_(* #,##0.00_);_(* (#,##0.00);_(* ""-""??_);_(@_)"

Columns("K:K").Select
Selection.Delete Shift:=xlToLeft

Rows("1:1").Select
With Selection
    .HorizontalAlignment = xlGeneral
    .VerticalAlignment = xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = xlContext
    .MergeCells = False
End With
Selection.NumberFormat = "General"

Application.ScreenUpdating = True

End Sub
 
een standaard ascii file ziet er als volgt uit:

Code:
grootboekmutaties inclusief klad                                                              boekjr: 2010    EUR bladnr: 001
000000.0 NAAM                                                                                 werkmij naam
         ADRES                                                                                vestiging naam
         POSTCODE PLAATS                                                                                      dat. 12-09-2011
behandeld door: NAAM                                                                                          tijd 14.22
-----------------------------------------------------------------------------------------------------------------------------
 
per: 01 t/m 15  grb.rek: 8011    t/m 8011
 
 pr db vnr dagb oms   teg rek stuk datum  omschrijving              boekst    bedrag debet   bedrag kredit  bk   bedrag btw
 
8011       Uitvoer buiten EU              beginsaldo           0,00 K
*02 05 001 ABN Amro:  2010         260210 NAAM                      9-3                           1.000,00
*04 05 001 ABN Amro:  2010         230410 NAAM                      16-6                          1.000,00
*06 05 001 ABN Amro:  2010         160610 NAAM                      18-10                         1.000,00
*07 05 001 ABN Amro:  2010         050710 NAAM                      19-14                         1.000,00
*07 05 001 ABN Amro:  2010         300710 NAAM                      19-2                          1.000,00
*09 05 001 ABN Amro:  2010         170910 NAAM                      21-7                          1.000,00
*12 05 001 ABN Amro:  2010         031210 NAAM                      24-15                         1.000,00
                                                                            --------------  --------------     ------------
           saldo mutaties                                                             0,00        1.000,00             0,00
                                          eindsaldo        1.000,00 K       ==============  ==============     ============
 
 
           totaal generaal mutaties                                                   0,00        1.000,00             0,00
                                                                            ==============  ==============     ============
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan