Recorre columna A y copia datos en Columna B





En este post voy a mostrar distintas maneras una forma de recorrer las filas de una hoja de Excel e ir copiando los datos en otra columna, anteriormente se presentó un ejemplo parecido que fue titulado recorre fila, busca dato y copia; el cual es bastante interesante y sugiero que sea leído si estás interesado en crear una macro que recorra filas busque datos y copie.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  

Al final hay un link del cual podrás descargar el ejemplo y adaptarlo a lo que se requieras, el código se encuentra abierto y sin ningún tipo de restricción; el ejemplo exactamente lo que realiza es recorrer la fila A y copiar los datos en la Columna B en caso que está última esté vacía.

Se ha expuesto en varios ejemplos como determina la última fila con datos; esto es lo que se hace en primer lugar, posteriormente  se crea una variable en este caso "d" la cual es igual a los valores de la fila respectiva de la columna A, posteriormente se hace un bucle para recorrer las filas, determinando si la fila correspondiente de la Columna B está vacía en ese caso copia en esa celda el valor de la celda de la columna A y que estaba agregada en la variable "d"; el ejemplo tiene por objetivo enseñar como hacer un bucle para recorrer las cada fila hasta la última celda con datos, pudiéndose adaptarlo para que recorra las filas y realice el procedimiento que queramos.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.




Código que se inserta en un módulo





Sub rellenacel()
Dim fila, uf As Integer
fila = 2
b = ActiveSheet.Name
uf = Sheets(b).Range("A" & Rows.Count).End(xlUp).Row
While Sheets(b).Cells(fila, 1) <> Empty
d = Sheets(b).Cells(fila, 1)
If Sheets(b).Cells(fila, 2) = Empty Then
Sheets(b).Cells(fila, 2) = d
End If
fila = fila + 1
Wend
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como utilizar WorksheetFunction SumIfs o Sumar Si Conjunto






En este post WorksheetFunction funciones de Excel en VBA se dijo que WorksheetFunction tiene por objeto ejecutar casi todas las funciones que trae incorporadas Excel, es decir se puede agregar en una macro y echar manos a estas funciones, luego se expuso un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA, en el post como se usa la función o WorksheetFunction SumIf o SumarSi se expuso un ejemplo sobre como utilizar dicha función en una macro, ahora voy a mostrar como se utiliza la función SumIfs o SumarSi.Conjunto, la diferencia entre las SumIf y SumIfs o SumarSi y SumarSi.Conjunto, radica en que, con la primer función se pueden utilizar varios criterios, hasta 30; en cambio con la última función solo sirve para un solo criterio a la vez; en Funciones de Excel descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  

La función SumIfs permite sumar las celdas de un rango que cumplen uno o varios criterios especificados, permitiendo la función sumar utilizando un máximo de 30 criterios; la sintaxis es la siguiente:

WorksheetFunction.SumIfs(Arg1, Arg2, Crit2, Arg3, Crit3, Arg4, Crit4,........., Arg30, Crit30)

El significado de los parámetros son:

Arg1, es un dato obligatorio, representa el rango que se desea sumar.

Arg2 a Arg30, dato obligatorio que indica el rango que se debe analizar o evaluar, recordemos que se pueden usar hasta treinta argumentos o rangos.

Crit2 a Crit30, también es un dato obligatorio y establece cual es el criterio o criterios en forma de número, expresión o texto, que determinan las celdas que se deben sumar, los criterios se pueden expresar como 12, "12", "<12" o "palmeras". En los criterios se pueden usar caracteres comodín (?) y (*); donde el "?" corresponde a un solo caracter y el "*" a una cadena de caracteres, si lo que se desea buscar es (?) o (*) se debe escribir un tilde (~) antes del caracter.

El ejemplo de macro de VBA que se presenta, tiene como fin enseñar como se usa la WorksheetFunction SumIfs o Sumar Si Conjunto; en este ejemplo se deben evaluar dos criterios a la vez para determinar que celdas sumar; en primer lugar establece cual es la última fila con datos, en esa fila y columna A se va a colocar el resultado; luego en la macro se coloca el código que va a determinar que celdas sumar y cuales no y que es el siguiente: Application.WorksheetFunction.SumIfs(Range("A2" & ":A" & uf - 1), Range("B2" & ":B" & uf - 1), "> 0", Range("C2" & ":C" & uf - 1), "> 0"); como vemos en la codificación del ejemplo, el valor determinado es ingresado en la celda determinada por la columna A y la última fila con datos determinada mediante la variable "uf".

