| |
|
|
- Página 1 - |
|
Stephan Sonneborn | ¡Hola zusammen, en un Excel-Tabellenblatt (Stückliste) debería Artikel eigetragen voluntad. Das es para una a Fuß, para otro por una Auswahlprogramm con bereitgestellten Artikeln. El Excel Presentación ha una primitiven Schutz gegen unbeabsichtigtes Überschreiben falscher Zellen: Blattschutz sin Contraseña.
Für el händische Editar el Stückliste Yo una Makro geschrieben, dass el Blattschutz aufhebt, una Leerzeile einfügt y luego el Blattschutz otra vez setzt. In VBA heißt el entonces: ActiveSheet.Unprotect
Beim Übertragen el Artikeldaten en el Excelblatt por oxc muss el Blattschutz auch aufgehoben ser. Das Yo quería así bewerkstelligen:
'*-------------------------------------------------------------------------------------------------*
'* Exceldatei abierto *
'*-------------------------------------------------------------------------------------------------*
PROC OpenExcelFile
'*-------------------------------------------------------------------------------------------------*
PARAMETERS File$
'*-------------------------------------------------------------------------------------------------*
DECLARE UsedRange&, Rows&
'*-------------------------------------------------------------------------------------------------*
IF FILEEXISTS(File$)
'Excel unsichtbar starten:
Excel& = ocxCREATE("Excel.Application")
Workbooks& = ocxGet(Excel&,"Workbooks")
ExcelWnd& = ocxGet(Excel&,"Hwnd")
ocxPut(Excel&,"DisplayAlerts",1)
ocxPut(Excel&,"Visible" ,1)
'*-------------------------------------------------------------------------------------------------*
'Excel-Ir:
ExcelBook& = ocxMethod(Workbooks&,"Open" , File$)
ExcelSheet& = ocxGet(ExcelBook&, "Sheets", ExcelSheet$)
ocxPut(ExcelSheet&, "Unprotect")
Range& = ocxGet(ExcelSheet&, "Range", "A1")
UsedRange& = ocxGet(ExcelSheet&, "UsedRange")
Rows& = ocxGet(UsedRange&, "Rows")
ExcelSheetLines& = ocxGet(Rows&, "Count")
LastBOMPos& = INT((ExcelSheetLines& - 19)/4)
ELSE
ExcelWnd& = 0
ENDIF
'*-------------------------------------------------------------------------------------------------*
'Rückgabewert:
RETORNO ExcelWnd&
'*-------------------------------------------------------------------------------------------------*
ENDPROC
'*-------------------------------------------------------------------------------------------------*
Leider führt el para Programmabsturz. Sombrero alguien una Concepto? Lo va sólo en el Eintrag ocxPUT(ExcelSheet&, "Unprotect"). Ohne esta Línea se ejecuta el Code. |
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 06.02.2011 ▲ |
|
|
|
|
« Dieser Contribución wurde como Solución gekennzeichnet. » |
|
Stephan Sonneborn | Sombrero ihn!
Einfach en lugar de ocxPut ocxMethod nehmen:
'*-------------------------------------------------------------------------------------------------*
'* Exceldatei abierto *
'*-------------------------------------------------------------------------------------------------*
PROC OpenExcelFile
'*-------------------------------------------------------------------------------------------------*
PARAMETERS File$
'*-------------------------------------------------------------------------------------------------*
DECLARE UsedRange&, Rows&
'*-------------------------------------------------------------------------------------------------*
IF FILEEXISTS(File$)
'Excel unsichtbar starten:
Excel& = ocxCREATE("Excel.Application")
Workbooks& = ocxGet(Excel&,"Workbooks")
ExcelWnd& = ocxGet(Excel&,"Hwnd")
ocxPut(Excel&,"DisplayAlerts",1)
ocxPut(Excel&,"Visible" ,1)
'*-------------------------------------------------------------------------------------------------*
'Excel-Ir:
ExcelBook& = ocxMethod(Workbooks&,"Open" , File$)
ExcelSheet& = ocxGet(ExcelBook&, "Sheets", ExcelSheet$)
ocxMethod(ExcelSheet&, "Unprotect")
Range& = ocxGet(ExcelSheet&, "Range", "A1")
UsedRange& = ocxGet(ExcelSheet&, "UsedRange")
Rows& = ocxGet(UsedRange&, "Rows")
ExcelSheetLines& = ocxGet(Rows&, "Count")
LastBOMPos& = INT((ExcelSheetLines& - 19)/4)
ELSE
ExcelWnd& = 0
ENDIF
'*-------------------------------------------------------------------------------------------------*
'Rückgabewert:
RETORNO ExcelWnd&
'*-------------------------------------------------------------------------------------------------*
ENDPROC
'*-------------------------------------------------------------------------------------------------*
|
|
|
| Schöne Grüße aus Wittgenstein von Stephan
Programmierumgebung:| XProfan X4 | WIN10 | AMD FX6100 3,3 GHz | 06.02.2011 ▲ |
|
|
|
|
|
| Sehr fresco, habe soeben una Ableger en Codesnippets erstellt: [...] |
|
|
| |
|
|