Jump to content

Maria_80

Members
  • Posts

    213
  • Joined

  • Last visited

  • Country

    Spain

Everything posted by Maria_80

  1. Hola, Estoy intentando eliminar los valores que se repiten en un rango. No me refiero a quitar los duplicados y dejar los registros únicos. Es decir, quitar todo lo que se repita y dejar todo lo demás, adjunto un ejemplo de cómo tendría que quedar en la columna F. Hasta ahora siempre he usado esto, pero no me sirve para este caso. ¿Alguna alternativa? Gracias. Set a = Sheets(«Hoja1») Set a = Sheets(«Hoja1») uf = a.Range(“A” & Rows.Count).End(xlUp).Row a.Range(“A1:B” & uf).RemoveDuplicates Columns:=Array(1, 2), Header:=xlYes
  2. funciona a las mil maravillas, Antoni! Mil millones de gracias!!
  3. gerson, he visto que no hay macro en el fichero para la tabla dinámica. Dejo aquí un ejemplo que tengo de hace tiempo para hacer una tabla dinámica con macro, sería adaptarlo. Aunque para este caso sigue sin servirme: 'Crear Hoja TablaDinamica Worksheets.Add(Before:=ActiveSheet).Name = "TablaDinamica" Set WSD1 = Worksheets("TablaDinamica") For Each PT In WSD1.PivotTables PT.TableRange2.Clear Next PT Set WSD2 = Worksheets("Hoja2") FinalRow = WSD2.Cells(Rows.Count, 1).End(xlUp).Row Set PRange = WSD2.Cells(1, 1).Resize(FinalRow, 7) Sheets("Hoja2").Select Set PTCache = ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:=PRange.Address) Set PT = PTCache.CreatePivotTable(TableDestination:=Worksheets("TablaDinamica").Range("B3"), TableName:="PivotTable3") PT.Format xlReport6 PT.ManualUpdate = True PT.AddFields RowFields:=Array("codigo") With PT.PivotFields("Hoja1") .Orientation = xlDataField .Function = xlCount .Position = 1 End With With PT.PivotFields("Hoja1") .Orientation = xlColumnField .Position = 1 End With PT.ManualUpdate = False Sheets("TablaDinamica").Select strVal = "Sum of Total" On Error Resume Next Set PT = ActiveCell.PivotTable If PT Is Nothing Then Exit Sub For Each pf In PT.RowFields pf.AutoSort xlAscending, strVal Next pf
  4. Gracias, Gerson. Hace tiempo pensé también en la tabla dinámica, es parecido a lo que tú hiciste y etsá fenomenal, pero lamentablemente los ficheros con los que trabajo no puedo convertirlos en tabla dinámica y entregarlos así... estaba buscando una especie de bucle que recorra la tabla y me haga el agrupa y suma sin necesidad de tener que meter una línea de código por cada campo que necesite sumar. Si encuentro alternativa lo pongo por aquí. Gracias!
  5. Hola, Os adjunto un fichero donde uso la función SUMAR.SI.CONJUNTO. Siempre que me la llevo a VBA lo hago con FormulaR1C1 = "=SUMIFS(C[-8],C[-11],RC[-3],C[-10],RC[-2])". Vamos! Grabando la macro cuando hago la Fx. Hasta ahora siempre bien cuando solo tengo que sumar dos o tres columnas. El caso es que tengo que repetir esto mismo en una gran cantidad de columnas y este método se queda extremadamente largo. Y el código se queda muy largo. ¿Conocéis alguna alternativa para poder hacer algo así que sea menos tedioso? En el ejemplo solo os he puesto cuatro columnas. Gracias de antemano. ejemplo_sumar.xlsm
  6. Gracias, Antoni! No encontraba nada por ahí. Funcionan todas las soluciones, aunque voy a desarrollar sobre esta, es la que he podido entender mejor para adaptarlo a lo mío y de momento genial. Gracias de nuevo!
  7. Hola, adjunto ejemplo donde intento hacer un buscarV solo en las celdas filtradas en Hoja1. El caso es que me devuelve igual el primer dato que encuentra. Alguna alternativa? Muchas gracias. vlookup.xlsm
  8. Hola, ¿puede alguien revisar esta macro? Sería este código, ahora mismo lo tengo en verde para que no salte. Quiero que una vez que introduzca datos en la celda B1, si la longitud es diferente a 10 caracteres me avise. Le pongo que haga esta comprobación cuando la celda no esté vacía. Algo así como después de actualizarla. El problema es que al hacer una prueba, me salta el msgbox igual en plan bucle infinito… no sé cómo solucionarlo. Gracias! Private Sub Worksheet_Change(ByVal Target As Range) 'celda = "B1" 'If Not IsEmpty(celda) And Len(celda) <> 10 Then 'MsgBox ("Revisar Código. 10 caracteres obligatorios"), vbInformation 'Range("B1").Clear 'End If End Sub ejemplo_len.xlsm
  9. Hola, Antoni. Tienes razón, no se puede. Aunque conseguí resolverlo partiendo de este ejemplo que encontré, por si le sirve a alguien (hay uno con macro y otro si ella): https://andypope.info/charts/conditionalline2.htm https://andypope.info/charts/conditionalline.htm Gracias!
  10. Hola, Quería preguntaros si existe alguna macro para poder poner un condicional en un gráfico de líneas al que he añadido una línea de tendencia. Quiero añadir alguna condición para que cuando supere los 100 me cambie de color ese punto o aparezca alguna nota, pero no encuentro nada. Os adjunto un ejemplo. Alguna idea? Se puede hacer algo así? Pregunto cómo hacerlo con macros porque no he encontrado en ningún sitio el modo de hacerlo con las funciones de excel. gracias! ejemplo_línea_tendencia.xlsx
  11. Hola, Estoy intentando crear una macro que me comprueba si existen registros en blanco en una columna que se encuentra en dos hojas distintas. Y si es así, que me cree una tercera hoja (la idea es pegar ahí los datos que faltan, después). Si lo hago con un For - Next para comprobar registro por registro me crea tantas hojas como blancos encuentra (no he sabido cómo meterle la creación de la hoja fuera del bucle). Así que lo he intentando seleccionando la columna por rango pero no funciona. Podéis echarle un vistazo? Gracias de antemano! ejemplo_blancos.xlsm
  12. Hola, os paso la solución, di con ella cacharreando un poco: If Archivo.Name Like "*MIPALABRA*" Then ....
  13. Hola, Me echáis un cable con esta sentencia? Estoy intentando cambiarla, la uso para consolidar los archivos con extensión .xls que hay en un directorio: If LCase(Right(Archivo.Name, 4)) = ".xls" Then ... Estoy intentando cambiar la misma frase, para que la condición no sea por extensión y sea si el nombre del archivo contiene una palabra determinada. He intentando con esto, pero sin éxito todavía: If IsNumeric(InStr(Archivo.Name, 50)) = "*MIPALABRA*" Then ¿alguna idea? gracias!
  14. Hola, normalmente activo o desactivo la opción "ajustar texto" manualmente, vía Menú Inicio, o con botón de la derecha, formato de celdas, alineación>ajustar texto. He intentado con la combinación de teclas Alt+H+W para llevármelo luego a una macro pero no me funciona y por lo que he estado buscando no hay mucha información sobre esto. Existe algún código o función para poder desactivar esta opción vía VBA? Gracias!
  15. Sí. He podido solucionarlo con la ayuda de @Gerson Pineda
  16. Hola, Gerson. Me han servido todas las soluciones que me has dado. Aunque a VBA me voy a llevar la última ( _xlfn.XLOOKUP) con la fórmula, es la que mejor he podido adaptar a lo mío y va de lujo. Mil gracias!
  17. Hola, Os adjunto un ejemplo con dos hojas. Una llamada matriz y otra que he llamado Buscar. En Buscar tengo una tabla de 4 columnas, intenté hacer la fórmula de INDICE y coincidir sobre la hoja MATRIZ para llevármelo luego a VBA con FORMULAR1C1 pero algo está fallando. La coincidencia sería por altura, edad y sexo. Pero me devuelve error. Podía alguien echarle un vistazo? Gracias de antemano. ejemplo_IC.xlsx
  18. Fenomenal, Antoni! Funcionó, como siempre. He metido el código dentro del evento Workbook_open y va perfecto. Graciass!
  19. Hola, Antoni. Necesito reabrir este hilo, porque me he encontrado con una problemática con la que no contaba. Como la solución me la diste tú y al final ha sido lo que funciona, quiero consultarte si esto es posible. Tenemos en una ruta un fichero que se llama "Plantilla_Base", al abrirlo, automáticamente hace un Save As con la fecha actual y ya trabajas directamente desde ahí. De modo que si ese mismo día abres de nuevo Plantilla_Base se queda tal cual está y puedes hacer modificaciones, etc. Ya existe el del día actual. Me he encontrado con el siguiente problema. Hoy he abierto el fichero de ayer para revisarlo, es decir Plantilla_Base_17052021, y al abrirlo lo que sucede es que hace un Save As y le pone la fecha de hoy. He estado dándole vueltas y no encuentro solución. ¿Alguna idea? Gracias!
  20. Hola, Antoni. Efectivamente, era eso. La parte de Data Valor. Mil gracias también por la parte de recuperar fórmula, me ha servido para entenderlo y adaptarlo a lo mío. Un saludo!
×
×
  • Create New...

Important Information

Privacy Policy