Entrada destacada

TODO LO QUE DEBES CONOCER SOBRE LOS CURSOS DE APLICANDO EXCEL

Aplicando Excel | Cursos de Excel  |  Nivel Básico  | Nivel Intermedio  | Nivel Experto  | Tablas y Gráficos Dinámicos  | Excel Personaliz...

Como implementar Inteligencia Artificial (ChatGPT) al Excel

 Aplicando Excel | Implementa CHATGPT a Excel con una Macro Key Api OpenAI


Es hora de poner INTELIGENCIA al Excel.

ChatGPT es un chat basado en un modelo de Inteligencia Artificial que permite responder, crear, resolver inquietudes y problemas.

PASO 1 :: ARCHIVO DE EXCEL HABILITADO PARA MACROS

Crear un Excel habilitado para macros. Para esto abrimos un nuevo Excel, vamos a Archivo -> Guardar Como -> Examinar


En Examinar ponemos un nombre a nuestro libro y lo guardamos habilitado para macros.


En el Excel habilitado para Macros creamos 2 hojas de cálculo: Prompt y Result

**Importante: Deben estar bien escritos estos nombres en las Hojas de Calculo


PASO 2 :: CREAR MACRO

Vamos a dar CLIC DERECHO sobre cualquiera de las Hojas y seleccionamos la opción Ver código


Se nos va a abrir nuestro Editor de Visual Basic aquí damos clic en Insertar y seleccionamos la opción de Módulo


** Se puede abrir el Editor de Visual Basic también con ALT + F11

En el Módulo que se creo pegamos el siguiente código:


Option Explicit


'=====================================================

' GET YOUR API KEY: https://openai.com

Const API_KEY As String = "<API_KEY>"

'=====================================================


' Constants for API endpoint and request properties

Const API_ENDPOINT As String = "https://api.openai.com/v1/completions"

Const MODEL As String = "text-davinci-003"

Const MAX_TOKENS As String = "1024"

Const TEMPERATURE As String = "0.5"


'Output worksheet name

Const OUTPUT_WORKSHEET As String = "Result"



Sub OpenAI_Completion()


10        On Error GoTo ErrorHandler

20        Application.ScreenUpdating = False


          ' Check if API key is available

30        If API_KEY = "<API_KEY>" Then

40            MsgBox "Please input a valid API key. You can get one from https://openai.com/api/", vbCritical, "No API Key Found"

50            Application.ScreenUpdating = True

60            Exit Sub

70        End If


          ' Get the prompt

          Dim prompt As String

80        prompt = ActiveCell.Value


          ' Check if there is anything in the selected cell

90        If Trim(prompt) <> "" Then

              ' Clean prompt to avoid parsing error in JSON payload

100           prompt = CleanJSONString(prompt)

110       Else

120           MsgBox "Please enter some text in the selected cell before executing the macro", vbCritical, "Empty Input"

130           Application.ScreenUpdating = True

140           Exit Sub

150       End If


          ' Create worksheet if it does not exist

160       If Not WorksheetExists(OUTPUT_WORKSHEET) Then

170           Worksheets.Add(After:=Sheets(Sheets.Count)).Name = OUTPUT_WORKSHEET

180       End If


          ' Clear existing data in worksheet

190       Worksheets(OUTPUT_WORKSHEET).UsedRange.ClearContents


          ' Show status in status bar

200       Application.StatusBar = "Processing OpenAI request..."


          ' Create XMLHTTP object

          Dim httpRequest As Object

210       Set httpRequest = CreateObject("MSXML2.XMLHTTP")


          ' Define request body

          Dim requestBody As String

220       requestBody = "{" & _

              """model"": """ & MODEL & """," & _

              """prompt"": """ & prompt & """," & _

              """max_tokens"": " & MAX_TOKENS & "," & _

              """temperature"": " & TEMPERATURE & _

              "}"

              

          ' Open and send the HTTP request

230       With httpRequest

240           .Open "POST", API_ENDPOINT, False

250           .SetRequestHeader "Content-Type", "application/json"

260           .SetRequestHeader "Authorization", "Bearer " & API_KEY

270           .send (requestBody)

280       End With


          'Check if the request is successful

290       If httpRequest.Status = 200 Then

              'Parse the JSON response

              Dim response As String

300           response = httpRequest.responseText


              'Get the completion and clean it up

              Dim completion As String

310           completion = ParseResponse(response)

              

              'Split the completion into lines

              Dim lines As Variant

320           lines = Split(completion, "\n")


              'Write the lines to the worksheet

              Dim i As Long

330           For i = LBound(lines) To UBound(lines)

340               Worksheets(OUTPUT_WORKSHEET).Cells(i + 1, 1).Value = ReplaceBackslash(lines(i))

350           Next i


              'Auto fit the column width

360           Worksheets(OUTPUT_WORKSHEET).Columns.AutoFit

              

              ' Show completion message

370           ' MsgBox "OpenAI completion request processed successfully. Results can be found in the 'Result' worksheet.", vbInformation, "OpenAI Request Completed"

              Sheets("Result").Select

              Range("a1:a10").Speak

              

              

              'Activate & color result worksheet