Analizando la función veremos que Range("A2" & ":A" & uf - 1), es el rango que se desea sumar; luego Range("B2" & ":B" & uf - 1), es el primer criterio de búsqueda; luego se agrega el primer criterio que se va a usar para evaluar el rango del primer criterio, "> 0"; posteriormente se establece el segundo rango a analizar, Range("C2" & ":C" & uf - 1) y seguidamente el segundo criterio del ejemplo, recordemos que se pueden ingresar hasta 30 criterios, en este caso también se debe evaluar que sea mayo a cero, "> 0".

Posteriormente aparece un Msgbox, si quieres aprender sobre como crear msgbox click en el link; en el Msgbox se establece que aparezca un mensaje avisando a cuanto asciende la suma según los criterios datos, con el detalle que aparece con un formato numérico con separador de miles, es decir "626.004,75".

El ejemplo de macro que utiliza WorksheetFunction SumIfs se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Macro" y se ejecuta la suma con las dos condiciones señaladas anteriormente, si se desea seguir probando la macro basta con modificar los datos y se la macro calculará nuevamente la suma condicional.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.





Código que se inserta en un userform






Sub SumIfs()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf, "A") = Application.WorksheetFunction.SumIfs(Range("A2" & ":A" & uf - 1), Range("B2" & ":B" & uf - 1), "> 0", Range("C2" & ":C" & uf - 1), "> 0")
Cells(uf, "A").NumberFormat = "#,##0.00"
MsgBox ("Las ventas suman " & Format(Cells(uf, "A"), "#,##0.00")), vbInformation, "AVISO"
DisplayAlerts = True
Application.ScreenUpdating = True
End Sub




Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como utilizar la WorksheetFunction SumIf





En este post WorksheetFunction funciones de Excel en VBA se dijo que WorksheetFunction tiene por objeto ejecutar casi todas las funciones que trae incorporadas Excel, es decir se puede agregar en una macro y echar manos a estas funciones, luego se expuso un listado de todas las funciones de Excel que se pueden ejecutar desde una macro de VBA, en el ejemplo que se presenta en el post actual te voy a mostrar como se usa la función o WorksheetFunction SumIf o SumarSi, en WorksheetFunction SumIfs o SumarSi.Conjunto encontrarás como se usa esta función que tiene como diferencia que se pueden utilizar varios criterios de suma a la vez; en Funciones de Excel, descripción y traducción al inglés y otros idiomas, encontrarás listadas y con una breve explicación sobre que realiza cada una de las funciones de Excel; en Función Si se presenta un tutorial sobre el uso de esta función en Excel.

SumIf permite sumar las celdas de un rango que cumplen un criterio especificado la sintaxis es la siguiente:

WorksheetFunction.SumIf(Arg1,Arg2,Arg3)

El significado de los parámetros son:

Arg1, es un dato obligatorio, siendo el rango de celdas que se deben evaluar según los criterios especificados.

Arg2, es un dato también obligatorio, se refiere a los criterios en forma de número, expresión o texto, que determinan las celdas que se deben sumar, los criterios se pueden expresar como 12, "12", "<12" o "palmeras". En los criterios se pueden usar caracteres comodín (?) y (*); donde el "?" corresponde a un solo caracter y el "*" a una cadena de caracteres, si lo que se desea buscar es (?) o (*) se debe escribir un tilde (~) antes del caracter.

Arg3, es un dato opcional, representa las celdas que se deben sumar si se cumple los criterios de las celdas correspondientes del rango del Arg1, si se omite el dato, las celdas del Arg1 se evaluarán según los criterios datos y se sumarán si se cumplen los mismos.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  

Específicamente en el ejemplo, que podrás descargar desde el link del final, se suma el rango de la columna A, que es determinado automáticamente, evalúa la columna B, si el dato de la celda es ">2000" entonces suma la celda correspondiente de la columna A, la suma es colocada al final de la columna A.

