├── src └── icon.png ├── Cap. 08 ├── Cap 8.png └── SysGestion rev7.xlsm ├── Others ├── Timers.xlsm ├── HANA Connector.xlsm ├── MultipleTimers.xlsm ├── ManageSapConnections.xlsm ├── ExtractTextFromPDF │ ├── text.pdf │ ├── tables.pdf │ ├── pdftotext.exe │ └── ConvertTextToPDF.xlsm ├── GetImagesFromPDF │ ├── images.pdf │ ├── ppm2jpg.exe │ ├── sample.pdf │ ├── pdfimages.exe │ └── GetImagesFromPDF.xlsm ├── FAQ Timers-Intermitencia.xlsm ├── IntegrationScriptingIntoVBA.xlsm ├── ScriptingExtendedTextInput.xlsm ├── EditingDocument_FB03.vbs ├── GuiShellTreeContainer.vbs ├── ScriptingExtendedTextExport.vbs ├── ScriptingExtendedTextInput.vbs └── SAP_Connection.vbs ├── Cap. 27 ├── database.accdb └── SysGestion rev26.xlsm ├── Cap. 28 ├── database.accdb └── SysGestion rev27.xlsm ├── Cap. 29 ├── database.accdb └── SysGestion rev28.xlsm ├── Cap. 30 ├── database.accdb └── SysGestion rev29.xlsm ├── Cap. 31 ├── database.accdb └── SysGestion rev30.xlsm ├── Cap. 32 ├── database.accdb └── SysGestion rev31.xlsm ├── Cap. 33 ├── database.accdb ├── SysGestion rev32.xlsm └── CAMBIOS UNIFICACION.txt ├── Cap. 34 ├── database.accdb ├── src │ ├── Bg color.jpg │ ├── Form bg.jpg │ ├── Action_Add_Hover.jpg │ ├── Button_OK_Hover.jpg │ ├── Button_OK_Normal.jpg │ ├── Menu_Exit_Hover.jpg │ ├── Menu_Exit_Normal.jpg │ ├── Menu_Main_Hover.jpg │ ├── Menu_Main_Normal.jpg │ ├── Action_Add_Normal.jpg │ ├── Action_Edit_Hover.jpg │ ├── Action_Edit_Normal.jpg │ ├── Action_Export_Hover.jpg │ ├── Action_Remove_Hover.jpg │ ├── Button_Cancel_Hover.jpg │ ├── Button_Save_Hover.jpg │ ├── Button_Save_Normal.jpg │ ├── Header_Title_Main.jpg │ ├── Icon_Remove1_Hover.jpg │ ├── Icon_Remove1_Normal.jpg │ ├── Icon_Remove2_Hover.jpg │ ├── Icon_Remove2_Normal.jpg │ ├── Menu_Main_Selected.jpg │ ├── Action_Export_Normal.jpg │ ├── Action_Remove_Normal.jpg │ ├── Button_Cancel_Normal.jpg │ ├── Button_Register_Hover.jpg │ ├── Header_Title_AddItem.jpg │ ├── Header_Title_EditItem.jpg │ ├── Icon_RemoveAll_Hover.jpg │ ├── Icon_RemoveAll_Normal.jpg │ ├── Menu_Inventory_Hover.jpg │ ├── Menu_Inventory_Normal.jpg │ ├── Button_Register_Normal.jpg │ ├── Header_Title_Inventory.jpg │ └── Menu_Inventory_Selected.jpg └── SysGestion rev33.xlsm ├── Cap. 02 └── SysGestion rev1.xlsm ├── Cap. 03 └── SysGestion rev2.xlsm ├── Cap. 04 └── SysGestion rev3.xlsm ├── Cap. 05 └── SysGestion rev4.xlsm ├── Cap. 06 └── SysGestion rev5.xlsm ├── Cap. 07 └── SysGestion rev6.xlsm ├── Cap. 10 └── SysGestion rev9.xlsm ├── Cap. 11 └── SysGestion rev10.xlsm ├── Cap. 12 └── SysGestion rev11.xlsm ├── Cap. 13 └── SysGestion rev12.xlsm ├── Cap. 14 └── SysGestion rev13.xlsm ├── Cap. 15 └── SysGestion rev14.xlsm ├── Cap. 16 └── SysGestion rev15.xlsm ├── Cap. 17 └── SysGestion rev16.xlsm ├── Cap. 18 └── SysGestion rev17.xlsm ├── Cap. 19 └── SysGestion rev18.xlsm ├── Cap. 20 └── SysGestion rev19.xlsm ├── Cap. 21 └── SysGestion rev20.xlsm ├── Cap. 22 └── SysGestion rev21.xlsm ├── Cap. 23 └── SysGestion rev22.xlsm ├── Cap. 24 └── SysGestion rev23.xlsm ├── Cap. 25 └── SysGestion rev24.xlsm ├── Cap. 26 └── SysGestion rev25.xlsm ├── README.md └── Cap. 09 └── SysGestion rev8.xlsm /src/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/src/icon.png -------------------------------------------------------------------------------- /Cap. 08/Cap 8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 08/Cap 8.png -------------------------------------------------------------------------------- /Others/Timers.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/Timers.xlsm -------------------------------------------------------------------------------- /Cap. 27/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 27/database.accdb -------------------------------------------------------------------------------- /Cap. 28/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 28/database.accdb -------------------------------------------------------------------------------- /Cap. 29/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 29/database.accdb -------------------------------------------------------------------------------- /Cap. 30/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 30/database.accdb -------------------------------------------------------------------------------- /Cap. 31/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 31/database.accdb -------------------------------------------------------------------------------- /Cap. 32/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 32/database.accdb -------------------------------------------------------------------------------- /Cap. 33/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 33/database.accdb -------------------------------------------------------------------------------- /Cap. 34/database.accdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/database.accdb -------------------------------------------------------------------------------- /Cap. 34/src/Bg color.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Bg color.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Form bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Form bg.jpg -------------------------------------------------------------------------------- /Others/HANA Connector.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/HANA Connector.xlsm -------------------------------------------------------------------------------- /Others/MultipleTimers.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/MultipleTimers.xlsm -------------------------------------------------------------------------------- /Cap. 02/SysGestion rev1.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 02/SysGestion rev1.xlsm -------------------------------------------------------------------------------- /Cap. 03/SysGestion rev2.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 03/SysGestion rev2.xlsm -------------------------------------------------------------------------------- /Cap. 04/SysGestion rev3.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 04/SysGestion rev3.xlsm -------------------------------------------------------------------------------- /Cap. 05/SysGestion rev4.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 05/SysGestion rev4.xlsm -------------------------------------------------------------------------------- /Cap. 06/SysGestion rev5.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 06/SysGestion rev5.xlsm -------------------------------------------------------------------------------- /Cap. 07/SysGestion rev6.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 07/SysGestion rev6.xlsm -------------------------------------------------------------------------------- /Cap. 08/SysGestion rev7.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 08/SysGestion rev7.xlsm -------------------------------------------------------------------------------- /Cap. 10/SysGestion rev9.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 10/SysGestion rev9.xlsm -------------------------------------------------------------------------------- /Cap. 11/SysGestion rev10.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 11/SysGestion rev10.xlsm -------------------------------------------------------------------------------- /Cap. 12/SysGestion rev11.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 12/SysGestion rev11.xlsm -------------------------------------------------------------------------------- /Cap. 13/SysGestion rev12.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 13/SysGestion rev12.xlsm -------------------------------------------------------------------------------- /Cap. 14/SysGestion rev13.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 14/SysGestion rev13.xlsm -------------------------------------------------------------------------------- /Cap. 15/SysGestion rev14.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 15/SysGestion rev14.xlsm -------------------------------------------------------------------------------- /Cap. 16/SysGestion rev15.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 16/SysGestion rev15.xlsm -------------------------------------------------------------------------------- /Cap. 17/SysGestion rev16.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 17/SysGestion rev16.xlsm -------------------------------------------------------------------------------- /Cap. 18/SysGestion rev17.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 18/SysGestion rev17.xlsm -------------------------------------------------------------------------------- /Cap. 19/SysGestion rev18.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 19/SysGestion rev18.xlsm -------------------------------------------------------------------------------- /Cap. 20/SysGestion rev19.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 20/SysGestion rev19.xlsm -------------------------------------------------------------------------------- /Cap. 21/SysGestion rev20.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 21/SysGestion rev20.xlsm -------------------------------------------------------------------------------- /Cap. 22/SysGestion rev21.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 22/SysGestion rev21.xlsm -------------------------------------------------------------------------------- /Cap. 23/SysGestion rev22.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 23/SysGestion rev22.xlsm -------------------------------------------------------------------------------- /Cap. 24/SysGestion rev23.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 24/SysGestion rev23.xlsm -------------------------------------------------------------------------------- /Cap. 25/SysGestion rev24.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 25/SysGestion rev24.xlsm -------------------------------------------------------------------------------- /Cap. 26/SysGestion rev25.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 26/SysGestion rev25.xlsm -------------------------------------------------------------------------------- /Cap. 27/SysGestion rev26.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 27/SysGestion rev26.xlsm -------------------------------------------------------------------------------- /Cap. 28/SysGestion rev27.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 28/SysGestion rev27.xlsm -------------------------------------------------------------------------------- /Cap. 29/SysGestion rev28.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 29/SysGestion rev28.xlsm -------------------------------------------------------------------------------- /Cap. 30/SysGestion rev29.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 30/SysGestion rev29.xlsm -------------------------------------------------------------------------------- /Cap. 31/SysGestion rev30.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 31/SysGestion rev30.xlsm -------------------------------------------------------------------------------- /Cap. 32/SysGestion rev31.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 32/SysGestion rev31.xlsm -------------------------------------------------------------------------------- /Cap. 33/SysGestion rev32.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 33/SysGestion rev32.xlsm -------------------------------------------------------------------------------- /Cap. 34/SysGestion rev33.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/SysGestion rev33.xlsm -------------------------------------------------------------------------------- /Cap. 34/src/Action_Add_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Add_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_OK_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_OK_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_OK_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_OK_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Exit_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Exit_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Exit_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Exit_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Main_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Main_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Main_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Main_Normal.jpg -------------------------------------------------------------------------------- /Others/ManageSapConnections.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/ManageSapConnections.xlsm -------------------------------------------------------------------------------- /Cap. 34/src/Action_Add_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Add_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Action_Edit_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Edit_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Action_Edit_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Edit_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Action_Export_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Export_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Action_Remove_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Remove_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_Cancel_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_Cancel_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_Save_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_Save_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_Save_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_Save_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Header_Title_Main.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Header_Title_Main.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Icon_Remove1_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Icon_Remove1_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Icon_Remove1_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Icon_Remove1_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Icon_Remove2_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Icon_Remove2_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Icon_Remove2_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Icon_Remove2_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Main_Selected.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Main_Selected.jpg -------------------------------------------------------------------------------- /Others/ExtractTextFromPDF/text.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/ExtractTextFromPDF/text.pdf -------------------------------------------------------------------------------- /Others/GetImagesFromPDF/images.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/GetImagesFromPDF/images.pdf -------------------------------------------------------------------------------- /Others/GetImagesFromPDF/ppm2jpg.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/GetImagesFromPDF/ppm2jpg.exe -------------------------------------------------------------------------------- /Others/GetImagesFromPDF/sample.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/GetImagesFromPDF/sample.pdf -------------------------------------------------------------------------------- /Cap. 34/src/Action_Export_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Export_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Action_Remove_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Action_Remove_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_Cancel_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_Cancel_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Button_Register_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_Register_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Header_Title_AddItem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Header_Title_AddItem.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Header_Title_EditItem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Header_Title_EditItem.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Icon_RemoveAll_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Icon_RemoveAll_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Icon_RemoveAll_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Icon_RemoveAll_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Inventory_Hover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Inventory_Hover.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Inventory_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Inventory_Normal.jpg -------------------------------------------------------------------------------- /Others/ExtractTextFromPDF/tables.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/ExtractTextFromPDF/tables.pdf -------------------------------------------------------------------------------- /Others/FAQ Timers-Intermitencia.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/FAQ Timers-Intermitencia.xlsm -------------------------------------------------------------------------------- /Others/GetImagesFromPDF/pdfimages.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/GetImagesFromPDF/pdfimages.exe -------------------------------------------------------------------------------- /Cap. 34/src/Button_Register_Normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Button_Register_Normal.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Header_Title_Inventory.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Header_Title_Inventory.jpg -------------------------------------------------------------------------------- /Cap. 34/src/Menu_Inventory_Selected.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Cap. 34/src/Menu_Inventory_Selected.jpg -------------------------------------------------------------------------------- /Others/ExtractTextFromPDF/pdftotext.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/ExtractTextFromPDF/pdftotext.exe -------------------------------------------------------------------------------- /Others/IntegrationScriptingIntoVBA.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/IntegrationScriptingIntoVBA.xlsm -------------------------------------------------------------------------------- /Others/ScriptingExtendedTextInput.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/ScriptingExtendedTextInput.xlsm -------------------------------------------------------------------------------- /Others/GetImagesFromPDF/GetImagesFromPDF.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/GetImagesFromPDF/GetImagesFromPDF.xlsm -------------------------------------------------------------------------------- /Others/ExtractTextFromPDF/ConvertTextToPDF.xlsm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alefranzoni/vba-course/HEAD/Others/ExtractTextFromPDF/ConvertTextToPDF.xlsm -------------------------------------------------------------------------------- /Others/EditingDocument_FB03.vbs: -------------------------------------------------------------------------------- 1 | If Not IsObject(application) Then 2 | Set SapGuiAuto = GetObject("SAPGUI") 3 | Set application = SapGuiAuto.GetScriptingEngine 4 | End If 5 | If Not IsObject(connection) Then 6 | Set connection = application.Children(0) 7 | End If 8 | If Not IsObject(session) Then 9 | Set session = connection.Children(0) 10 | End If 11 | If IsObject(WScript) Then 12 | WScript.ConnectObject session, "on" 13 | WScript.ConnectObject application, "on" 14 | End If 15 | 16 | ' Ingremos a la transaccion 17 | session.StartTransaction ("fb03") 18 | 19 | ' Ingresamos al documento a editar 20 | session.findById("wnd[0]/usr/txtRF05L-BELNR").text = "100000000" 21 | session.findById("wnd[0]/usr/ctxtRF05L-BUKRS").text = "0001" 22 | session.findById("wnd[0]/usr/txtRF05L-GJAHR").text = "2000" 23 | session.findById("wnd[0]").sendVKey 0 24 | 25 | ' Activamos modo edición 26 | session.findById("wnd[0]").sendVKey 25 27 | 28 | ' Seteamos la tabla contenedora 29 | Set tbl = session.findById("wnd[0]/usr/cntlCTRL_CONTAINERBSEG/shellcont/shell") 30 | 31 | ' Recorrer el listado 32 | accountSearched = "3" 33 | text = "Edited by scripting :)" 34 | For i = 0 To (tbl.rowCount - 1) 35 | ' Obtener valor de account y comprobar 36 | If tbl.getCellValue(CInt(i), "KTONR") = accountSearched Then 37 | ' Ingresamos a la row 38 | tbl.currentCellRow = CInt(i) 39 | tbl.selectedRows = CStr(i) 40 | tbl.doubleClickCurrentCell 41 | 42 | ' Editar el texto 43 | session.findById("wnd[0]/usr/ctxtBSEG-SGTXT").text = text 44 | 45 | ' Back 46 | session.findById("wnd[0]").sendVKey 3 47 | Exit For 48 | End If 49 | Next 50 | 51 | ' Save document 52 | session.findById("wnd[0]").sendVKey 11 -------------------------------------------------------------------------------- /Others/GuiShellTreeContainer.vbs: -------------------------------------------------------------------------------- 1 | If Not IsObject(application) Then 2 | Set SapGuiAuto = GetObject("SAPGUI") 3 | Set application = SapGuiAuto.GetScriptingEngine 4 | End If 5 | If Not IsObject(connection) Then 6 | Set connection = application.Children(0) 7 | End If 8 | If Not IsObject(session) Then 9 | Set session = connection.Children(0) 10 | End If 11 | If IsObject(WScript) Then 12 | WScript.ConnectObject session, "on" 13 | WScript.ConnectObject application, "on" 14 | End If 15 | 16 | ' Get container type 17 | Set tbl = session.findById("wnd[0]/usr/cntlTREE_CONTAINER/shellcont/shell") 18 | ' MsgBox tbl.type 19 | ' MsgBox tbl.subtype 20 | 21 | ' Get nodes count 22 | Set nodes = tbl.GetAllNodeKeys 23 | ' MsgBox nodes.Count 24 | 25 | ' Get columns counts 26 | ' MsgBox "Cantidad de columnas: " & tbl.GetColumnHeaders.Count 27 | 28 | ' Node key and column name 29 | ' MsgBox "Nodo <" & tbl.SelectedItemNode & ">" 30 | ' MsgBox "Columna <" & tbl.SelectedItemColumn & ">" 31 | 32 | ' Get nodes keys 33 | ' nodesKeys = vbnullstring 34 | ' For i = 0 To (nodes.Count - 1) 35 | ' If (nodesKeys = vbnullstring) Then 36 | ' nodesKeys = "[" & nodes.Item(CInt(i)) & "]" 37 | ' Else 38 | ' nodesKeys = nodesKeys & vbnewline & "[" & nodes.Item(CInt(i)) & "]" 39 | ' End If 40 | ' Next 41 | ' MsgBox nodesKeys 42 | 43 | ' Get text by node key 44 | ' MsgBox tbl.GetNodeTextByKey(" 1") 45 | 46 | ' Get text by key and column 47 | ' MsgBox tbl.GetItemText(" 1", "2") 48 | 49 | ' Folder expandable 50 | ' MsgBox tbl.IsFolderExpandable(" 5") 51 | ' tbl.ExpandNode(" 5") 52 | ' ' tbl.CollapseNode(" 5") 53 | ' MsgBox tbl.IsFolderExpanded(" 5") 54 | 55 | ' Search for a value in list 56 | ' Set column = tbl.GetColumnCol(CInt(1)) 57 | ' searchValue = "SAPS-ALL-AA-01" 58 | ' For i = 0 To (column.Count - 1) 59 | ' If column.Item(CInt(i)) = searchValue Then 60 | ' MsgBox "Descripción del nodo " & column.Item(CInt(i)) & vbnewline & tbl.GetColumnCol(2).Item(CInt(i)) 61 | ' Exit For 62 | ' End If 63 | ' Next -------------------------------------------------------------------------------- /Others/ScriptingExtendedTextExport.vbs: -------------------------------------------------------------------------------- 1 | If Not IsObject(application) Then 2 | Set SapGuiAuto = GetObject("SAPGUI") 3 | Set application = SapGuiAuto.GetScriptingEngine 4 | End If 5 | If Not IsObject(connection) Then 6 | Set connection = application.Children(0) 7 | End If 8 | If Not IsObject(session) Then 9 | Set session = connection.Children(0) 10 | End If 11 | If IsObject(WScript) Then 12 | WScript.ConnectObject session, "on" 13 | WScript.ConnectObject application, "on" 14 | End If 15 | 16 | exportFile = "C:\Users\vboxuser\Documents\SAP\SAP GUI\tmp.txt" 17 | 18 | 'Ingresamos a la tx 19 | session.StartTransaction "co03" 20 | 21 | 'Ingresamos a la orden 22 | session.findById("wnd[0]/usr/ctxtCAUFVD-AUFNR").text = "1000000" 23 | session.findById("wnd[0]").sendVKey 0 24 | 25 | 'Guardamos texto corto 26 | shortText = session.findById("wnd[0]/usr/txtCAUFVD-MATXT").text 27 | 28 | 'Hacemos foco sobre el texto e ingresamos al texto extendido 29 | session.findById("wnd[0]/usr/txtCAUFVD-MATXT").setFocus 30 | session.findById("wnd[0]").sendVKey 2 31 | 32 | 'Descargamos archivo 33 | session.findById("wnd[0]/mbar/menu[0]/menu[4]").select 34 | session.findById("wnd[1]/usr/radITCTK-TDASCII").select 35 | session.findById("wnd[1]/tbar[0]/btn[0]").press 36 | session.findById("wnd[2]/usr/ctxtITCTK-TDFILENAME").text = exportFile 37 | session.findById("wnd[2]/usr/ctxtITCTK-TDCODEPAGE").text = "1152" 38 | session.findById("wnd[2]/tbar[0]/btn[0]").press 39 | 'Reemplazamos si ya existe el archivo 40 | If Not session.findById("wnd[2]", False) Is Nothing Then session.findById("wnd[2]").sendVKey 5 41 | 42 | 'Back 43 | session.findById("wnd[0]").sendVKey 3 44 | session.findById("wnd[0]").sendVKey 3 45 | session.findById("wnd[0]").sendVKey 3 46 | 47 | 'Creamos objeto para abrir archivo 48 | Set fso = CreateObject("Scripting.FileSystemObject") 49 | 'Abrimos archivo 50 | Set targetFile = fso.OpenTextFile(exportFile, 1) 51 | 'Almacenamos texto 52 | extendedText = Replace(targetFile.ReadAll, "##", vbNullString) 53 | 'Cerrar archivo y liberar objetos 54 | targetFile.Close 55 | Set fso = Nothing 56 | Set targetFile = Nothing 57 | 58 | MsgBox "Texto corto:" & vbnewline & shortText & vbnewline & vbnewline & _ 59 | "Texto extendido:" & vbnewline & extendedText -------------------------------------------------------------------------------- /Others/ScriptingExtendedTextInput.vbs: -------------------------------------------------------------------------------- 1 | ' 2 | ' Alejandro Franzoni Gimenez 3 | ' https://www.youtube.com/@alefranzoni 4 | ' 5 | If Not IsObject(application) Then 6 | Set SapGuiAuto = GetObject("SAPGUI") 7 | Set application = SapGuiAuto.GetScriptingEngine 8 | End If 9 | If Not IsObject(connection) Then 10 | Set connection = application.Children(0) 11 | End If 12 | If Not IsObject(session) Then 13 | Set session = connection.Children(0) 14 | End If 15 | If IsObject(WScript) Then 16 | WScript.ConnectObject session, "on" 17 | WScript.ConnectObject application, "on" 18 | End If 19 | 20 | order = "4000020" 21 | text = "Este es un texto largo de ejemplo. Múltiples líneas" 22 | 23 | 'Ingresamos a la tx 24 | session.StartTransaction "iw32" 25 | 'Ingresamos a la orden 26 | session.findById("wnd[0]/usr/ctxtCAUFVD-AUFNR").text = order 27 | session.findById("wnd[0]").sendVKey 17 28 | 'Ingresamos texto 29 | session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpVGUE/ssubSUB_AUFTRAG:SAPLCOVG:3010/tblSAPLCOVGTCTRL_3010/txtAFVGD-LTXA1[7,1]").text = Mid(textToUnicode(text),1,40) 30 | session.findById("wnd[0]").sendVKey 0 31 | 32 | If Len(text) > 40 Then 33 | 'Presionamos boton texto extendido 34 | session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpVGUE/ssubSUB_AUFTRAG:SAPLCOVG:3010/tblSAPLCOVGTCTRL_3010").getAbsoluteRow(1).selected = true 35 | session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpVGUE/ssubSUB_AUFTRAG:SAPLCOVG:3010/tblSAPLCOVGTCTRL_3010/btnLTICON-LTOPR[8,1]").press 36 | 'Borrar contenido 37 | session.findById("wnd[0]").sendVKey 14 38 | session.findById("wnd[1]/usr/btnSPOP-OPTION1").press 39 | 'Pegar contenido del clipboard 40 | 'VBS 41 | putTextInClipboard text 42 | session.findById("wnd[0]").sendVKey 9 43 | 'Back 44 | session.findById("wnd[0]").sendVKey 3 45 | 'Deseleccion 46 | session.findById("wnd[0]/usr/subSUB_ALL:SAPLCOIH:3001/ssubSUB_LEVEL:SAPLCOIH:1107/tabsTS_1100/tabpVGUE/ssubSUB_AUFTRAG:SAPLCOVG:3010/tblSAPLCOVGTCTRL_3010").getAbsoluteRow(1).selected = false 47 | End If 48 | 49 | Sub putTextInClipboard(text) 50 | WScript.CreateObject("WScript.Shell").Run "cmd.exe /c echo " & textToUnicode(text) & " | clip", 0, True 51 | End Sub 52 | 53 | Function textToUnicode(textInput) 54 | With CreateObject("ADODB.Stream") 55 | .Open 56 | .Charset = "Windows-1252" 57 | .WriteText textInput 58 | .Position = 0 59 | .Type = 2 60 | .Charset = "utf-8" 61 | textToUnicode = .ReadText(-1) 62 | .Close 63 | End With 64 | End Function -------------------------------------------------------------------------------- /Others/SAP_Connection.vbs: -------------------------------------------------------------------------------- 1 | ' -------------------------------------------------------------------- 2 | ' Title SAP Scripting: Establishing connection by SSO & Auth 3 | ' Author Alejandro Franzoni Gimenez 4 | ' 5 | ' Contact contacto@alejandrofranzoni.com.ar 6 | ' www.alejandrofranzoni.com.ar 7 | ' -------------------------------------------------------------------- 8 | 9 | ' SAP 10 | SAP_BIN = "saplogon.exe" 11 | SAP_GUI_PATH = "C:\Program Files (x86)\SAP\FrontEnd\SapGui\" & SAP_BIN 12 | ' Connections 13 | lk0_sso = "- LK0 [SSO - SIC Domestico - TESTING PROYECTOS EHP6 SP7]" 14 | lk0_auth = "LK0 [EHP6 SP7 SIC Domestico - TESTING]" 15 | ' Auth 16 | user = "username" 17 | password = "pw" 18 | 19 | Main 20 | 21 | Sub Main() 22 | If Not FileExists(SAP_GUI_PATH) Then 23 | MsgBox "El archivo no existe en la ruta especificada.", vbExclamation, "Archivo no encontrado" 24 | Exit Sub 25 | End If 26 | 27 | ExecuteAndWaitForSAP 28 | 29 | ' SapGuiApplication 30 | Set root = GetObject("SAPGUI") 31 | Set Application = root.GetScriptingEngine 32 | 33 | ' Open sync connection 34 | ' 35 | ' Without SSO 36 | ' Set Connection = Application.OpenConnection(lk0_auth, True) 37 | ' Set Session = Connection.Children(0) 38 | ' Session.findById("wnd[0]/usr/txtRSYST-BNAME").text = user 39 | ' Session.findById("wnd[0]/usr/pwdRSYST-BCODE").text = password 40 | ' Session.findById("wnd[0]/tbar[0]/btn[0]").press 41 | ' 42 | ' SSO 43 | Set Connection = Application.OpenConnection(lk0_sso, True) 44 | Set Session = Connection.Children(0) 45 | 46 | ' Open any tx 47 | Session.StartTransaction("IW32") 48 | MsgBox "Ok!" 49 | 50 | ' Shutdown the connection 51 | Set Session = Nothing 52 | Connection.CloseSession("ses[0]") 53 | Set Connection = Nothing 54 | Set Application = Nothing 55 | End Sub 56 | 57 | Sub ExecuteAndWaitForSAP() 58 | ' Run saplogon bin 59 | WScript.CreateObject("WScript.Shell").Run Chr(34) & SAP_GUI_PATH & Chr(34), 2 60 | 61 | ' Wait to be initialized 62 | isSapInitialized = False 63 | Do While Not isSapInitialized 64 | isSapInitialized = IsProcessRunning(SAP_BIN) 65 | Loop 66 | 67 | WScript.Sleep 3000 68 | End Sub 69 | 70 | Function IsProcessRunning(targetProcess) 71 | Set WMIService = GetObject("winmgmts:\\.\root\cimv2") 72 | query = "SELECT * FROM Win32_Process" 73 | Set items = WMIService.ExecQuery(query) 74 | 75 | For Each item In items 76 | If item.Name = targetProcess Then 77 | IsProcessRunning = True 78 | Exit Function 79 | End If 80 | Next 81 | 82 | IsProcessRunning = False 83 | End Function 84 | 85 | Function FileExists(filePath) 86 | Set fso = CreateObject("Scripting.FileSystemObject") 87 | If fso.FileExists(filePath) Then 88 | FileExists = True 89 | Else 90 | FileExists = False 91 | End If 92 | End Function 93 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 |
11 |
12 |
13 |
14 |
17 | Contenido • 18 | Modo de Uso • 19 | Donaciones 20 |
21 | 22 | 23 | ## Contenido 24 | 25 | En este repositorio encontrarás todo el material referido al curso práctico para aprender a programar en Visual Basic for Applications dictado en [YouTube](https://www.youtube.com/playlist?list=PLEALJWIWX5iKEI0XC1OPwsKrQrYvIipmu) por [Alejandro Franzoni Gimenez](https://www.alejandrofranzoni.com.ar/). 26 | ### Indice 27 | * Capítulo 1 - *Introducción* 28 | * [Capítulo 2 - *Formularios*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2002) 29 | * [Capítulo 3 - *Interactuando con Registros*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2003) 30 | * [Capítulo 4 - *Validando Registros*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2004) 31 | * [Capítulo 5 - *Registros Duplicados*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2005) 32 | * [Capítulo 6 - *Refactoring*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2006) 33 | * [Capítulo 7 - *Listbox I*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2007) 34 | * [Capítulo 8 - *Listbox II*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2008) 35 | * [Capítulo 9 - *Editar Artículos* I](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2009) 36 | * [Capítulo 10 - *Editar Artículos* II](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2010) 37 | * [Capítulo 11 - *Buscar Artículos* I](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2011) 38 | * [Capítulo 12 - *Buscar Artículos* II](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2012) 39 | * [Capítulo 13 - *Eliminar Artículos*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2013) 40 | * [Capítulo 14 - *Exportar Artículos*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2014) 41 | * [Capítulo 15 - *Importar Artículos I*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2015) 42 | * [Capítulo 16 - *Importar Artículos II*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2016) 43 | * [Capítulo 17 - *Correción de IDs*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2017) 44 | * [Capítulo 18 - *Main: Busqueda*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2018) 45 | * [Capítulo 19 - *Carrito I: Agregar Items*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2019) 46 | * [Capítulo 20 - *Carrito II: Cantidades*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2020) 47 | * [Capítulo 21 - *Carrito III: Remover Items*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2021) 48 | * [Capítulo 22 - *Carrito IV: Precio Final*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2022) 49 | * [Capítulo 23 - *Main: Registrar Venta I*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2023) 50 | * [Capítulo 24 - *Main: Registrar Venta II*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2024) 51 | * [Capítulo 25 - *Control de Stock*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2025) 52 | * [Capítulo 26 - *Decimal Separator*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2026) 53 | * [Capítulo 27 - *Integrando Base de Datos: CONEXION*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2027) 54 | * [Capítulo 28 - *Integrando Base de Datos: INSERT*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2028) 55 | * [Capítulo 29 - *Integrando Base de Datos: SELECT*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2029) 56 | * [Capítulo 30 - *Integrando Base de Datos: UPDATE*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2030) 57 | * [Capítulo 31 - *Integrando Base de Datos: POBLAR TABLA Y DELETE*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2031) 58 | * [Capítulo 32 - *Integrando Base de Datos: CASHOUT*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2032) 59 | * [Capítulo 33 - *Unificación de Formularios*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2033) 60 | * [Capítulo 34 - *Interfaz de Usuario: UI/UX*](https://github.com/alefranzoni/vba-course/tree/main/Cap.%2034) 61 | 62 | ## Modo de Uso 63 | 64 | La utilización del presente repositorio es muy sencilla e intuitiva, los archivos correspondientes a cada capítulo están organizados por carpetas con su respectivo nombre mediante el cual podrás identificarlos fácil y rápidamente. Para realizar una descarga solo tendrás que dirigirte a la carpeta del capítulo deseado, ya sea navegando por el índice o a través del repositorio, y realizar la descarga de los archivos requeridos. 65 | 66 | ***Nota:** el directorio `src` solo contiene archivos fuente ajenos al curso como, por ejemplo, el logo utilizado en este archivo, por lo tanto, puede ser ignorado.* 67 | 68 | 69 | ## Donaciones 70 | _¿Estás disfrutando de este curso? ¡Podés ayudarme mucho a seguir creando este tipo de contenido invitándome un cafecito! ☕ 71 |
77 | ---
78 |
79 | > Curso Práctico Excel Visual Basic for Applications · [alejandrofranzoni.com.ar](https://www.alejandrofranzoni.com.ar/)
80 |
--------------------------------------------------------------------------------
/Cap. 33/CAMBIOS UNIFICACION.txt:
--------------------------------------------------------------------------------
1 | {GENERAL}
2 | - Modificar título de cada Page
3 |
4 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5 |
6 | {frmHome}
7 | - Hacer Public el método navigateToPage
8 |
9 | - Modificado evento cmdMenuInventory_Click()
10 | Private Sub cmdMenuInventory_Click()
11 | navigateToPage Me.Navigation.Pages("Inventory").index
12 | Inventory.refreshListContent
13 | End Sub
14 |
15 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
16 |
17 | {frmInventory}
18 | - Eliminado boton de importar (porque en mi caso no lo voy a utilizar, si ustedes le dieron funcionalidad, conservarlo)
19 |
20 | - Modificado módulo Inventory, todas las referencias de frmInventory a frmHome
21 |
22 | - UserForm_Initialize de frmInventory eliminado y se pasaron los metodos contenidos en él al Initialize del frmHome
23 | Private Sub UserForm_Initialize()
24 | Main.initComboBox
25 | Main.setColumnsWidths
26 | Inventory.refreshListContent
27 | Inventory.setListBoxColumnWidths
28 | End Sub
29 |
30 | - Modificado evento cmdAddItem_Click() para añadir un nuevo artículo
31 | Private Sub cmdAddItem_Click()
32 | navigateToPage Me.Navigation.Pages("AddItem").index
33 | Me.cmdAceptar.Caption = "Aceptar"
34 | Me.lblTitleAddItem.Caption = Replace(Me.lblTitleAddItem.Caption, "Editar", "Nuevo")
35 | AddItem.clearItemContent
36 | End Sub
37 |
38 | - (OPCIONAL) Agrandar tamaño de ListBox
39 |
40 | - Modificado evento cmdEdit_Click() para editar un articulo existente, eliminamos la referencia de frmAddItem para que quede la llamada a la funcion dentro del mismo formulario (openEditMode contenido en frmAddItem)
41 | Private Sub cmdEdit_Click()
42 | ' Validar seleccion
43 | If Me.lbxInventory.ListIndex = -1 Then
44 | Msg "Debe seleccionar un articulo para continuar", 2
45 | Exit Sub
46 | End If
47 |
48 | ' Editar Articulo
49 | Dim id As Integer: id = CInt(Me.lbxInventory.List(Me.lbxInventory.ListIndex, 0))
50 | Dim nombre As String: nombre = Me.lbxInventory.List(Me.lbxInventory.ListIndex, 1)
51 | Dim desc As String: desc = Me.lbxInventory.List(Me.lbxInventory.ListIndex, 2)
52 | Dim precio As String: precio = Me.lbxInventory.List(Me.lbxInventory.ListIndex, 3)
53 | Dim stock As String: stock = Me.lbxInventory.List(Me.lbxInventory.ListIndex, 4)
54 | Dim estado As Boolean: estado = CBool(Me.lbxInventory.List(Me.lbxInventory.ListIndex, 5))
55 |
56 | openEditMode id, nombre, desc, precio, stock, estado
57 | End Sub
58 |
59 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
60 |
61 | {frmAddItem}
62 | - Hacer privado el método `openEditMode`. Del mismo eliminar la llamada `.Caption` que ya no la necesitamos, que es la que cambiaba el titulo de la ventana. Cambiamos también la refenrecia del Caption del titulo a lblTitleAddItem (nombre dado al Label del título). Por ultimo eliminamos el .Show que era para mostrar el formulario y agregamos la navegacion hacia la pagina de edicion
63 | Private Sub openEditMode(ByVal id As Integer, ByVal nombre As String, ByVal desc As String, ByVal precio As String, ByVal stock As String, ByVal estado As Boolean)
64 | With Me
65 | .txtName.Value = nombre
66 | .txtDescription.Value = desc
67 | .txtPrice.Value = precio
68 | .txtStock.Value = stock
69 | .chkActive.Value = estado
70 |
71 | .lblTitleAddItem.Caption = Replace(.lblTitleAddItem.Caption, "Nuevo", "Editar")
72 | .cmdAceptar.Caption = "Guardar"
73 |
74 | .lblID.Caption = id
75 | End With
76 |
77 | navigateToPage Me.Navigation.Pages("AddItem").index
78 | End Sub
79 |
80 | - (OPCIONAL) Agrandar todos los controles para ocupar mejor el ancho de la pagina
81 |
82 | - Modificado módulo AddItem , todas las referencias de frmAddItem a frmHome
83 |
84 | - Eliminar evento UserForm_Terminate() porque ya no lo necesitamos
85 |
86 | - Modificado metodo cmdAceptar_Click() (Aceptar/Guardar), agregada una llamada para refrescar y actualizar el inventario Inventory.refreshListContent
87 | Private Sub cmdAceptar_Click()
88 | ' Validacion
89 | If AddItem.checkValidations() <> True Then Exit Sub
90 |
91 | Select Case Me.cmdAceptar.Caption
92 | Case "Aceptar"
93 | Database.insertNewItem Me.txtName.Value, Me.txtDescription.Value, CDbl(Me.txtPrice.Value), CInt(Me.txtStock.Value), Me.chkActive.Value
94 | Case "Guardar"
95 | Database.updateItem CInt(Me.lblID.Caption)
96 | End Select
97 |
98 | Inventory.refreshListContent
99 | End Sub
100 |
101 | - Modificado evento cmdCancel_Click() (boton cancelar) por la navegacion hasta el inventario nuevamente en lugar de cerrar el formulario
102 | Private Sub cmdCancel_Click()
103 | navigateToPage Me.Navigation.Pages("Inventory").index
104 | End Sub
105 |
106 | {Database}
107 | - Modificar referencias de frmAddItem por frmHome
108 |
109 | - Modificar procedimientos de UPDATE (updateItem) y de INSERT (insertNewItem) y cambiar el Unload frmAddItem por frmHome.navigateToPage
110 | Public Sub insertNewItem(ByVal name As String, ByVal description As String, ByVal price As Double, ByVal stock As Integer, ByVal status As Boolean)
111 | If openDBConnection <> True Then Exit Sub
112 |
113 | [...]
114 |
115 | If qMsg("¡Carga realizada con éxito!" & vbNewLine & "¿Desea cargar un nuevo artículo?") Then AddItem.clearItemContent Else frmHome.navigateToPage (frmHome.Navigation.Pages("Inventory").index)
116 | Exit Sub
117 |
118 | insert_error:
119 | [...]
120 | End Sub
121 | Public Sub updateItem(ByVal id As Integer)
122 | If qMsg("Esta seguro que desea modificar el articulo?") <> True Then Exit Sub
123 |
124 | [...]
125 |
126 | frmHome.navigateToPage frmHome.Navigation.Pages("Inventory").index
127 | Msg "El articulo fue modificado con exito", 1, "Articulo Modificado"
128 | Exit Sub
129 |
130 | update_error:
131 | [...]
132 | End Sub
--------------------------------------------------------------------------------
/Cap. 09/SysGestion rev8.xlsm:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |