No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Crear una subrutina

9/17
Recursos

Aportes 167

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Jajajajajajajaj, a que me gano un corazoncito!!!

Public Sub prueba2()

Sheets("Hoja2").Select
Cells(1, 1) = "Al pie de la letra"
Range(Cells(2, 1), Cells(5, 1)) = "Un"
Range("B2:B5") = "Mensaje"
Range("C2:C5") = "Interesante"

Aqui dejo mi resultado y el codigo

Public Sub prueba2()
    Sheets("Sheet3").Select
    Cells(1, 1) = "Hello Friend"
    Cells(2, 2) = "This is a sample"
    Cells(3, 3) = "about the proper usage"
    Cells(4, 4) = "of VBA"
    Range("A5:J5").Value = "See you in space, cowboy"
    Range("A1:J5").Interior.Color = RGB(0, 0, 0)
    Range("A1:J5").Font.Color = RGB(255, 255, 255)
    Range("A1:J5").HorizontalAlignment = xlCenter
    Range("A1:J5").Replace "", "*"
End Sub

Comparto mi Reto:
.

Eh realizado lo siguiente una operación junto a un mensaje.

Public Sub prueba3()
	Sheets("Hoja3").Select
	Cells(1, 2) = 5
	Cells(2, 2) = 6
	Cells(3, 1) = "Resultado"
	Cells(3, 2).Formula = "=b1+b2"
	Sheets("Hoja3").Range("B3").Style = "percent"
End Sub

Me mostraría de esta manera:

Espero un corazoncito de los Colombianos

Sheets("hoja1").Select
Cells(1, 1) = "oh gloria inmarcesible"
Cells(2, 1) = "oh jubilo inmortal"
Cells(3, 1) = "en surcos de dolores"
Cells(4, 1) = "el bien germina alla"
Range("E1:G2").Interior.Color = RGB(255, 255, 0)
Range("E3:G3").Interior.Color = RGB(0, 0, 255)
Range("E4:G4").Interior.Color = RGB(255, 0, 0)

Sheets("hoja2").Select
Cells(2, 2) = 3 * 2
Cells(2, 3) = 5 * 5
Cells(2, 4).Formula = "=b2 + c2"

MsgBox "Viva Colombia, se ha terminado de ejecutar la macro"

Public Sub prueba3()
Sheets(“Hoja1”).Select
Range(Cells(4, 4), Cells(7, 7)) = "Aquí te voy San Pedro!"
Cells(1, 1) = 23 * 35

End Sub

Hola, buen día!

Comparto mi ejercicio

De igual manera encontré esta URL con información que de pronto puede servir para más adelante.

https://learn.microsoft.com/es-es/previous-versions/office/troubleshoot/office-developer/select-cells-rangs-with-visual-basic

Feliz día!

En Excel, una subrutina es un procedimiento sin resultado inmediato, a diferencia de una función. Esta subrutina se aplica directamente en la hoja de Excel. Los comentarios en el entorno de Visual Basic ofrecen orientación en el código sin alterar su funcionamiento. Puede crearse una subrutina pública o privada en un módulo, utilizando “Public Sub” para definir su inicio y asignarle un nombre. Las celdas se referencian mediante “Cells(fila, columna)”, numerando filas y columnas, donde “A” es 1, “B” es 2, etc. Mediante “Range(celdaInicial, celdaFinal)”, se pueden llenar rangos con información, incluso especificando letras y números para columnas y filas. La subrutina se ejecuta desde Visual Basic o el libro directamente, a través del botón “play” o F5. También es viable trabajar en hojas diferentes utilizando “Sheets(“nombre”).Select” para indicar dónde se aplicará la subrutina.

En VBA, Cells es una propiedad de los objetos de la hoja de cálculo que te permite acceder y manipular celdas específicas en Excel. La sintaxis básica de Cells es la siguiente:

Cells(Fila, Columna)

Donde:

  • Fila es el número de fila de la celda que deseas acceder.
  • Columna es el número de columna de la celda que deseas acceder.

Puedes utilizar valores numéricos para especificar la fila y la columna, o puedes usar referencias de celda en forma de letras para las columnas (por ejemplo, “A” para la columna A, “B” para la columna B, etc.).

