Foros


Inicio » Excel

Página: 1

Mensaje Autor

Arriba
07/Jul/22 20:00
Hoja Electronica Mov del mes agrecar hoja electronica mensual (30 Clientes)

1.-Cada mes manualmente realizo esto, para 30 Clientes, informacion del mes , copiarlo al acumulado ( Ventas, Gastosy Nomina)

Tenia tiempo tratanto de realizarlo en 'Macros', pero no funcionaba

La Solucion fue: al estar registrando los pasos del macro , intercambiar entre Macro Absotulo y relativo. (Funsiono) !

2.-Tengo que utilizar este macro para 30 archivos

Solucion salvar este macro en 'Personal.xlsb'

y 'quick AccessToolBar'

Como me ahorro tiempo

le comento esto para pongan a investigar , lo que puedan hacer con Excel

Saludos
 
Perfil

konli
Subteniente

Mensajes: 171
Ingresó: Octubre 11, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
22/Ago/22 11:04
Re: Hoja Electronica Mov del mes agrecar hoja electronica mensual (30 Clientes)

Buen día, Excelente, también trabajo con macros la mayoría de mis reportes, con un poco de investigación e interés podrán realizar su propias macros para agilizar las tareas personalizadas

Por ejemplo
Sub insertacol() 'Inicia la macro
For Each Worksheet In Worksheets 'Para cada hoja en el libro
For i = 3 To 30 'recorre de la tercer coluna hasta la treinta
If Cells(1, i).Value = 'Destajo' Then ' Si el valor de la fila 1, columna (n) es Destajo inicia bucle
Cells(1, i).EntireColumn.Insert ' Entonces inserta una columna completa
Cells(1, i).Value = 'Producto' ' le pone en el encabezado (Fila 1, columna (n)) el nombre
i = i + 1 'como agrega una columna, sumamos una en el conteo
End If ' termina la condición si
Next ' pasa a la siguiente columna
Next Worksheet 'Pasa a la siguiente hoja, después del bucle
End Sub 'Termina la macro



Saludos
 
«Antes que cambien los reinos, los hombres deberán cambiar» ═╬═
 
Perfil

ByPaco
Teniente Coronel

Mensajes: 2132
Ingresó: Junio 05, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
06/Jun/23 12:01
Re: Hoja Electronica Mov del mes agrecar hoja electronica mensual (30 Clientes)

Buen día
Para los que tiene la versión más reciente del Excel, tienen una función para extraer los valores únicos del rango seleccionado, la función es =UNICOS('Rango'), para los que no la tiene esta macro realiza esa función, espero les sirva
Sub ListaUnicos()
'Bypaco
'Extrae y crea un listado de datos únicos
Dim uf, Rng, unicos, Celda, I
On Error Resume Next
Application.Calculation = xlCalculationManual
' Cuenta los datos en cadena de la columna A
uf = Cells(Rows.Count, 'A').End(xlUp).Row
' Crea el rango de datos, de la Celda A3 hacia la última con datos de A
Rng = 'A3:A' & uf
'Crea una colección de datos
Set unicos = New Collection
'Recorre cada celda y lée el dato
For Each Celda In Range(Rng)
' Si el dato ya existe, pasará al siguiente
On Error Resume Next
' Si el dato no existe, lo agrega a la colección
unicos.Add Celda.Value, CStr(Celda.Value)
On Error GoTo 0
Next Celda
' Limpia el area donde se pegará la lista
[Z3].CurrentRegion.ClearContents
' Pega cada valor de la colección
For I = 1 To unicos.Count
[Z3].Offset(I - 1, 0).Value = unicos(I)
Next I
Application.Calculation = xlCalculationAutomatic
End Sub

Saludos
 
«Antes que cambien los reinos, los hombres deberán cambiar» ═╬═
 
Perfil

ByPaco
Teniente Coronel

Mensajes: 2132
Ingresó: Junio 05, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
01/Ago/23 14:17
Re: Hoja Electronica Mov del mes agrecar hoja electronica mensual (30 Clientes)

Buen día, también se pueden crear y guardar funciones personalizada, por ejemplo

para validar el dígito verificador de un NSS
Function dvNSS2(numero As String)
Dim i, J, k As Integer ' Definimos variables como Enteros(valores de -32768 a 32767)
Dim dig As String ' Definimos variable como Texto(almacena valores de cadenas de texto)
For i = 1 To 10 ' se crea un bucle del caracter 1 hasta el carater 10
k = Val(Mid(numero, i, 1)) ' asigna a 'k' con el valor del caracter
If (i Mod 2) = 0 Then ' si el residuo del caracter es cero, entonces...
k = k * 2 ' asigna a 'k' con el valor de 'k' por dos
If k > 9 Then ' pero si el valor de 'k' resulta mayor que 9
k = k - 9 ' entonces se le resta nueve para obtener un solo dígito
End If ' si el residuo de 'k' no es cero toma el valor de 'k'
End If
J = J + k ' va sumando todos los valores obtenidos de 'k'
Next i ' pasa al siguiente carater
dig = Application.RoundUp(J, -1) - J ' A la suma se resta la decena superior siguiente
dvNSS2 = Mid(numero, 1, 10) & dig ' Reemplaza el dato de la celda con el NSS más el dígito obtenido
End Function


Se usaría como las funciones de Excel

=dvNSS2(Celda)

Saludos


Editado: Agosto 01, 2023 14:18:44
 
«Antes que cambien los reinos, los hombres deberán cambiar» ═╬═
 
Perfil

ByPaco
Teniente Coronel

Mensajes: 2132
Ingresó: Junio 05, 2004
Ubicación:

Conectado

Agregar como amigo

Arriba
01/Ago/23 14:59
Re: Hoja Electronica Mov del mes agrecar hoja electronica mensual (30 Clientes)

y a poco más de un año no hubo retroalimentación
 
'Quienes se creen extremadamente inteligentes son tontos con complejos reprimidos'. Claudia Cardinale
 
Perfil

CP_PACO
General Brigadier

Mensajes: 14518
Ingresó: Marzo 10, 2005
Ubicación:

Conectado

Agregar como amigo


Página: 1