Para sumar el código necesario es Application.WorksheetFunction.SumIf(Range("B2" & ":B" & uf - 1), "> 2000", Range("A2" & ":A" & uf - 1)) el Argumento 1 "Range("B2" & ":B" & uf - 1)" es el rango que se debe evaluar, luego se debe determinar el criterio  "> 2000"; por último se coloca el rango que se desea sumar si se cumple el criterio, "Range("A2" & ":A" & uf - 1)".

Se debe notar que el rango se arma en forma automática con "Range("B2" & ":B" & uf)", se utiliza el método Range concatenando la columna y la última fila con datos, lo mismo se hace con el rango que se debe sumar.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.





Código que se inserta en un userform





Sub SumIf()
Application.ScreenUpdating = False
'On Error Resume Next
DisplayAlerts = False
Dim uf As String
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Cells(uf + 1, "A") = Application.WorksheetFunction.SumIf(Range("B2" & ":B" & uf - 1), "> 2000", Range("A2" & ":A" & uf - 1))
DisplayAlerts = True
Application.ScreenUpdating = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Macro oculta fila según criterio






Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  


En el archivo que podrás descargar desde el final, se muestra una sencilla macro de Excel, pero no por ello deja de ser útil, consiste en como ocultar filas según un criterio dado, anteriormente se mostró como eliminar celdas, filas y columnas;  como insertar celdas, como insertar columnas siendo otras entradas que pueden ser de gran utilidad.

La macro en primer lugar determina cual es la última celda con datos con ello arma un rango variable; obtenido el rango se selecciona el mismo y se realiza un bucle para que se recorran todas las celdas del rango; en caso que la celda contenga el texto "No rows to display", la fila se oculta. 

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.





Desde el final podrás descargar el ejemplo.


Código que se inserta en un módulo





Sub ocultafila()
Cells.EntireRow.Hidden = False
pfsp = 2
ufsp = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row

r = "B" & pfsp & ":" & "B" & ufsp

ActiveSheet.Range(r).Select
  For Each cell In Selection

       If cell = "No rows to display" Then
       cell.EntireRow.Hidden = True
       End If
  Next cell
End Sub






Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends      

Como crear libro, agregar hojas con macro





Seguramente muchas veces al crear una macro se nos ha planteado la necesidad de crear un libro con macro, agregarle hojas guardarlo, en fin manipular un nuevo libro con macro de VBA, bien este ejemplo responde a preguntas sobre como crear un nuevo libro con macro, como guardar un libro, como agregar hojas, como recorrer las hojas y eliminarlas si no tienen determinado nombre, abre libros y hace resumen si bien no crea un libro está bastante relacionado con el post y quizás pueda ser de utilidad.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  

Al finalizar el post encontrarás un link para descargar el ejemplo y adaptarlo a tus necesidades, el código se encuentra abierto y sin ningún tipo de restricción, el ejemplo de macro de VBA básicamente crea un libro nuevo, esto se logra con el comando "Workbooks.Add"; lo guarda con un determinado nombre a través de "ActiveWorkbook.SaveAs Filename:=lnvo" luego agrega dos hojas al final de las hojas que trae por defecto un libro nuevo nombrándolas como "DayraSol" la primera y "Tomy" la segunda, luego de ello recorre todas las hojas en caso de el nombre de la hoja ser distinto alguno de los dos nombres mencionados procede a eliminar la hoja; finalmente cierra el libro de Excel, pero previamente lo guarda.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.




Código que se inserta en un módulo




Sub NvoLibro()
Dim mybook, mybook1, ruta, lnvo As String
Dim she As Worksheet
Dim cwb As Workbook
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
mybook = ActiveWorkbook.Name
ruta = ActiveWorkbook.Path
mybook1 = "DayraSolTomy.xlsx"
lnvo = ruta & "\" & mybook1


For Each cwb In Workbooks
If cwb.Name <> ThisWorkbook.Name Then
   cwb.Close savechanges:=False
End If
Next cwb

Workbooks.Add
ActiveWorkbook.SaveAs Filename:=lnvo
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "DayraSol"
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Tomy"

For Each she In Worksheets
a = she.Name
If a <> "DayraSol" And a <> "Tomy" Then she.Delete
Next

MsgBox ("El libro se ha creado con éxito"), vbInformation, "AVISO"
ActiveWorkbook.Close True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends