Curso Macros en Excel – Cap. 81 – Agenda telefónica desde cero PARTE 4

<<CURSO COMPLETO EN YOUTUBE>>

En este capítulo daremos seguimiento a nuestro Proyecto de Agenda telefónica desde cero usando macros y VBA en Excel. En esta cuarta entrega vamos a programar el botón Guardar para dar de alta los valores en nuestra hoja Base. Además de cambiarle el nombre a todos los controles, con el objetivo de usar un Ciclo FOR NEXT para optimizar el alta de valores.

Ver video Capítulo 81 Excel VBA & Macros

Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.

Avance del Proyecto

Como lo has notado, este es el tercer video del Proyecto de nuestra agenda telefónica, pero el número 80 de nuestro curso de macros. A continuación enlisto lo que ya hemos hecho y lo que haremos en este capítulo.

Etiqueta Ruta imagen

Al elegir una nueva imagen, vamos a reflejar la ruta completa en una nueva Etiqueta (Label), para luego darla de alta en la hoja BASE.

Etiqueta para reflejar la ruta de la imagen elegida.

Figura 1. Etiqueta para reflejar la ruta de la imagen elegida.

Cambio de nombre a Controles

Con el fin de optimizar nuestro código VBA, tenemos que cambiarle el nombre a los Controles del Formulario. Haremos el cambio de nombre a los TextBox y Combobox, y todos tendrán el prefijo “Valor”. Tenemos 16 controles que irán de “valor1” a “valor16”.

Al tener todos los controles un prefijo estático, podremos usar el Ciclo For Next para recorrer todos y así sea más óptimo guardar los valores en la hoja BASE.

Cambio de nombre a los Controles para optimizar la carga de valores con FOR NEXT.

Figura 2. Cambio de nombre a los Controles para optimizar la carga de valores con FOR NEXT.

Botón GUARDAR

Una vez que hicimos los cambios anteriores, ya estamos listos para programar el botón GUARDAR, el cual nos servirá para dar de alta los valores capturados en la hoja BASE. Fíjate muy bien cómo trabajamos el tema del ID, ya que ese valor los ayudará cuando realicemos el Formulario de BUSCAR. También toma nota de cómo usamos el Ciclo For Next para recorrer todos los controles del Formulario usando la Colección Controls y tomando el prefijo “valor”.

SNAGHTMLe2fb27a

Figura 3. Alta de valores en hoja BASE programando el botón GUARDAR.

Código VBA del botón GUARDAR

'EXCELeINFO
'MVP Sergio Alejandro Campos
'http://www.exceleinfo.com
'https://www.youtube.com/user/sergioacamposh
'http://blogs.itpro.es/exceleinfo

Private Sub CommandButton1_Click()
Dim HojaBase As Worksheet
Dim Rango As Range
Dim NuevaFila As Integer
Dim NuevoID As Integer
Dim i As Integer

Set HojaBase = ThisWorkbook.Sheets("Base")
Set Rango = HojaBase.Range("A1").CurrentRegion
NuevaFila = Rango.Rows.Count + 1

If Rango.Rows.Count = 1 Then
    NuevoID = 1
Else
    NuevoID = HojaBase.Cells(NuevaFila - 1, 1) + 1
End If

With HojaBase
    .Cells(NuevaFila, 1).Value = NuevoID
    For i = 1 To 16
        .Cells(NuevaFila, i + 1).Value = Me.Controls("valor" & i).Value
    Next i
    .Cells(NuevaFila, 18).Value = Me.LabelRuta.Caption
End With

End Sub

Descargar el archivo de ejemplo

081 – Proyecto Agenda 04 – Programando botón Alta – Guardar – EXCELeINFO.zip

<<CURSO COMPLETO EN YOUTUBE>>

Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.

You may also like...

2 Responses

  1. Julio Cesar says:

    Amigo sergio, muy bueno su proyecto, pero tengo un error que no e podido solucionar, todo funciona bien pero cuando doy a GUARDAR se presenta el siguiente anuncio.SEA PRODUCIDO EL ERROR 2147024809(80070057) EN EL TIEMPO DE EJECUCIÓN
    NO SE ENCUENTRA EL OBJETO ESPECIFICADO
    Puede informar como lo corrijo?. Mil gracias por lo que Ud me pueda ayudar
    .

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: