1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. oh-ha

Beiträge von oh-ha

  • Fehler beim erstellen einer Excel Tabelle

    • oh-ha
    • 19. Januar 2010 um 07:42

    moin moin,

    bekomme immer einen Fehler " Line 7927 " und " Error: The requested action with this object has failed. "
    wenn ich mein Autoit Programm auf einen anderen Rechner ausführe.
    Bei meinen Rechner funktioniert das einwandfrei. Habe da Excel 2003 drauf und auf dem anderen mit der Fehlermeldung ist Excel 97 drauf.
    Mein Problem ist das es mit beiden Excel Versionen laufen soll.

    Hier mal der code Teil von meinen Skript.

    Spoiler anzeigen
    [autoit]

    Func allgemein() ; Wird die Data1 Tabelle bearbeitet
    $aviall = GUICreate("Bitte Warten", 417, 109, 249, 135, BitOR($WS_SIZEBOX,$WS_THICKFRAME,$WS_CAPTION,$WS_POPUP,$WS_BORDER,$WS_CLIPSIBLINGS)) ; Gui für das warten AVI
    $Avi1 = GUICtrlCreateAvi(@ScriptDir & "\2.AVI", -1, 70, 40, 393, 57)
    GUICtrlSetState($Avi1, 1)
    $Label1 = GUICtrlCreateLabel("Excel Tabelle wird erstellt", 75, 8, 300, 24)
    GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    GUISetOnEvent($GUI_EVENT_CLOSE, "end")
    FileDelete(@ScriptDir & "\Liste\Data1.xls") ; Die alte Data1.xls wird gelöscht
    FileCopy("C:\Kaver\Data1\Data1.xlt", @ScriptDir & "\Liste\Data1.csv", 9) ; Kopieren der Datei (Data1.xls ) und benenne diese in *.csv
    $sFilePath1 = @ScriptDir & "\Liste\Data1.csv"
    $oExcel =_ExcelBookOpen ($sFilePath1, $fVisible = 1) ; Datei wird unsichtbar geöffnet
    If @error = 1 Then
    MsgBox(0, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden")
    Exit
    ElseIf @error = 2 Then
    MsgBox(0, "Fehler!", "Die Datei existiert nicht!")
    EndIf
    $oExcel.ActiveSheet.PageSetup.PrintArea = "" ; Hier kann man den Druckbereich Einstellen
    With $oExcel.ActiveSheet.PageSetup
    .LeftHeader = ""
    .CenterHeader = ""
    .RightHeader = ""
    .LeftFooter = ""
    .CenterFooter = ""
    .RightFooter = ""
    .LeftMargin = $oExcel.Application.InchesToPoints(0.787401575)
    .RightMargin = $oExcel.Application.InchesToPoints(0.787401575)
    .TopMargin = $oExcel.Application.InchesToPoints(0.984251969)
    .BottomMargin = $oExcel.Application.InchesToPoints(0.984251969)
    .HeaderMargin = $oExcel.Application.InchesToPoints(0.4921259845)
    .FooterMargin = $oExcel.Application.InchesToPoints(0.4921259845)
    .PrintHeadings = False
    .PrintGridlines = False
    .PrintComments = -4142 ; xlPrintNoComments = -4142
    .PrintQuality = 200
    .CenterHorizontally = False
    .CenterVertically = False
    .Orientation = 2 ; xlLandscape = 2
    .Draft = False
    .PaperSize = 9 ; xlPaperA4 = 9
    .FirstPageNumber = -4105 ; xlAutomatic = -4105
    .Order = 1 ; xlDownThenOver = 1
    .BlackAndWhite = False
    .Zoom = 60
    .PrintErrors = 0 ; xlPrintErrorsDisplayed = 0
    EndWith
    $oExcel.Range("A1").Select
    $oExcel.Selection.ClearContents
    $oExcel.Range("A:AZ").Select ;----Makiert das Blatt von A bis AZ
    $oExcel.Selection.EntireColumn.AutoFit ; Passt die Zellengröße Automatisch an
    $oExcel.Columns("A:A").ColumnWidth = 10.40 ;----Passt die Zellengröße mit Größenangabe an
    $oExcel.Columns("B:B").ColumnWidth = 10.40
    $oExcel.Columns("C:C").ColumnWidth = 10.40
    $oExcel.Columns("D:D").ColumnWidth = 12.00
    $oExcel.Columns("E:E").ColumnWidth = 10.00
    $oExcel.Selection.HorizontalAlignment = -4108 ;----setzt alles makierte auf mitte
    $oExcel.ActiveSheet.Range("A1:A1").Select
    $oExcel.ActiveCell.EntireRow.Insert (1);----->fügt eine Zeile hinzu
    $oExcel.ActiveSheet.Range("A1:A1").Select
    $oExcel.ActiveCell.EntireRow.Insert (1)
    $oExcel.ActiveSheet.Range("A1:A1").Select
    $oExcel.ActiveCell.EntireRow.Insert (1)
    $oExcel.ActiveSheet.Range("A1:A1").Select
    $oExcel.ActiveCell.EntireRow.Insert (1)
    $oExcel.ActiveSheet.Range("A1:A1").Select
    $oExcel.ActiveCell.EntireRow.Insert (1)
    _ExcelColumnInsert($oExcel, 3, 1) ; Fügt eine neue Spalte ein hinter der zweiten Spale (B)ein
    $oExcel.ActiveSheet.Pictures.Insert("D:\Bilder\Programme\Skripte\3.bmp").Select ;---- setzt das Logo auf A1
    $oExcel.Columns("A:C").Select
    $oExcel.Range("A6").Activate
    $oExcel.Selection.NumberFormat = "0,00" ; War ein Pungt und wurde durch ein komma ersezt
    $oExcel.Columns("F:AZ").Select
    $oExcel.Selection.NumberFormat = "0,00"
    $oExcel.Cells(1,6).Value = "Leitender :" ;-----Schreibt in eine Zelle einen Text
    $oExcel.Cells(2,6).Value = "zu :"
    $oExcel.Columns("F:F").ColumnWidth = 13.30 ;----Passt die Zellengröße mit Größenangabe an
    $oExcel.Cells(3,6).Value = "Abt. "
    $oExcel.Cells(4,6).Value = "Bericht vom :"
    $oExcel.Cells(3,9).Value = "von :"
    $oExcel.Cells(7,3).Value = "Distanz"
    $oExcel.Cells(9,3).Value = "[m]"
    $oExcel.Range("I3").Select
    $oExcel.Selection.Font.Bold = True
    $oExcel.Rows("1:1").RowHeight = 21.75 ; Hier wird die Zelle breiter gemacht und dann auch in fett und 12 geschrieben
    $oExcel.Range("G1:J1").Select
    With $oExcel.Selection.Font
    .Name = "Arial"
    .Size = 12
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    EndWith
    $oExcel.Selection.Font.Bold = True ; Hier werden die Zellen in Fett Formatiert
    $oExcel.Rows("7:9").Select
    With $oExcel.Selection.Font
    .Name = "Arial"
    .FontStyle = "Fett"
    .Size = 10
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    EndWith
    $oExcel.Rows("6:6").Select
    $oExcel.Selection.Delete.Shift= -4162 ;xlUp = -4162
    $oExcel.Range("A5:C5").Select ; Makiert den zu bearbeitenden Bereich ( Select )
    With $oExcel.Selection ;Stellt mir die Makierten Zellen wieder auf Linksbündig
    .HorizontalAlignment = -4131
    .VerticalAlignment = -4107
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = -5002
    .MergeCells = False
    EndWith
    $oExcel.Range("F1:F4").Select ; Hier werden einzelne Zellen F1-F3 Links ausgerichtet
    With $oExcel.Selection
    .HorizontalAlignment = -4131 ;xlLeft
    .VerticalAlignment = -4107 ;xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = -5002 ;xlContext
    .MergeCells = False
    EndWith
    $oExcel.Range("F1:F4").Select ; Rahmen um den Kopf
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    With $oExcel.Selection.Borders(7) ; xlEdgeLeft = 7
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(8) ; 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(12).LineStyle = -4142 ; xlInsideHorizontal = 12, xlNone = -4142
    With $oExcel.Selection.Font
    .Name = "Arial"
    .FontStyle = "Fett"
    .Size = 10
    .Strikethrough = False
    .Superscript = False
    .Subscript = False
    .OutlineFont = False
    .Shadow = False
    EndWith
    $oExcel.Range("G1:J1").Select ; Zellen Verbinden von G1-J1
    With $oExcel.Selection
    .HorizontalAlignment = -4108 ;xlCenter
    .VerticalAlignment = -4107 ;xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder = -5002 ;xlContext
    .MergeCells = True
    EndWith
    $oExcel.Range("G2:J2").Select ; Zellen Verbinden von G2-J2
    With $oExcel.Selection
    .HorizontalAlignment = -4108 ;xlCenter
    .VerticalAlignment = -4107 ;xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder =-5002 ;xlContext
    .MergeCells = True
    EndWith
    $oExcel.Range("G3:H3").Select ;Zellen Verbinden von G3-H3
    With $oExcel.Selection
    .HorizontalAlignment = -4108 ;xlCenter
    .VerticalAlignment = -4107 ;xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder =-5002 ;xlContext
    .MergeCells = True
    EndWith
    $oExcel.Range("A:AZ").Select ;----Makiert das Blatt von A bis AZ
    $oExcel.Selection.EntireColumn.AutoFit ; Passt die Zellengröße Automatisch an
    $oExcel.Columns("A:A").ColumnWidth = 10.40 ;---- Passt die Zellengröße mit Größenangabe an
    $oExcel.Columns("B:B").ColumnWidth = 10.40
    $oExcel.Columns("C:C").ColumnWidth = 10.40
    $oExcel.Columns("D:D").ColumnWidth = 12.00
    $oExcel.Columns("E:E").ColumnWidth = 10.00
    $oExcel.Columns("J:J").ColumnWidth = 13.00
    $oExcel.Cells(5,1).Value = "Adresse";-----Screibt in eine Zelle einen Text
    $oExcel.Range("A1:E5").Select ; Hinter dem Logo die Zellen Verbinden mit der Adresse
    With $oExcel.Selection
    .VerticalAlignment = -4107 ; xlBottom =-4107
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .ShrinkToFit = False
    .ReadingOrder = -5002 ; xlContext = -5002
    .MergeCells = True
    EndWith
    $oExcel.Columns("A:AZ").Select ; Senkrechte Rahmen Linien
    $oExcel.Range("A6").Activate
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    With $oExcel.Selection.Borders(7) ; xlEdgeLeft = 7
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(9).LineStyle = -4142 ; 9 = xlEdgeBottom, xlNone = -4142
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(11) ; xlInsideVertical =11
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith ; ENDE Senkrechte Rahmen Linien
    $oExcel.Rows("6:8").Select ; Rahmen um die Maße und der Beschreibung
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    With $oExcel.Selection.Borders(7) ; xlEdgeLeft = 7
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(8) ; 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(12).LineStyle = -4142 ; xlInsideHorizontal = 12, xlNone = -4142 ; ENDE Rahmen um die Maße und der Beschreibung
    $oExcel.Range("G1:J3").Select ; Rahmen Kopf
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    With $oExcel.Selection.Borders(7) ; xlEdgeLeft = 7
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(8) ; 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(11) ; xlInsideVertical = 11
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(12) ; xlInsideHorizontal = 12
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith ; ENDE Rahmen Kopf
    $oExcel.Range("J3").Select ; Rahmen entfernen
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    $oExcel.Selection.Borders(7).LineStyle =-4142 ; xlEdgeLeft = 7, xlNone = -4142
    With $oExcel.Selection.Borders(8); 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith ; ENDE Rahmen bei TelNr. wegmachen
    $oExcel.Range("G4:J5").Select ;--- Hier werden die Ränder entfernt die zu viel waren
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    $oExcel.Selection.Borders(7).LineStyle =-4142 ; xlEdgeLeft = 7, xlNone = -4142
    With $oExcel.Selection.Borders(8); 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(12).LineStyle = -4142 ; xlInsideHorizontal = 12, xlNone = -4142
    $oExcel.Selection.Borders(10).LineStyle = -4142 ; xlEdgeRight =10, xlNone = -4142
    $oExcel.Selection.Borders(11).LineStyle = -4142 ; xlInsideVertical = 11, xlNone = -4142
    $oExcel.Range("G4:J4").Select ; Hier wird der Ramen wieder geschlossen und die Zellen verbunden
    With $oExcel.Selection
    .HorizontalAlignment = -4108 ;xlCenter
    .VerticalAlignment = -4107 ;xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder =-5002 ;xlContext
    .MergeCells = True
    EndWith
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    With $oExcel.Selection.Borders(7) ; xlEdgeLeft = 7
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(8); 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(10) ; 10 = xlEdgeRight
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(11).LineStyle = -4142 ; xlInsideVertical = 11, xlNone = -4142
    $oExcel.Range("K1:AZ5").Select ; Hier wird der rest von den Rahmenlinien rechts neben dem Kopf entfernt
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    $oExcel.Selection.Borders(8).LineStyle = -4142 ; xlEdgeTop = 8, xlNone = -4142
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(12).LineStyle = -4142 ; xlInsideHorizontal = 12, xlNone = -4142
    $oExcel.Selection.Borders(10).LineStyle = -4142 ; xlEdgeRight =10, xlNone = -4142
    $oExcel.Selection.Borders(11).LineStyle = -4142 ; xlInsideVertical = 11, xlNone = -4142
    $oExcel.Range("F5:J5").Select ; Hier weden die Zeilen verbunden unter dem Kopf und eine Rahmenlinie entfernt
    With $oExcel.Selection
    .HorizontalAlignment = -4108 ;xlCenter
    .VerticalAlignment = -4107 ;xlBottom
    .WrapText = False
    .Orientation = 0
    .AddIndent = False
    .IndentLevel = 0
    .ShrinkToFit = False
    .ReadingOrder =-5002 ;xlContext
    .MergeCells = True
    EndWith
    $oExcel.Selection.Borders(5).LineStyle = -4142 ; xlDiagonalDown = 5, xlNone = -4142
    $oExcel.Selection.Borders(6).LineStyle = -4142 ; xlDiagonalUp = 6, xlNone = -4142
    $oExcel.Selection.Borders(7).LineStyle =-4142 ; xlEdgeLeft = 7, xlNone = -4142
    With $oExcel.Selection.Borders(8); 8 = xlEdgeTop
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    With $oExcel.Selection.Borders(9) ; 9 = xlEdgeBottom
    .LineStyle = 1 ;xlContinuous = 1
    .Weight = -4138 ;xlMedium = -4138
    .ColorIndex = -4105 ;xlAutomatic = -4105
    EndWith
    $oExcel.Selection.Borders(10).LineStyle = -4142 ; xlEdgeRight =10, xlNone = -4142
    $oExcel.Selection.Borders(11).LineStyle = -4142 ; xlInsideVertical = 11, xlNone = -4142
    $oExcel.Range("G4:J4").Select
    $oExcel.Selection.NumberFormat = ""
    $oExcel.Range("L1").Select
    _ExcelBookSaveAs($oExcel, @ScriptDir & "\Liste\Data1.xls")
    _ExcelBookClose($oExcel)
    $textkopf1 = FileOpen(@ScriptDir & "\Liste\kopf.log", 0); wird die kopf log erstellt damit die Daten gespeichert werden können
    $date = @MDAY&"."&@MON&"."&@YEAR
    _FileWriteToLine(@ScriptDir & "\Liste\kopf.log", 7, $date, 1)
    FileClose($textkopf1)
    $textkopf = FileOpen(@ScriptDir & "\Liste\kopf.log", 0); wird die kopf log erstellt damit die Daten gespeichert werden können
    If $textkopf = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
    EndIf
    $es1 = FileReadLine($textkopf, 1) ; Die Zeilen aus der kopf.log lesen
    $es2 = FileReadLine($textkopf, 2)
    $es3 = FileReadLine($textkopf, 3)
    $es4 = FileReadLine($textkopf, 4)
    $es5 = FileReadLine($textkopf, 5)
    $es6 = FileReadLine($textkopf, 6)
    $es7 = FileReadLine($textkopf, 7)
    FileClose($textkopf)
    $sFilePath1 = @ScriptDir & "\Liste\Data1.xls"
    $oExcel =_ExcelBookOpen ($sFilePath1, $fVisible = 1)
    _ExcelWriteCell($oExcel, $es1, 1, 7) ; Die Zeilen aus der Kopf.log in die Tabelle schreiben
    _ExcelWriteCell($oExcel, $es2, 3, 7)
    _ExcelWriteCell($oExcel, $es3, 3, 10)
    _ExcelWriteCell($oExcel, $es4, 2, 7)
    _ExcelWriteCell($oExcel, $es5, 2, 11)
    _ExcelWriteCell($oExcel, $es5, 3, 11)
    _ExcelWriteCell($oExcel, $es7, 4, 7)
    _ExcelBookSaveAs($oExcel, @ScriptDir & "\Liste\Data1.xls")
    FileDelete(@ScriptDir & "\Liste\Data1.csv")
    _ExcelBookClose($oExcel)
    $sFilePath1 = @ScriptDir & "\Liste\Data1.xls"
    $oExcel1 =_ExcelBookOpen ($sFilePath1, $fVisible = 0)
    If $aviall = True Then ; Das "Bitte Warten"AVI schließen
    GUIDelete($aviall)
    EndIf
    EndFunc ;==>allgemein

    [/autoit]

    Was kann man da machen um diesen Fehler einzugrenzen oder ihn zu beheben ?


    mfg
    oh-ha

  • VBA zu Autoit ( Ecxel )

    • oh-ha
    • 10. Januar 2010 um 20:56

    Der Tip mit der Konstante war es. ;)
    Habe es nun so gelöst

    VBA Code aus der Hilfe :

    With Worksheets(1)
    .Range(.Cells(1, 1), _
    .Cells(10, 10)).Borders.LineStyle = xlThick
    End With

    So nach progandy Tip :

    With $oExcel.activesheet
    .Cells(10, 10).Borders.LineStyle = 4
    EndWith

    Danke noch mal


    mfg
    oh-ha

  • VBA zu Autoit ( Ecxel )

    • oh-ha
    • 10. Januar 2010 um 20:40

    Habe ich aus der Hilfe von VBA

    Spoiler anzeigen

    Stellt den Rahmen eines Objekts dar.

    Verwenden des Border-Objekts
    Die meisten Objekte mit Rahmen (alle, mit Ausnahme der Range- und Style-Objekte) haben einen Rahmen, der als Einheit behandelt wird, unabhängig davon, wie viele Ränder er aufweist. Der gesamte Rahmen muss als Einheit zurückgegeben werden. Verwenden Sie die Border-Eigenschaft, um das Border-Objekt für solche Objekte zurückzugeben. Im folgenden Beispiel wird ein Diagrammblatt mit dem Namen Chart1 aktiviert und die Diagrammfläche des aktiven Diagramms mit einem gestrichelten Rahmen sowie die Zeichnungsfläche mit einem punktierten Rahmen versehen.

    Charts("chart1").Activate
    With ActiveChart
    .ChartArea.Border.LineStyle = xlDash
    .PlotArea.Border.LineStyle = xlDot
    End With

    Range- und Style-Objekte haben vier einzelne Rahmen - links, rechts, oben und unten -, die einzeln oder als Gruppe zurückgegeben werden. Verwenden Sie die Borders-Eigenschaft, um die Borders-Auflistung zurückzugeben, die alle vier Rahmen enthält. Im folgenden Beispiel erhält die Zelle A1 im ersten Arbeitsblatt eine Doppellinie als Rahmen.

    Worksheets(1).Range("A1").Borders.LineStyle = xlDouble

    Verwenden Sie Borders(Index), um ein einzelnes Border-Objekt zurückzugeben. Dabei gibt Index den Rahmen an. Im folgenden Beispiel wird die Farbe des unteren Rahmens des Zellbereichs A1:G1 festgelegt.

    Worksheets("Sheet1").Range("A1:G1"). _
    Borders(xlEdgeBottom).Color = RGB(255, 0, 0)

    Index kann eine der folgenden XlBordersIndex-Konstanten sein: xlDiagonalDown, xlDiagonalUp, xlEdgeBottom, xlEdgeLeft, xlEdgeRight, xlEdgeTop, xlInsideHorizontal oder xlInsideVertical.

    Das obrige Beispiel war auch aus der Hilfe, hatte es jetzt auf die schnelle nicht gefunden. Aber das was im Spoiler steht ist ähnlich.
    Wie kann ich die Funktion >> xlDash oder xlDot << in Autoit benutzen ?

    Edit: ups war ich was zu Langsam. Danke dir progandy, werde ich mir mal anschauen.

    mfg
    oh-ha

  • VBA zu Autoit ( Ecxel )

    • oh-ha
    • 10. Januar 2010 um 20:21

    Hallo nuts

    Jo so weit war ich ja auch schon nur kann ich halt die spezifischen Funktionen nicht einordnen.
    Meine damit wie oben in meinen Beispiel halt so was wie >> = xlThick <<.
    Wie man diese abrufen kann in Autoit.


    mfg
    oh-ha

  • VBA zu Autoit ( Ecxel )

    • oh-ha
    • 10. Januar 2010 um 19:08

    Hallo XovoxKingdom,

    Da ist derartiges so in der Form nicht drin.
    Das oben von mir genannte sollte auch nur als Beispiel dienen. Meine eigentlich wie man so etwas generell umsetzen kann.
    Habe auch schon die " ExcelCOM_UDF.au3 " genommen aber die geht bei mir nicht macht nur Fehlermeldungen.

    Code
    ERROR: $xlCalculationManual previously declared as a 'Const'
    			$xlCalculationManual = -4135


    und das geht dann auch so weiter mit den Fehlermeldungen.


    mfg
    oh-ha

  • VBA zu Autoit ( Ecxel )

    • oh-ha
    • 10. Januar 2010 um 18:01

    Hallo,

    Bin immer noch dabei zu versuchen eine Excel Tabelle mit Autoit zu bearbeiten. Noch gebe ich nicht auf :D

    Bin dabei mich durch die Hilfe von VBA zu kämpfen und Versuche das dann in Autoit umzusetzen. Leider bleibt es meist beim Versuch ;(
    Bei Befehlen die ein True oder False beinhalten ( $oExcel.Selection.Font.Superscript = True ) kann man das problemlos einbauen oder auch nur eine Größenangabe ( $oExcel.Selection.Font.Size = 14 ).

    Aber wie kann man so was umsetzen ?

    With Worksheets(1)
    .Range(.Cells(1, 1), _
    .Cells(10, 10)).Borders.LineStyle = xlThick
    End With

    Dabei kommt es mir im besonderen auf das >> = xlThick << an.
    Hat da einer eine Idee ?


    mfg
    oh-ha

  • Bild in Excel einfügen

    • oh-ha
    • 3. Januar 2010 um 00:50

    Xenobiologist ,

    jo nur den richtigen Durchblick habe ich da nicht oder noch nicht.
    Wenn man weis wonach man suchen muss kann man da schon drin stöbern.
    Du als Wissender kannst dir hoffentlich noch vorstellen wie das ist wenn man stundenlang an einem vermeintlichen Problem sitzt
    und null weiterkommt. So ergeht es mir derzeitig. Poste eigentlich nur nach dem ich wieder mal feststecke.


    mfg
    oh-ha

  • Bild in Excel einfügen

    • oh-ha
    • 3. Januar 2010 um 00:30

    OK geht. Wieder mal ein Problem Dank deiner Hilfe gelöst.

    Falls mal einer was ähnliches machen möchte habe es so gemacht.

    [autoit]

    Func Testbild()
    $sFilePath1 = @ScriptDir & "\Liste\Test.xls" ; Diese Datei sollte bereits existieren
    $oExcel =_ExcelBookOpen ($sFilePath1, $fVisible = 0) ; $fVisible = 0 (die 0 für sichtbar 1 = unsichtbar)
    $Pfad = @ScriptDir &"\1.jpg"
    $oExcel.ActiveSheet.Range("A1").Select
    $oExcel.ActiveSheet.Pictures.Insert("D:\Test\Kleines Tool\Skript\1.bmp").Select
    EndFunc ;==>Testbild

    [/autoit]


    mfg
    oh-ha

  • Bild in Excel einfügen

    • oh-ha
    • 2. Januar 2010 um 23:32

    Hallo BugFix

    Danke dir, werde das mal Testen und dann Berichten, man wie mich der Excel kram Nervt.
    Möchte Autoit Lernen und kämpfe mit Excel. War zu meinen DOS Zeiten noch bei weiten einfacher.


    mfg
    oh-ha

  • Bild in Excel einfügen

    • oh-ha
    • 2. Januar 2010 um 22:57

    Hallo,

    Ist es möglich ein Bild im *.jpg Format in eine Excel Tabelle zu kopieren über Autoit ?

    Sollte dann so aussehen.
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    mfg
    oh-ha

    Dateien

    Tabelle2.JPG 62,98 kB – 0 Downloads
  • Falsches Datums Format im Array

    • oh-ha
    • 1. Januar 2010 um 10:46

    Hallo BugFix,

    Danke dir für die wirklich gute Erklärung :thumbup: , habe ich jetzt auch endlich Verstanden :rolleyes:
    Werde das mal so umsetzen wie du es Vorgeschlagen hast.


    mfg
    oh-ha

  • Falsches Datums Format im Array

    • oh-ha
    • 1. Januar 2010 um 08:09

    Hallo und Frohes neues Jahr,

    nun Verstehe ich gar nichts mehr ?( aber es geht :thumbup:
    Habe es mal so wie von dir Vorgeschlagen gemacht BugFix.

    [autoit]

    $oSheet.Range('C:C').NumberFormat = "TT.MM.JJJJ"

    [/autoit]


    Nur passiert da dann rein gar nichts da das Datum in der ersten Tabelle ja schon das Datumsformat hat. " Wird wohl bei der Umbenennung von *.xlt zu *.csv von Excel selber erkannt. "
    Das Datum steht in der ersten Tabelle als 12.12.2009 im Format Datum, wird dann von Autoit eingelesen als 20091212000000 und so auch in der neuen Tabelle reingeschrieben.
    Formatiere ich das Datum aber als Zahl oder Standard " 40159 "

    [autoit]

    $oSheet.Range('C:C').NumberFormat = ""

    [/autoit]


    wird es in der neuen Tabelle richtig als Datum erkannt und eingetragen. Dafür erst einmal ein dickes DANKE.

    Sitze da jetzt schon ein paar Tage dran und hatte den Fehler zuerst bei Excel vermutet was ja auch bei MS-Klamotten nicht so abwegig ist.
    Wollte eigentlich mit dem Projekt Autoit Lernen und nicht Excel :D
    Was mache ich oder Autoit falsch ?
    Es kann doch nicht richtig sein das man etwas das schon im richtigen Format vorliegt erst wieder Umwandeln muss um es dann wieder in den selben Format zu bekommen.
    Oder habe ich da ein Verständnis Problem.


    mfg
    oh-ha

  • Falsches Datums Format im Array

    • oh-ha
    • 31. Dezember 2009 um 16:58

    Hallo GtaSpider,

    hatte so ziemlich alle Formate die mir Excel anbietet probiert. Von Standart über Datum und Uhrzeit. Hat alles nicht geholfen.

    In den Bild bei der ersten Tabelle ist es als Datum>>Deutschland>>Standard Formatiert.
    Bei dem dritten Bild habe ich es mal als Text>>Standard gelassen nur um anzuzeigen was dahintersteht. Wenn ich es als Datum
    Formatiere und dabei ist es egal in welchen Format bekomme ich nur Rauten angezeigt da Excel damit nicht umgehen kann.

    Wie man aber erkennen wird das Array mit dem komischen Format beschrieben. Bild 2
    Hatte auch schon Probiert das Format der ersten Tabelle umzubiegen aber da rechnet sich der Computer platt.

    [autoit]

    $sFormat = "" ; Formatiert die Zellen als String _ExcelNumberFormat, um sie als Standart anzuzeigen
    _ExcelNumberFormat($xlsdir, $sFormat, 5, 3, 50000, 3) ; Start in Zeile 5, Spalte 3, Ende in Zeile 50000, Spalte 3

    [/autoit]

    Edit: Kann die erste Tabelle nicht bearbeiten da sie so vom System kommt.

    mfg
    oh-ha

  • Falsches Datums Format im Array

    • oh-ha
    • 31. Dezember 2009 um 16:27

    Hallo,

    Lese aus einer Excel Tabelle ein Array ein.
    Bekomme aber immer das falsche Datum angezeigt im Array als auch in der Tabelle wo ich es einfüge.

    [autoit]

    $aArray = _ExcelReadSheetToArray($xlsdir, 5, 1, 0, 2) ; Lese zwei Spalten ab der 5 Zeile 5102
    _ArrayDisplay($aArray, "Nur zum Testen-----$aArray----")

    [/autoit]


    Aus dieser wird gelesen:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    So wird die dann im Array eingelesen ist:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    So sieht es dann in der neuen Tabelle aus :
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Die Uhrzeit und alles andere wird richtig angezeigt. Hatte erst Excel in verdacht aber kann es jetzt so gut wie aus schlissen.

    Was mache ich da falsch ?


    mfg
    oh-ha

    Bilder

    • Tabell2 (1).JPG
      • 49,45 kB
      • 987 × 150
    • Tabelle3.JPG
      • 19,5 kB
      • 314 × 124
    • Tabell1.JPG
      • 22,62 kB
      • 376 × 160
  • Mit Array ( Excel) verdammt langsam

    • oh-ha
    • 25. Dezember 2009 um 22:04

    Ups, sorry das hatte ich nicht gesehen. Da ist mir das Brett vorm Kopf wohl vor die Augen gerutscht.
    Na da habe ich ja erst einmal ne menge zu verarbeiten.
    Werde das hier mal auf gelöst stellen.

    Danke dir und noch einen schönen Feiertag
    oh-ha

  • Mit Array ( Excel) verdammt langsam

    • oh-ha
    • 25. Dezember 2009 um 15:28

    Hallo,

    Zitat von progandy

    Ich verstehe nicht, warum du das von der einen in die andre Datei kopierst. Machst du das nur, um an den Anfang der Tabelle noch die Kopfzeilen einzufügen

    jepp zum teil schon. Habe mir einen Kopf für die Tabelle zusammengestellt mit Grafik und auch einigen anderen
    Angaben. Dann habe ich diese fertige Excel-tabelle auch noch mit Formeln versehen die eine Auswertung der Daten machen. Füge, im Gegensatz zur ersten Tabelle, noch Zeilen ein in der das Ergebnis einer Berechnung steht.
    Habe mir eine Gui gemacht in der dann auch noch weitere Angaben im Kopf hinzugefügt werden können.
    Wenn es denn mal irgendwann Funktionieren sollte. :rolleyes:
    Kämpfe mich da irgendwie durch Autoit. Bin halt ein Anhänger von " learning by doing "
    Danke dir für den Code den kann ich auch gut gebrauchen zwecks ändern der Kopfzeile.


    mfg
    oh-ha

  • Mit Array ( Excel) verdammt langsam

    • oh-ha
    • 24. Dezember 2009 um 23:02

    Hallo und frohe Weihnachten,

    naja kann bis zu einer Stunde gehen das ganze. Sind auch Dateien bis zu 50MB die da hin und hergebaggert werden. Das komische ist das die Datei die von der Anlage kommt in *.xlt Format rauskommt.
    Wenn man die allerdings in Excel aufmachen will geht das nur über den Textkonvertierungs-Assistenten. Also war das für mich eine verkappte csv Datei. Deshalb habe ich die dann ja auch im Skript einfach
    umbenannt in *.csv. Dann wird die von Excel auch richtig erkannt. Könnte es sein das ich die einfach so belassen sollte im xlt Format ? ?(

    Was ich gerne mal probieren möchte ist das über Listen zu machen Klick mich nur muß ich ehrlich sagen das ich keinen blassen schimmer davon habe wie man das umsetzen kann. Verstehe das da noch nicht mal im Ansatz.


    mfg
    oh-ha

  • Mit Array ( Excel) verdammt langsam

    • oh-ha
    • 23. Dezember 2009 um 11:43

    Hallo,

    habe da ein Problem mit meinen Skript.

    Teil vom skript
    Code
    Func openexcel()
    
    
    FileCopy("C:\KDMU\Woche\Master.XLT, ScriptDir & "\Liste\mw.csv", 9) ; Kopieren  der Datei ( Master.XLT ) und umbenennen
    
    
    
    
    $sFilePath1 = @ScriptDir & "\Liste\mv.csv" ; Datei öffnen
    $xlsdir =_ExcelBookOpen ($sFilePath1, $fVisible = 1) ; unsichtbar öffnen
    If @error = 1 Then
        MsgBox(0, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden")
        Exit
    ElseIf @error = 2 Then
        MsgBox(0, "Fehler!", "Die Datei existiert nicht!")
        Exit
    EndIf
    $aArray = _ExcelReadSheetToArray($xlsdir, 5, 1, 0, 2) ; Lese die ersten beiden reihen ab der 5 Zeile  5102
    ;_ArrayDisplay($aArray, "Lese fünf Zeilen") ; nur zur kontrolle
    
    
    
    
    $bArray = _ExcelReadSheetToArray($xlsdir, 5, 3, 0, 0) ; Lese den rest ab der 5 Zeile und der 3 Reihe 5300
    ;_ArrayDisplay($bArray, "den Rest einlesen") ; nur zur kontrolle
    _ExcelBookClose($xlsdir) ; Programm verlassen
    
    
    $sFilePath2 = @ScriptDir & "\Liste\sv.xls" ; Datei öffnen
    $oExcel = _ExcelBookOpen($sFilePath2) ; sichtbar
    If @error = 1 Then
        MsgBox(0, "Fehler!", "Das Excel-Objekt konnte nicht erstellt werden")
        Exit
    ElseIf @error = 2 Then
        MsgBox(0, "Fehler!", "Die Datei existiert nicht!")
        Exit
    EndIf
    _ExcelWriteSheetFromArray($oExcel, $aArray, 8, 1, 1, 1) ; Schreibt die ersten beiden Reihen in die neue excel Tabelle  8111
    _ExcelWriteSheetFromArray($oExcel, $bArray, 8, 4, 1, 1) ; Schreibt den Rest ab der 4 Reihe
    
    
    EndFunc   ;==>openexcel
    Alles anzeigen


    Es rennt so weit, bis auf das Datum da sind nur Rauten drin oder komische Zahlen. Denke aber mal das dies wohl eher ein Problem von Excel ist als von Autoit.
    Ähm nicht das gleich auf mich losgeschlagen wird, ist einer meiner ersten Skripte ( und alles nur zusammengesucht und zum laufen gebracht) :D
    Fange erst an mit Autoit.

    Beispiel einer Datei aus der gelesen wird :
    Das ist die Tabelle die ich bekomme. Diese kann ich nicht ändern da sie automatisch erstellt wird.

    Tabelle aus der gelesen wird


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    Beispiel einer Datei in die geschrieben wird :
    Hier werden die Daten dann wieder eingefügt.

    Tabelle in die rein geschrieben wird


    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.


    Mein Problem ist es das es sehr langsam geht. Das Einlesen der Array´s geht noch nur das Schreiben in die neue Tabelle ist verdammt langsam.
    Die Tabellen sind bis zu 50MB groß. Gibt es da noch andere Möglichkeiten das umzusetzen ?
    Habe hier Klick mich mal was von Listen gelesen aber hmm, naja nur gelesen und null verstanden.


    MFG
    oh-ha

  • Na dann ich auch mal

    • oh-ha
    • 23. Dezember 2009 um 09:35

    moin moin,

    komme vom Niederrhein und fange erst an Autoit zu Lernen ( wird wohl nie enden ) :rolleyes:
    Hatte mal früher mal was in dos gemacht was aber wohl in der heutigen Zeit nicht mehr gebraucht wird. :(
    Also suchte ich mir etwas neues und bin auf Autoit gestoßen. Echt irre was man damit alles so machen kann.
    Werde mit Sicherheit das ein oder andere an Fragen haben.

    Auf ein gutes Miteinander
    oh-ha

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™