Por ejemplo, para acceder a la celda en la primera fila y la segunda columna, puedes utilizar la siguiente línea de código:

Cells(1, 2)

Además, también puedes utilizar la propiedad Cells junto con otras propiedades y métodos para referenciar rangos de celdas más extensos. Por ejemplo, puedes especificar un rango de celdas utilizando Cells de la siguiente manera:

Range(Cells(FilaInicial, ColumnaInicial), Cells(FilaFinal, ColumnaFinal))

Donde:

  • FilaInicial y ColumnaInicial representan la primera celda del rango.
  • FilaFinal y ColumnaFinal representan la última celda del rango.

Por ejemplo, para seleccionar un rango de celdas desde la celda A1 hasta la celda B3, puedes utilizar el siguiente código:

Range(Cells(1, 1), Cells(3, 2))

Esta es una forma útil de trabajar con múltiples celdas a la vez y realizar operaciones en un rango específico de la hoja de cálculo.

Mi primera subrutina creada por mí

'vamos hacer otra subrutina

Public Sub prueba3()
Cells(5, 5) = "Hoy.."
Cells(6, 5) = "La vida me acaba de cambiar porque aprendí hacer funciones y subrutinas"
Range("E7:F8") = ":D"

End Sub

Hecho: `'Esta es una SubRutina` `Public Sub prueba2()` ` Sheets("EstaHoja").Select` ` Cells(1, 1) = "Hola, Mundo"` ` Range(Cells(2, 2), Cells(3, 3)) = "Probando las Macros"` ` Range("A3:A6") = "Chequeando"` ` Range("D3:F6") = "QA"` `End Sub`
Amazing! ![](https://static.platzi.com/media/user_upload/image-2b2c71d9-8e73-46d9-a1e6-7cf7aef686da.jpg)

El más creativo jajaja

[](

Comparto mi tarea


Todavía sé que falta mucho pero ya estoy sintiendo que puedo crear cosas muy interesantes cuando expliquen como tomar los datos y agregarlos a una tabla .

Ejemplo de cálculo de impuestos.

Intenté realizar lo que sería un formato para registrar datos

Comparto el reto de esta clase:

No sé si estoy haciendo algo mal porque las instrucciones no se presentan en la Hoja 2. Qué podrá ser?![](https://static.platzi.com/media/user_upload/image-ac08ea46-46c1-45fa-b25a-efd377563ab4.jpg)
![](https://static.platzi.com/media/user_upload/image-656ea3b7-7299-4a6d-9f8f-831f78231b06.jpg)![](https://static.platzi.com/media/user_upload/image-faaa739a-8a88-4cc4-a2f5-de812df82946.jpg)
![](https://static.platzi.com/media/user_upload/image-7e06ca3a-52f4-42c0-9ba0-debba007c1be.jpg)
Ejercicio ![](https://static.platzi.com/media/user_upload/image-b7f1aecd-6993-4ea8-b0e5-c68f2b4ba54b.jpg)![](https://static.platzi.com/media/user_upload/image-9bcebde8-abaa-456c-b95d-eb33fafeadd8.jpg)
![](https://static.platzi.com/media/user_upload/image-2cadb2a8-9a42-4d7c-8320-5fdbab9586f2.jpg)![](https://static.platzi.com/media/user_upload/image-f1ae4cb4-c7b7-429a-899d-2cb9363ad9a7.jpg)![](https://static.platzi.com/media/user_upload/image-bd3d1000-a713-4299-b729-1dc298025600.jpg)
![](https://static.platzi.com/media/user_upload/multiplicacion-9bd5d988-728c-487d-aeab-a60c52ef967b.jpg)
![](https://static.platzi.com/media/user_upload/image-65e05c12-288b-42de-99b6-01a767af39c3.jpg)
![](https://static.platzi.com/media/user_upload/%7BEE776E53-634B-4E53-B7E5-0B2B1BEED8C8%7D-e16fe7f0-0a06-4af2-b104-8fb7b45b9e08.jpg)
La función que has escrito, `Prueba`, multiplica un número por 2 y devuelve el resultado. Sin embargo, en tu subrutina `Prueb2`, debes corregir "Prueb2" a "Prueba2" para mantener consistencia en los nombres. Además, para evitar errores, es mejor evitar usar `Select` en VBA. Puedes hacer referencia a las hojas directamente sin seleccionarlas. Aquí tienes la corrección sugerida: ```vba Public Sub Prueba2() Sheets("Hoja2").Cells(1, 1).Value = "Hola mundo" Sheets("Hoja2").Range(Sheets("Hoja2").Cells(2, 2), Sheets("Hoja2").Cells(3, 3)).Value = "daniel" End Sub ``` Esto mantendrá tu código más limpio y eficiente.
Reto: ![](https://static.platzi.com/media/user_upload/image-08131619-16f8-41da-a5a2-ce71035a2cc8.jpg)
Imprimí la ecuación de Alcubierre. ![](https://static.platzi.com/media/user_upload/image-e10cdf98-825b-428a-8414-ac67b4a0622d.jpg)
Hola, no me funciona la línea de sheets y cuando corro el código no hace nada en la segunda hoja, me podrías decir en que estoy fallando por favor?![](https://static.platzi.com/media/user_upload/image-ab41fcd4-863d-415f-838b-dd81f2263c81.jpg)
![](https://static.platzi.com/media/user_upload/image-6706a6b7-1609-4449-a381-fe3657578af6.jpg)
Consejo sano, el usuario siendo el usuario tiende a tocar todo, y por ende podria terminar cambiando el nombre de la hoja, utilizando el metodo de la profesora, todo tu codigo se destruye si se modifica el nombre de la hoja, asi que en lugar de utilizar el nombre visual usa el nombre interno de la hoja: ```txt 'Esta es la forma de la clase Sheets("Hoja1").Select Cells(1,2) = "Hola Mundo" Sheets("Hoja2").Select Cells(1,2) = "Hola Mundo" 'Cambia el nombre "Hoja1", "Hoja2" y veras un error de referencia 'Esta forma de abajo hace lo mismo pero llamando el nombre interno de la hoja de calculo: Sheet1.Select Range("A1:A7") = "Hola Mundo Sin errores" Sheet2.Select Range("A1:A7") = "Hola Mundo Sin errores" 'Asi evitas que tu codigo sufra si se cambia por accidente el nombre ;) ```
La subrutina es un bloque de codigo que realiza una tarea Pero no devuelve un valor
genial siii ![](https://static.platzi.com/media/user_upload/image-effafa83-88c9-45d9-a430-619ac428342d.jpg)
Este es mi código ![](https://static.platzi.com/media/user_upload/imagen-21859484-59bc-4ec8-94ec-94562168a33c.jpg) Y este es el resultado ![](https://static.platzi.com/media/user_upload/imagen-a7a3d8d5-a894-4ca8-b08c-95b81605af16.jpg)
![](https://static.platzi.com/media/user_upload/image-b613c05f-d9a4-496e-9209-a7490ae51b16.jpg)![](https://static.platzi.com/media/user_upload/image-7a62ce41-6c40-4b29-b94c-363825a2f5a9.jpg)
![](https://static.platzi.com/media/user_upload/image-f33be8ac-1b45-4965-b00d-5b8a4e38c578.jpg)
LES DEJO LO QUE HICE ![](https://static.platzi.com/media/user_upload/image-e0b03493-5b01-44fa-9422-a2b7d640b57a.jpg) ![](https://static.platzi.com/media/user_upload/image-33647414-2922-45e2-a5f6-338fbd1a25e7.jpg)
Como adicional, se puede usar la funcion creada dentro de la subrutina![](https://static.platzi.com/media/user_upload/image-5ef9f841-b6f8-406c-8db6-150e0ebbd884.jpg)
![](https://static.platzi.com/media/user_upload/Subrutina%20con%20Macros-f1d54852-aa12-4dfd-ac3e-128fcb388b9c.jpg)
![](https://static.platzi.com/media/user_upload/image-0c72a26e-9434-4c9e-81ad-b89b557ff71d.jpg) ![](https://static.platzi.com/media/user_upload/image-0418845c-eb69-451f-be43-5f76f6736f38.jpg)
![](https://static.platzi.com/media/user_upload/PRUEBA2-66533d7f-75f0-4fc2-b0c2-6d829633037e.jpg) Aqui hay algo que no esta bien
'Vamos hacer una Subrutina Public Sub prueba2() Sheets("Hoja1").Select Cells(1, 1) = "Hola Mundo" Range(Cells(2, 2), Cells(3, 3)) = "Platzi es lo mejor" Range("A3:A5") = 2 \* 3 Range("C10") = "Hola a todos es mi primera macro" Range("B4") = Range("A3") \* 3 End Sub
![](https://static.platzi.com/media/user_upload/image-b60a1214-035e-490f-b2cb-969ffb2295b9.jpg)
Mi avance ![](https://static.platzi.com/media/user_upload/image-23ac516e-211f-4048-bbb2-e6ceaec34663.jpg)
Commenting just for the points, it's also comment
```js Public Sub prueba3() Sheets("Hoja1").Select Range("A1:E5") = "You can do it" End Sub ```Public Sub prueba3() Sheets("Hoja1").Select Range("A1:E5") = "You can do it" End Sub Tu puedes!
![](https://static.platzi.com/media/user_upload/image-da7ce7ef-ab90-4200-a392-07c6c1975a23.jpg) ![](https://static.platzi.com/media/user_upload/image-24ccafa5-bf46-4a93-80e8-ce77c254ccce.jpg)
```python Public Sub anIntrestingMessage() Sheets("Sheet3").Select Range("B2:B10") = "An" Range("C2:C10") = "Intresting" Range("D2:D10") = "Message" End Sub ``` ![](https://static.platzi.com/media/user_upload/image-27baba43-c846-41b1-9032-af933ecbdf91.jpg)
`Public Sub anIntrestingMessage()` ` Sheets("Sheet3").Select` ` Range("B2:B10") = "An"` ` Range("C2:C10") = "Intresting"` ` Range("D2:D10") = "Message"` `End Sub` ![](https://static.platzi.com/media/user_upload/image-4862185a-50a9-4dea-9c7e-2aa23b89b892.jpg)
![](https://static.platzi.com/media/user_upload/image-d9a20976-227f-4549-a4fd-61872180cf00.jpg)
![](https://static.platzi.com/media/user_upload/image-ecb06511-89f1-46d0-84c3-a0fcbff92977.jpg)
Toda mi vida pensaba que para usar Range se tenía que usar como Range("A"\&variable&":B"\&variable2), ahora sé que puedo hacerlo indicando las celdas. No saben cuánto me va a ayudar esto, sufría con esas cosas (y eso que he programado macros que hasta envían correos por outlook seleccionando adjuntos específicos). Pero bueno, uno siempre aprende algo nuevo :)
Buenas tardes, por favor alguien sabe sigo los mismos pasos y me sale un aviso cuando voy a empezar la rutina que dice error de compilación, se esperaba identificador

Mi prueba :

ejercicio ![](https://static.platzi.com/media/user_upload/image-fb485125-93e0-413d-b299-3ad02ffcffce.jpg)
![](https://static.platzi.com/media/user_upload/image-1540473b-fe08-40ce-8876-db306d7612bd.jpg)

Mi ejercicio

Creación de la subrutina:

Resultado:

Public Sub prueba2() 'Prueba de subrutina, las subrutinas no necesitan parametros, ya que haran un ajuste directo en el archivo de excel

    Sheets("Test_Macros").Select 'Para seleccionar la hoja donde quiero que se ejecute la macro
    Cells(1, 1) = "Hola Luis Jaramillo" 'Cells sirve para referenciar una celda dentro de la hoja de excel y se usa como sifuera coordenadas.
    Range(Cells(2, 1), Cells(5, 1)) = "Prueba de rango" ' Este comando sirve para hacer rangos en la hoja de excel.
    Range("A9:A20") = "Prueba de rango 2 con letras" 'Rango con letras

End Sub
Envío mi aporte ![](https://static.platzi.com/media/user_upload/image-09ee5ab1-0a22-4457-8cac-35db839aff70.jpg)

Comparto mi ejercicio, interesante clase

Public Sub prueba2() Sheets("Hoja1").Select Cells(1, 1) = "Annie Martínez" Range(Cells(2, 1), Cells(2, 2)) = "Platzi es lo Mejor" Range(Cells(4, 1), Cells(4, 2)) = "Excelente Curso" Range("B6:B6") = "100%" Range("C6:C6") = "Son lo Mejor" End Sub
![]()Comparto mi ejercicio![](https://static.platzi.com/media/user_upload/reto-93007511-5d7c-476a-a535-7bae62983a33.jpg)

Buen día,

adjunto mi aporte

Public Sub EnhancedPrueba()

    ' Reference the worksheet
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("sheet2")
    
    ' Ask the user for input
    Dim userInput As String
    userInput = InputBox("Please enter a greeting to display:", "Enter Greeting")
    
    ' Check if the user provided input or clicked cancel
    If userInput <> "" Then
        ws.Cells(1, 1).Value = userInput
    Else
        ws.Cells(1, 1).Value = "Hola Mundo"
    End If

    ' Color the cell background and change font color
    ws.Cells(1, 1).Interior.Color = RGB(255, 217, 102) ' Light yellow
    ws.Cells(1, 1).Font.Color = RGB(0, 112, 192) ' Dark blue
    ws.Cells(1, 1).Font.Size = 14
    ws.Cells(1, 1).Font.Bold = True

    ' Adding text to multiple cells and formatting them
    ws.Range(ws.Cells(2, 2), ws.Cells(3, 3)).Value = "Platzi es lo mejor"
    ws.Range(ws.Cells(2, 2), ws.Cells(3, 3)).Font.Italic = True
    ws.Range(ws.Cells(2, 2), ws.Cells(3, 3)).Borders.LineStyle = xlContinuous

    ' Performing a simple calculation and placing the result in multiple cells
    ws.Range("A3:A5").Formula = "=2*3"
    
    ' Auto-fit the columns to content width
    ws.Columns("A:B").AutoFit

End Sub

Excelente herramienta

Comparto mi ejercicio

Superpoderosa herramienta! Magistral Clase!

Hola, esta es la actividad que hice de subrutinas

Public Sub InsertarDatos()

Sheets(“Hoja2”).Select
Cells(1, 1) = "Hola Mundo"
Cells(1, 1).Font.Bold = True
Range(Cells(3, 1), Cells(3, 2)).Merge
Range(Cells(3, 1), Cells(3, 2)) = "Este es un ejercicio interesante"
Range(“A5:C5”).Merge
Range(“A5:C5”) = “Este es un ejercicio interesante x2”

End Sub

Al hacer que dentro de una subrutina se ejecuta una operación aritmética no hace que la subrutina nos arroje un resultado? lo cual contradice su definición que una subrutina no arroja un resultado


Que genial esta el curso.

😃

'we're going  to do a subrutine'
Public Sub prueba2()
    Sheets("prove").Select
    Cells(1, 1) = "Hello world"
    Range(Cells(2, 2), Cells(2, 10)) = "You can do it"
    Range(Cells(3, 3), Cells(10, 3)) = "just do it"
    Range(Cells(4, 4), Cells(5, 5)) = "do it"
    Range("F3:F5") = "excel works it"
    Range("F10:F12") = 8 * 5
    
    Sheets("Hoja1").Select
    Range("A1:R27") = 1
End Sub

Estos son mis resultados, esta genial

Buenas tardes
Les comparto mi codigo:
Public Sub prueba4()
Sheets(“Hoja3”).Select
Range(“a1”) = "Item"
Range(“a2”) = "PN"
Range(“a3”) = "shipped"
Range(“a4”) = "balance"
Range(“a5”) = "date"
Range(“a8”) = "Item"
Range(“b8”) = "PN"
Range(“c8”) = "shipped"
Range(“d8”) = "balance"
Range(“e8”) = “date”

End Sub

Mi sub rutina

Excel es lo mejor

Esto se pone interesante cada vez mas.

Veamos si ven la Referencia en mi Práctica. 👀