Saltar al contenido

Problema con nombres


Recommended Posts

publicado

Que tal Expertos tengo un problema con un archivo en el cual después de usar una macro queda como la columna B quisiera saber si hay la posibilidad que pueda quedar como la columna C y ordenada si esposible espero su ayuda ya que se que ustedes son de gran conocimiento

les adjunto el archivo

Gracias

Nombres.zip

publicado

Utilizo otra macro que identifica los espacios en blanco y pasa a los vendedores a la columna b debería copiarse cómo sale en la columna c pero la macro lo deja como en la colmna b en otras palabras quisisera una macro que copie el nombre de ese vendedor hasta la parte donde muestra el otro vendedor y se repita el proceso hasta la cantidad de datos en la columna a

publicado

Hola @[uSER=161327]Bcordero[/uSER].

Coloca este código en un módulo VBA:

Sub RellenaBlancos()
Dim Rango As Range

Set Rango = Range("A2", Range("A" & Rows.Count).End(xlUp))

With Rango.Offset(, 1)
.SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
.Value = .Value
End With

Set Rango = Nothing
End Sub[/PHP]

Comentas!

Espero haberte ayudado, Dios te bendiga!

publicado

Consulta adicional:

pero si en caso fuera, que en una celda este una formula y quisiera copiar esa misma formula para todas las celdas segun los datos que tenga la columna anterior, en otras palabras como el archivo de nombres pero en vez de que sean nombres sea esa formula..

podrian ayudarme

publicado

Armando que tal habrá una manera de poder poner esa formula que tengo agregarla dentro de una macro para que automáticamente la poner sin necesidad de tener que estar copiando y arrastrando hasta la cantidad de datos que tengo te adjunto el archivo

Semana.zip

publicado

Puedes hacerlo sin copier ni arrastrar, algunas opciones:

1. Con la formula en B2, doble clic

2. Escribir en la caja de nombres: B2:B1410, insertar formula con Control+Enter

3. Un codigo como este:

Sub actual()
[C2].CurrentRegion.Columns(2).Offset(1).Formula = "=IF(A2="","",CEILING((A2-((DATE(YEAR(A2),1,1)-WEEKDAY(DATE(YEAR(A2),1,1)))))/7,1))"
End Sub
Sub opcion()
[C2].CurrentRegion.Columns(2).Offset(1).Formula = "=INT((A2-DATE(YEAR(A2),1,0))/7)"
End Sub[/CODE]

publicado
Puedes hacerlo sin copier ni arrastrar, algunas opciones:

1. Con la formula en B2, doble clic

2. Escribir en la caja de nombres: B2:B1410, insertar formula con Control+Enter

3. Un codigo como este:

Sub actual()
[C2].CurrentRegion.Columns(2).Offset(1).Formula = "=IF(A2="","",CEILING((A2-((DATE(YEAR(A2),1,1)-WEEKDAY(DATE(YEAR(A2),1,1)))))/7,1))"
End Sub
Sub opcion()
[C2].CurrentRegion.Columns(2).Offset(1).Formula = "=INT((A2-DATE(YEAR(A2),1,0))/7)"
End Sub[/CODE]

Armando gracias por contestar probé el código y al momento de ejecutarlo me sale FALSO porque seria ese problema?

publicado

Gracias Armando pero veo que mi archivo tiene muchas lineas de formulas se podrá hacer que una vez la formula este echa y sea correcta solo se muestre el valor y ya no la formula creo que así ya pesaría mi archivo x la cantidad abundante de formulas que se usa.

publicado

La formula en el codigo opcion es mas rapida que la del codigo actual porque usa menos funciones.

Para convertir a valores selecciona el rango, copialo y pegado especial valores:

Copiar los valores de la celda, no las fórmulas - Excel

Puedes crear la macro haciendolo con la grabadora encendida:

Mi primer macro en excel : Hojas de cálculo Excel

Quedaria algo asi:

[A1:A30].Value=[A1:A30].Value[/CODE]

Sugiero leer algunos de los manuales que encontraras usando el buscador del foro.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      29

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    2    1

  • Crear macros Excel

  • Mensajes

    • 'Opción 1 Sub FiltrarSKUPorFecha(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim diccionarioSKU As Object Dim listaEliminar As Object Dim fechaActual As String, fechaSiguiente As String Dim f As Variant With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Crear diccionarios para comparar SKU y almacenar filas a eliminar Set diccionarioSKU = CreateObject("Scripting.Dictionary") Set listaEliminar = CreateObject("Scripting.Dictionary") ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then diccionarioSKU.RemoveAll ' Limpiar el diccionario antes de llenarlo ' Guardar los SKU de la fecha siguiente (solo de la siguiente) For f = fila + 1 To ultimaFila If .Cells(f, 1).Value <> fechaSiguiente Then Exit For diccionarioSKU(.Cells(f, 2).Value) = 1 Next f ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Solo eliminar si el SKU no está en la fecha siguiente If Not diccionarioSKU.exists(.Cells(f, 2).Value) Then listaEliminar(f) = 1 ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar.keys .Rows(f).Delete Next End With MsgBox "Completado correctamente.", vbInformation End Sub 'Opción 2 Sub FiltrarSKUPorFecha1(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim listaEliminar As Collection Dim fechaActual As String, fechaSiguiente As String Dim f As Variant, i As Long Dim SKUExiste As Boolean With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Inicializar la colección para marcar las filas a eliminar Set listaEliminar = New Collection ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Comprobar si el SKU está en la fecha siguiente SKUExiste = False For i = fila + 1 To ultimaFila If .Cells(i, 1).Value <> fechaSiguiente Then Exit For If .Cells(i, 2).Value = .Cells(f, 2).Value Then SKUExiste = True Exit For End If Next i ' Si el SKU no se encuentra en la fecha siguiente, marcar para eliminar If Not SKUExiste Then listaEliminar.Add f ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar .Rows(f).Delete Next f End With MsgBox "Completado correctamente.", vbInformation End Sub   TABLA ELIMINAR.xlsm
    • Hola a ambos, Comparto lo que dice el maestro Victor, no está clara la consulta en cuanto a las definiciones, si tuviera que deducir las piezas son el resultado de la multiplicación posterior a los gramos, como los ejemplos son botanas es posible que sean cajas por piezas. Si es el caso, una opción es convertir ese texto a una operación matemática después de extraerlo. Para esto se puede definir una función de EVALUAR que no siempre esta disponible pero se puede mandar llamar en la definición de los nombres. Por otro lado hay múltiples "p" que estorban un poco, (Principe ChocoBlanco EmpBco 12p 126g FLOW MLA) así que yo recomendaría definir nombres y segmentar las funciones, no es complicado aunque tal vez requiera un poco de experiencia del usuario si quiere editar en lo futuro. Tal vez con eso sería suficiente dando un resultado similar a lo siguiente:
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.