Jump to content
emarro

Macro para Consulta de Garantía

Recommended Posts

Buena noche, por este medio quisiera pedirles su apoyo u orientación para ver la posibilidad de poder consultar a través de VBA la garantía de un equipo de Dell en su sitio web usando el Service Tag que esta en la columna A y que en la B aparezca la fecha de envío, en la C fecha de Inicio, en la D la fecha de Vencimiento y la D el Código de Servicio Expreso, he investigado pero no he obtenido resultados, el Tag para prueba podría ser 2PTCB2S.

Si alguien me puede apoyar con este tema les estaría muy agradecido.

Share this post


Link to post
Share on other sites

Que tal Abraham gracias por responder, yo tengo un inventario de equipos Dell en excel lo que necesito poder posicionarme en la celda donde esta el TAG del equipo y con un botón programado con una macro se pueda acceder a la pagina https://www.dell.com/support/home/es-gt  agregar el TAG Number en este caso seria 2PTCB2S y que busque la info del equipo que muestra la web,  de eso necesito extraer a la celdas contiguas la Garantia si ya Caduco y asi mismo en los detalles la fecha de Envio, fecha de Inicio y Fecha de Vencimiento y Servicio Expreso, adjunto la idea, 

                  A                            B                             C                          D                          E                           F

1     TAG Number          Estatus Garantia      Fecha Env         Fecha Ini         Fecha Venci.       Servicio Expreso

2      2PTCB2S                  Caducada               19 OCT.2011    19 OCT.2011   20 OCT.2014       59144502164 

 

Espero haberme explicado mejor y agradeciendo su apoyo, quedo a la espera de un buen samaritano

Share this post


Link to post
Share on other sites

Hola nuevamente

Hay dos formas de hacerlo, una es usando el objeto MSXML2.XMLHTTP60  (o uno similar), la ventaja es que es relativamente rápido, y sus desventajas son la dificultad (para muchos) de entenderlo/programarlo y que no necesariamente funciona con todas las web. La segunda alternativa es usar el objeto Internet Explorer, su desventaja es que es más lento pero sus ventajas es que es más fácil de entender y que funciona con casi todas las webs. Sobre el segundo método, lee estos artículos:

https://abrahamexcel.blogspot.com/search?q=interactuando+con+internet 

Saludos

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Moderar y responder comentarios de usuarios. Recuerda que la información que facilites es pública, y los datos que incluyas los leerá cualquier visitante de esta web, así como el avatar que poseas.

Legitimación: Consentimiento del interesado.

