La adapte a mi formato y funcionó, ojo, deberías hacer uno de ejemplo pero digamos que lo usa una empresa y de bajo de la tabla donde lo toma, des límites, ya que yo no conozco macro pero por la forma de la macro entendí que toma todo lo de abajo, hasta que aparezca vacío en lugar de un rango de la tabla que ya habías hecho, luego haré yo un vídeo, pero en el tuyo imagina que abajo de la tabla hay un texto estático que debe de firmar alguna persona o poner una fecha, yo ya lo hice pero pues le agregare algo adicional a la hoja 1 para que no me borre unas fórmulas que hice, pero a si está excelente entendí tu explicación, fue laborioso ya que ví otros tuyos pero no me sirvieron ni con chat gpt, y tu VIDEO ME AYUDO MUCHO gracias
Hola, Requiero una asesoría personalizada para realizar una macro y usted cuenta con el conocimiento que yo necesito. Por favor dígame cómo podemos comunicarnos para discutir el costo de su asesoría. Escribo desde México.
Hola, tendrías que volverlo a seleccionar, pero en un sistema de ventas el registro de la cabecera siempre es único, y es registro uno se debería registrar solo una ves
Ante todo. Muchísimas gracias por tu trabajo. A mí me está ayudando mucho. PERO…. Tengo este problemilla: ( WsD.Cells(Ultfila, 8).Value = WsF.Cells("n, 1").Value) me da error y aparece en amarillo En mi hoja “Listado Albaranes” Que en tu caso es “BaseDatos”. Tengo 11 columnas, para rellenar, en la fila 2. Desde la celda A2 hasta la A7. Me las rellena bien, pero desde la A8 hasta la A11. NO ME RELLENA NADA En mi hoja “Albaranes” Que en tu caso es “Formulario” Tengo la cabecera: Nº Registro (A5), Albarán (C4), Fecha Albarán (C5), Factura (C6), Fecha Factura (C7), Proveedor (C8), y Estado (A7). ESTAS ME LAS GUARDA BIEN ¿Cuál puede ser el problema? ¿En que he fallado? ¿Cómo lo puedo solucionar? ------------------------------------------------------------------------------------------------------------------------ Option Explicit Sub NewNum() Dim WsD As Worksheet Dim WsF As Worksheet Dim Ultfila As Long Dim MyArray As Variant Set WsD = Worksheets("Listado Albaranes") Set WsF = Worksheets("Albaranes") Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row If Ultfila > 1 Then MyArray = WsD.Range("A2:A" & Ultfila) WsF.Range("A5").Value = Application.WorksheetFunction.Max(MyArray) + 1 Else WsF.Range("A5").Value = 1 End If
End Sub Sub Ingresa_Datos() Dim WsD As Worksheet Dim WsF As Worksheet Dim Ultfila, n As Long Set WsD = Worksheets("Listado Albaranes") Set WsF = Worksheets("Albaranes")
If WsF.Range("A5").Value = Empty Or WsF.Range("C4").Value = Empty Or WsF.Range("C5").Value = Empty _ Or WsF.Range("C6").Value = Empty Or WsF.Range("C7").Value = Empty Or WsF.Range("C8").Value = Empty _ Or WsF.Range("A7").Value = Empty Then
MsgBox ("Falta Ingresar Datos"), vbInformation, "Excel-VBA" Exit Sub End If
Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row + 1 n = 12
Muchas Gracias. Que fallo mas tonto he tenido. Mira que no me he dado cuenta del fallo, y eso que llevo varias horas en ello. pero gracias a ti ya lo tengo arreglado. ahora voy a por la macro limpiar datos de formulario y tabla. Un saludo
hola utilice tu método y me funciono a la perfección, pero tengo una novedad al momento de guardar, como la tabla esta en blanco al momento de guardar me queda fuera de la tabla porque en el código se esta indicando (Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row + 1 ) que busque la ultima fila y sume una pero esta el encabezado de la tabla me lo esta tomando como la ultima fila y me suma una
Hola Primero crea esta función.... *********************************************** Public Function NuevaFila_02(Ws As Worksheet, NombreTabla As String) As Long Dim Tbl As ListObject Set Tbl = Ws.ListObjects(NombreTabla) NuevaFila = Tbl.ListColumns(1).Range.Rows.Count + 1 ' Si la tabla esta vacia, NuevaFila debera ser 2 If NuevaFila = 3 Then NuevaFila = 2 End If End Function ********************************************* luego usala asi Ultfila =NuevaFila_02(ws,"TuTabla") ********************************************** pasa que (Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row + 1 ) esto funciona cuando no es tabla cuando use una tabla usa la otra manera
Hola. Tengo un archivo de PROVEEDOR con los campos CODIGO, DESCRIPCION Y PRECIO en Hoja1 y quiero actualizarlos con la lista de precios NUEVA que copio en hoja 2. Quisiera una Macro que compare los CODIGOS: Si existe que reemplace el precio y sino que lo AGREGUE. He intentado crearla pero estoy estancado. Desde ya muchas gracias
utiliza un ciclo for u otro anidado y primero actualiza los precios y en la hoja de pecios nuevos que se marque en una columna los códigos nuevos para luego copiarlos en la otra hoja
holaa, muy buen video, estoy creando un punto de venta solo que de la hoja de venta quiero guardar a una hoja en el mismo libro como base de datos y que se vaya guardando por el numero de la factura y la fecha, ya le intente con este video pero al parecer no me sale, abra alguna manera de que me puedas apoyar explicando en un video o por aquí, por favor, saludos!
Muchas gracias después de millón de tutoriales este fué el único que me ayudó
La adapte a mi formato y funcionó, ojo, deberías hacer uno de ejemplo pero digamos que lo usa una empresa y de bajo de la tabla donde lo toma, des límites, ya que yo no conozco macro pero por la forma de la macro entendí que toma todo lo de abajo, hasta que aparezca vacío en lugar de un rango de la tabla que ya habías hecho, luego haré yo un vídeo, pero en el tuyo imagina que abajo de la tabla hay un texto estático que debe de firmar alguna persona o poner una fecha, yo ya lo hice pero pues le agregare algo adicional a la hoja 1 para que no me borre unas fórmulas que hice, pero a si está excelente entendí tu explicación, fue laborioso ya que ví otros tuyos pero no me sirvieron ni con chat gpt, y tu VIDEO ME AYUDO MUCHO gracias
Excelente explicacion 10/10, Gracias
Hola, me gusto mucho, ahora puedes hacer uno para modificar esos datos
Hola,
Requiero una asesoría personalizada para realizar una macro y usted cuenta con el conocimiento que yo necesito. Por favor dígame cómo podemos comunicarnos para discutir el costo de su asesoría. Escribo desde México.
Hola! Se pueden crear varias hojas con la macro y que se guarden en la base?
@@bekifel4722 si, al final los datos se almacenan en una sola hoja, siempre y cuando esa sea tu intención
Exclente. Mi consulta es: Como puedo volver a 1 el campo "NUMERO" al siguiente dia. Aplique este metodo a un registro de ventas.
Hola, tendrías que volverlo a seleccionar, pero en un sistema de ventas el registro de la cabecera siempre es único, y es registro uno se debería registrar solo una ves
Hola, profe.
¿Usted tiene algun curso de VBA desde cero? Estoy muy interesado en todo lo que enseña
no tengo, pero lo puedo preparar desde donde se comunica ud?
Saludos, se puede utilizar esta macro con una base de datos ilimitada?
@@jeannineangulo663 podrías mejor usar sql para almacenar más datos , excel ya cuando esta muy cargado se pone lento
Ante todo. Muchísimas gracias por tu trabajo. A mí me está ayudando mucho.
PERO….
Tengo este problemilla: ( WsD.Cells(Ultfila, 8).Value = WsF.Cells("n, 1").Value) me da error y aparece en amarillo
En mi hoja “Listado Albaranes” Que en tu caso es “BaseDatos”. Tengo 11 columnas, para rellenar, en la fila 2. Desde la celda A2 hasta la A7. Me las rellena bien, pero desde la A8 hasta la A11. NO ME RELLENA NADA
En mi hoja “Albaranes” Que en tu caso es “Formulario” Tengo la cabecera: Nº Registro (A5), Albarán (C4), Fecha Albarán (C5), Factura (C6), Fecha Factura (C7), Proveedor (C8), y Estado (A7). ESTAS ME LAS GUARDA BIEN
¿Cuál puede ser el problema? ¿En que he fallado? ¿Cómo lo puedo solucionar?
------------------------------------------------------------------------------------------------------------------------
Option Explicit
Sub NewNum()
Dim WsD As Worksheet
Dim WsF As Worksheet
Dim Ultfila As Long
Dim MyArray As Variant
Set WsD = Worksheets("Listado Albaranes")
Set WsF = Worksheets("Albaranes")
Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row
If Ultfila > 1 Then
MyArray = WsD.Range("A2:A" & Ultfila)
WsF.Range("A5").Value = Application.WorksheetFunction.Max(MyArray) + 1
Else
WsF.Range("A5").Value = 1
End If
End Sub
Sub Ingresa_Datos()
Dim WsD As Worksheet
Dim WsF As Worksheet
Dim Ultfila, n As Long
Set WsD = Worksheets("Listado Albaranes")
Set WsF = Worksheets("Albaranes")
If WsF.Range("A5").Value = Empty Or WsF.Range("C4").Value = Empty Or WsF.Range("C5").Value = Empty _
Or WsF.Range("C6").Value = Empty Or WsF.Range("C7").Value = Empty Or WsF.Range("C8").Value = Empty _
Or WsF.Range("A7").Value = Empty Then
MsgBox ("Falta Ingresar Datos"), vbInformation, "Excel-VBA"
Exit Sub
End If
Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row + 1
n = 12
Do While Not IsEmpty(WsF.Range("A" & n))
WsD.Cells(Ultfila, 1).Value = WsF.Range("A5").Value
WsD.Cells(Ultfila, 2).Value = WsF.Range("C4").Value
WsD.Cells(Ultfila, 3).Value = WsF.Range("C5").Value
WsD.Cells(Ultfila, 4).Value = WsF.Range("C6").Value
WsD.Cells(Ultfila, 5).Value = WsF.Range("C7").Value
WsD.Cells(Ultfila, 6).Value = WsF.Range("C8").Value
WsD.Cells(Ultfila, 7).Value = WsF.Range("A7").Value
WsD.Cells(Ultfila, 8).Value = WsF.Cells("n, 1").Value
WsD.Cells(Ultfila, 9).Value = WsF.Cells("n, 3").Value
WsD.Cells(Ultfila, 10).Value = WsF.Cells("n, 6").Value
WsD.Cells(Ultfila, 11).Value = WsF.Cells("n, 8").Value
Ultfila = Ultfila + 1
n = n + 1
Loop
'Limpiar Datos
WsF.Range("A5").Value = ""
WsF.Range("C4").Value = ""
WsF.Range("C5").Value = ""
WsF.Range("C6").Value = ""
WsF.Range("C8").Value = ""
WsF.Range("C7").Value = ""
WsF.Range("A7").Value = ""
Ultfila = WsF.Cells(Rows.Count, 2).End(xlUp).Row
If Ultfila > 11 Then
WsF.Range("A12:H" & Ultfila).ClearContents
End If
'Nuevo Numero
Call NewNum
MsgBox ("Datos Guardados con exito"), vbInformation, "Excel-VBA"
End Sub
@@AgraUrcelay-fz1oi ws.cells(n,1) sin comillas
Muchas Gracias. Que fallo mas tonto he tenido. Mira que no me he dado cuenta del fallo, y eso que llevo varias horas en ello. pero gracias a ti ya lo tengo arreglado. ahora voy a por la macro limpiar datos de formulario y tabla. Un saludo
Excelente como seria para que no se repita la cabecera
has referencia a otras celdas
hola utilice tu método y me funciono a la perfección, pero tengo una novedad al momento de guardar, como la tabla esta en blanco al momento de guardar me queda fuera de la tabla porque en el código se esta indicando (Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row + 1 ) que busque la ultima fila y sume una pero esta el encabezado de la tabla me lo esta tomando como la ultima fila y me suma una
Hola Primero crea esta función....
***********************************************
Public Function NuevaFila_02(Ws As Worksheet, NombreTabla As String) As Long
Dim Tbl As ListObject
Set Tbl = Ws.ListObjects(NombreTabla)
NuevaFila = Tbl.ListColumns(1).Range.Rows.Count + 1
' Si la tabla esta vacia, NuevaFila debera ser 2
If NuevaFila = 3 Then
NuevaFila = 2
End If
End Function
*********************************************
luego usala asi
Ultfila =NuevaFila_02(ws,"TuTabla")
**********************************************
pasa que (Ultfila = WsD.Cells(Rows.Count, 1).End(xlUp).Row + 1 ) esto funciona cuando no es tabla cuando use una tabla usa la otra manera
Hola. Tengo un archivo de PROVEEDOR con los campos CODIGO, DESCRIPCION Y PRECIO en Hoja1 y quiero actualizarlos con la lista de precios NUEVA que copio en hoja 2. Quisiera una Macro que compare los CODIGOS: Si existe que reemplace el precio y sino que lo AGREGUE. He intentado crearla pero estoy estancado. Desde ya muchas gracias
utiliza un ciclo for u otro anidado y primero actualiza los precios y en la hoja de pecios nuevos que se marque en una columna los códigos nuevos para luego copiarlos en la otra hoja
holaa, muy buen video, estoy creando un punto de venta solo que de la hoja de venta quiero guardar a una hoja en el mismo libro como base de datos y que se vaya guardando por el numero de la factura y la fecha, ya le intente con este video pero al parecer no me sale, abra alguna manera de que me puedas apoyar explicando en un video o por aquí, por favor, saludos!
@@CyberCyber-di1sh escríbeme a dennismendoza33@gmail.com
@@ExcelVBADMendoza ya te mande mensaje amigo, saludos!
Hola, se puede tener acceso al archivo, el link adjunto no abre.
dennismendoza33@gmail.com
No me resulta no me reconoce el Sub NewNum()
pasme tu codigo