380           With Worksheets(OUTPUT_WORKSHEET)

390               .Activate

400               .Range("A1").Select

410               .Tab.Color = RGB(169, 208, 142)

420           End With

              

430       Else

440           MsgBox "Request failed with status " & httpRequest.Status & vbCrLf & vbCrLf & "ERROR MESSAGE:" & vbCrLf & httpRequest.responseText, vbCritical, "OpenAI Request Failed"

450       End If

          

460       Application.StatusBar = False

470       Application.ScreenUpdating = True

          

480       Exit Sub

          

ErrorHandler:

490       MsgBox "Error " & Err.Number & ": " & Err.Description & vbCrLf & "Line: " & Erl, vbCritical, "Error"

500       Application.StatusBar = False

510       Application.ScreenUpdating = True

          

End Sub

' Helper function to check if worksheet exists

Function WorksheetExists(worksheetName As String) As Boolean

520       On Error Resume Next

530       WorksheetExists = (Not (Sheets(worksheetName) Is Nothing))

540       On Error GoTo 0

End Function

' Helper function to parse the reponse text

Function ParseResponse(ByVal response As String) As String

550       On Error Resume Next

          Dim startIndex As Long

560       startIndex = InStr(response, """text"":""") + 8

          Dim endIndex As Long

570       endIndex = InStr(response, """index"":") - 2

580       ParseResponse = Mid(response, startIndex, endIndex - startIndex)

590       On Error GoTo 0

End Function

' Helper function to clean text

Function CleanJSONString(inputStr As String) As String

600       On Error Resume Next

          ' Remove line breaks

610       CleanJSONString = Replace(inputStr, vbCrLf, "")

620       CleanJSONString = Replace(CleanJSONString, vbCr, "")

630       CleanJSONString = Replace(CleanJSONString, vbLf, "")


          ' Replace all double quotes with single quotes

640       CleanJSONString = Replace(CleanJSONString, """", "'")

650       On Error GoTo 0

End Function

' Replaces the backslash character only if it is immediately followed by a double quote.

Function ReplaceBackslash(text As Variant) As String

660       On Error Resume Next

          Dim i As Integer

          Dim newText As String

670       newText = ""

680       For i = 1 To Len(text)

690           If Mid(text, i, 2) = "\" & Chr(34) Then

700               newText = newText & Chr(34)

710               i = i + 1

720           Else

730               newText = newText & Mid(text, i, 1)

740           End If

750       Next i

760       ReplaceBackslash = newText

770       On Error GoTo 0

End Function


Puedes descargar el EXCEL de ejemplo y CODIGO DE MACRO desde el siguiente link:

https://1drv.ms/u/s!AiFkH3zjVZ9vjEP-H-h5bLHNLf3o?e=Bkz1Qx

PASO 3 :: OBTENER EL API KEY DE OPENAI

Debemos primero crear una cuenta en OPENAI damos clic en el siguiente link:

https://openai.com/

Una vez que te registras y te logeas en el sitio de OPENAI das clic en el siguiente link: 

https://platform.openai.com/account/api-keys


En esta pagina das clic en la opción de Create new secret key . Te genera un KEY el mismo debemos COLOCAR en la MACRO

De la siguiente manera: 

** Esta al inicio de la macro esta parte del código. El KEY debe estar entre “ “

 

PASO 4 :: ASIGNAR LA MACRO A UNA FIGURA

En cualquier Columna de la hoja Prompt aumentamos el ancho y le colocamos un borde y estilo. 


Luego nos vamos a Insertar -> Formas -> Rectángulo: esquinas redondeadas . Ahí insertamos una figura en forma de un botón en nuestro Excel. Le colocamos igual el estilo que deseemos y le ponemos el texto de PREGÚNTAME  


Les debe quedar algo similar al ejemplo:


Damos clic derecho sobre la figura que creamos con el texto de PREGÚNTAME y damos clic en Asignar macro…


Aquí seleccionamos la Macro OpenAI_Completion y damos clic en Aceptar


Y esta FINALIZADO , para usar en la celda que le diste formato escribes que deseas preguntar a CHATGPT , seleccionada esta celda con la pregunta das CLIC en PREGÚNTAME 

Le respuesta se escuchará en AUDIO y se presentará la respuesta en la hoja RESULT


Si quieres descargar el MACRO y ARCHIVO de EXCEL da clic en el LOGO:


Mira el VIDEO donde se explica paso a paso como implementar CHATGPT al Excel: 



También te puede interesar, Da Clic: 

Crea un Reloj en Excel de Manera Simple


Puedes seguirme en:





O Escríbeme a:

2 comentarios:

  1. Buenas tardes, no me quiere funcionar la macro, me dice que hay un erro en la API key

    ResponderEliminar
  2. Hola gracias por ver mi contenido, hay veces que debes crear una cuenta nueva y generar un Key con esto se supera este error. Ya que en subscripciones antiguas puede ocurrir este fallo, puedes igual borrar el Key generado y crear uno nuevo en tu cuenta de OpenAI.

    ResponderEliminar