Destinatarios: Hetzner Online GmbH.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.




  • Posts

    • ¡Hola a todos! Revisa el adjunto.  ¡Bendiciones! Libro1 (7).xlsx
    • Amigos, estoy muy agradecido con todos por tratar de ayudarme a resolver el dilema de ocultar la contraseña en el ImputBox. Desafortunadamente ninguna de las soluciones me llevo al exito. Pero, la buena noticia es que trasteando un poco en la red, encontre la solucion, y se las dejo por si alguien la necesita.   Option Explicit'---------------------------------- 'API CONSTANTS FOR PRIVATE INPUTBOX '---------------------------------- #If VBA7 Then Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, _ ByVal ncode As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias _ "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As Long Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As LongPtr, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" _ (ByVal hwnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long #Else Private Declare Function CallNextHookEx Lib "user32" (ByVal hHook As Long, _ ByVal ncode As Long, ByVal wParam As Long, lParam As Any) As Long Private Declare Function GetModuleHandle Lib "kernel32" Alias _ "GetModuleHandleA" (ByVal lpModuleName As String) As Long Private Declare Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" _ (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, _ ByVal dwThreadId As Long) As Long Private Declare Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As Long) As Long Private Declare Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" _ (ByVal hDlg As Long, ByVal nIDDlgItem As Long, ByVal wMsg As Long, _ ByVal wParam As Long, ByVal lParam As Long) As Long Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" _ (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare Function GetCurrentThreadId Lib "kernel32" () As Long #End If 'Constants to be used in our API functions Private Const EM_SETPASSWORDCHAR = &HCC Private Const WH_CBT = 5 Private Const HCBT_ACTIVATE = 5 Private Const HC_ACTION = 0 #If VBA7 Then Private hHook As LongPtr #Else Private hHook As Long #End If '---------------------------------- 'PRIVATE PASSWORDS FOR INPUTBOX '---------------------------------- '//////////////////////////////////////////////////////////////////// 'Password masked inputbox 'Allows you to hide characters entered in a VBA Inputbox. ' 'Code written by Daniel Klann 'March 2003 '64-bit modifications developed by Alexey Tseluiko 'and Ryan Wells (wellsr.com) 'February 2019 '//////////////////////////////////////////////////////////////////// #If VBA7 Then Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As LongPtr #Else Public Function NewProc(ByVal lngCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long #End If Dim RetVal Dim strClassName As String, lngBuffer As Long If lngCode < HC_ACTION Then NewProc = CallNextHookEx(hHook, lngCode, wParam, lParam) Exit Function End If strClassName = String$(256, " ") lngBuffer = 255 If lngCode = HCBT_ACTIVATE Then 'A window has been activated RetVal = GetClassName(wParam, strClassName, lngBuffer) If Left$(strClassName, RetVal) = "#32770" Then 'This changes the edit control so that it display the password character *. 'You can change the Asc("*") as you please. SendDlgItemMessage wParam, &H1324, EM_SETPASSWORDCHAR, asc("*"), &H0 End If End If 'This line will ensure that any other hooks that may be in place are 'called correctly. CallNextHookEx hHook, lngCode, wParam, lParam End Function Function InputBoxDK(Prompt, Title) As String #If VBA7 Then Dim lngModHwnd As LongPtr #Else Dim lngModHwnd As Long #End If Dim lngThreadID As Long lngThreadID = GetCurrentThreadId lngModHwnd = GetModuleHandle(vbNullString) hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID) InputBoxDK = InputBox(Prompt, Title) UnhookWindowsHookEx hHook End Function Adicionalmente dejo el link de la pagina de donde lo extraje, y el archivo con el codigo para que lo vean. Solucion Un abrazo, y de nuevo muchas gracias a todos. Tema solucionado!     Inputbox funcionando.xlsm
    • Hola Tu Office es de 64 bits y en el archivo de ejemplo enviado hay varias funciones de la API de Windows que hay que modificar en las declaraciones. Modifica toda la parte que está entre la línea #If VBA7 Then y la línea #Else reemplazando por las siguientes: Private Declare PtrSafe Function SetCurrentDirectoryA Lib "kernel32" (ByVal lpPathName As String) As Long Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr Private Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As Long Private Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongPtr Private Declare PtrSafe Function TerminateProcess Lib "kernel32" (ByVal hProcess As LongPtr, ByVal uExitCode As Long) As Long Private Declare PtrSafe Function CloseHandle Lib "kernel32" (ByVal hObject As LongPtr) As Long Private Declare PtrSafe Function SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As LongPtr, ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr Private Declare PtrSafe Function CallNextHookEx Lib "user32" (ByVal hHook As LongPtr, ByVal ncode As Long, ByVal wParam As LongPtr, lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" (ByVal hHook As LongPtr) As Long Private Declare PtrSafe Function SendDlgItemMessage Lib "user32" Alias "SendDlgItemMessageA" (ByVal hDlg As LongPtr, ByVal nIDDlgItem As Long, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As LongPtr Private Declare PtrSafe Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hWnd As LongPtr, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long Private Declare PtrSafe Function GetCurrentThreadId Lib "kernel32" () As Long   Yo prefiero usar Public, pero lo dejo en Private como te lo han mostrado. Saludos.
    • Estiamados foristas, acudo a Uds para encontrar ayuda al siguiente tema. Tengo una matriz en power bi en la que coloque el ID de una tabla producto y 3 medidas: 1er fecha 2da fecha Dias entre fechas Lo que necesito encontrar es que me traiga una nueva medida en que los dias entre fechas sea >= a 365 dias Trate de hacerlo con un CALCULATE -  ALL - FILTER pero o no me toma argumentos booleanos o no me toma la medida de dias entre fechas ya que no es una columna no esta en la tabla origen (es una medida calculada) Les paso en excel el ejemplo Dede ya muchas gracias data.xlsx
    • Hola Gerson Muchas gracias por tus archivos. No tengo Office 365 por lo que el primer archivo no lo puede utilizar. El segundo funciona perfectamente pero si intento crear más columnas me aparece error. El tercero no lo entiendo porque no veo ninguna fórmula en la tabla resumen. ¿Me puedes explicar el significado de lo que he marcado en verde? =SI(FILAS($A$1:$A1)>$B$12;"";INDICE(data!$A$10:$F$29;AGREGAR(15;6;FILA(data!$A$10:$A$29)-9/((data!$A$10:$A$29>=$C$7)*(data!$A$10:$A$29<=$C$8));FILAS($A$1:$A1));COLUMNAS($A$1:A$1))) Muchas gracias de nuevo Gerson. Saludos 
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy