Saltar al contenido

avalencia

Miembros
  • Contador de contenido

    895
  • Unido

  • Última visita

  • Days Won

    23

5Seguidores

Sobre avalencia

  • Rango
    Abraham Valencia

Formas de contacto

  • Web https://abrahamexcel.blogspot.pe/

Información de perfil

  • Sexo Hombre
  • Localización: Perú

Configuraciones

  • Campo que utilizas como separador de argumentos ,

Visitantes recientes del perfil

981 visitas de perfil
  1. avalencia

    evitar que aparezca al abrir hoja ,la macro BeforeSave

    Veo un Cancel "libre" y un "End Sub" innecesario Abraham Valencia
  2. Prueba así: Sheets(Array("Portada", "Resumen", CStr(Range("C1").Value))).Select Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "D:\Facturacion" & Range("c1").Value & ".pdf", _ Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False Coementas Abraham Valencia PD: El Cstr es porque la celda tiene un número y el nombre de la hoja es un texto numérico
  3. Ajá, excelente, y sí, es tal cual mencionas. De nada y hasta la próxima. Abraham Valencia
  4. No dije nada. Cambia así: Private Sub CommandButton1_Click() Dim a As Double, b As Double, m As Double, x As Double Dim aI As Long, bI As Long Dim Celda As Range a = CDbl(TextBox1.Value) TextBox1.Value = Format(TextBox1.Value, "#,##0.00") b = CDbl(TextBox2.Value) TextBox2.Value = Format(TextBox2.Value, "#,##0.00") aI = Int(a) bI = Int(b) For Each Celda In Selection If Celda = "" Then Do x = Evaluate("=RANDBETWEEN(" & aI & "," & bI & ")+RAND()") Loop Until x > a And x < b m = Format(x, "#,##0.00") Celda.Value = CDbl(m) End If Next Celda Unload Me End Sub Abraham Valencia
  5. Hola ¿Necesariamente los números que colocas deben tener decimales o te sirve que los resultados tengan decimales? Abraham Valencia
  6. Hola, veo que no has hecho ningún cambio/avance a pesar de que ya habías dejado una pregunta y el mismo archivo aquí en el foro. Te copio y pego lo que ya te había recomendado: Lo que pasa es que es poco práctica tu forma de intentar llenar/editar 13 registros (filas) a la vez, pero en todo caso si insistes con esa forma de hacerlo, una regla básica de una buena base de datos es que tiene que haber una identificación por cada registro, por más que un producto (o lo que sea) se repita (si fuera Access -u otro SGBD- probablemente usaríamos más de una tabla y relacionadas) pues finalmente alguna diferencia tienen (o al menos eso parece) y por ende, al tener un número (o algo) que identifique/diferencie, sería fácil usar "Find" para ubicar el registro modificado y guardar los datos en la misma fila. Si insistes en tu modelo de BD, sin ánimo de ser negativo, no sé si alguien se dé el tiempo de revisar todo y/o hacerte todo ya que requiere un tiempo que no necesariamente tenemos todos ya que, recordemos, ayudamos aquí (y en otros foros) ad honorem. Igual como para hacerme entender mejor, mira el ejemplo N° 9 de mi blog: Blog Comentas Abraham Valencia
  7. avalencia

    evitar que aparezca al abrir hoja ,la macro BeforeSave

    ¿Ves esa línea que dice "ThisWorkBook.Save"? Pues Bórrala ya que lo que hace es intentar guardar el libro apenas se abre y se activa el evento "BeforeSave" y por eso el constante mensaje al abrir el archivo. Ah, ojo, una vez que la borres para poder guardar el libro no olvides comentar (con un apóstrofe al inicio) las dos líneas del evento "BeforeSave", hecho eso guardar el libro, les quitas el apóstrofe y listo, ya puedes entregar otra vez el archivo a tu cliente sin el dichoso mensaje al abrir. Abraham Valencia
  8. avalencia

    evitar que aparezca al abrir hoja ,la macro BeforeSave

    Hola, ¿qué hay en el evento "Open" del libro? Sospecho que no solo estás usando el evento "BeforeSave". Abraham Valencia
  9. avalencia

    Código lento con Autofilter

    Hummm... sugiero un intento más del siguiente modo: - Reenvía el archivo con las últimas modifiaciones que has hecho - Incluye una explicación real de lo que quieres, es decir, no con variables, imagínate (por favor) que no tienes la macro y comenta que valores se filtran y que valores se compara y que necesitas que ocurra. Incluso si en otra hoja muestres el resultado que querrías sería genial - Ojo con algo, tus rango ocupan varias filas y columnas, se recorre cada celda de ellas, si el interés es comparar solo algunas celdas ¿por qué recorres tantas celdas que no tienen nada que ver? Abraham Valencia
  10. Hola Lo que pasa es que es poco práctica tu forma de intentar llenar/editar 13 registros (filas) a la vez, peor en todo caso si insistes con esa forma de hacerlo, una regla básica de una buena base de datos es que tiene que haber una identificación por cada registro, por más que un producto (o lo que sea) se repita (si fuera Access -u otro SGBD- probablemente usaríamos más de una tabla y relacionadas) finalmente alguna diferencia tienen (o al menos eso parece) por ende, al tener un número (o algo) que identifique/diferencie, sería fácil usar "Find" para ubicar el registro modificado y guardar los datos en la misma fila. Si insistes en tu modelo de BD, sin ánimo de ser negativo, no sé si alguien se dé el tiempo de revisar todo y hacerte todo ya que requiere un tiempo que no necesariamente tenemos todos ya que, recordemos, ayudamos aquío (y en otros foros) ad honorem. Igual como para hacerme entender mejor, mira el ejemplo N° 9 de mi blog: Blog Comentas Abraham Valencia
  11. Suponiendo que hablas de la columna A: Sub Cambiar() Dim UltimaFila As Long Dim Celda As Range Let UltimaFila = Cells(Rows.Count, 1).End(xlUp).Row For Each Celda In ActiveSheet.Range("A1:A" & UltimaFila) If IsNumeric(Celda.Value) Then Select Case Len(Celda.Value) Case 8 Celda = DateSerial(Right(Celda, 4), Mid(Celda, 3, 2), Left(Celda, 2)) Case 7 Celda = DateSerial(Right(Celda, 4), Mid(Celda, 2, 2), Left(Celda, 1)) End Select End If Next Celda End Sub Abraham Valencia
  12. avalencia

    Código lento con Autofilter

    No me queda claro lo del filtro, el For con SpecialCells(xlCellTypeVisible) se supone hará que solo se recorran las filas a las que se les aplicó el filtro por ende no debería haber vacías ¿o algo se me está pasando? Abraham Valencia
  13. avalencia

    Código lento con Autofilter

    Estimado, no olvides que cuando trabajas con hojas distintas y asignas valores a objetos como esas mismas hojas o rangos, pues no debes olvidar a ninguno. Entonces: Set rng = ws1.Range("A1:J" & uf2) o Set rng =ws2 Range("A1:J" & uf2) Lo mismo para rng1. Para recorrer celdas filtradas, vas bien, prueba así para que entiendas: For Each celda In rng.SpecialCells(xlCellTypeVisible) Debug.Print celda.Address Next celda Abraham Valencia
  14. Mira: =SUMAR.SI.CONJUNTO(OCT!K:K;OCT!D:D;"MEDICINA";OCT!E:E;"LAB_BMG") En donde dice "MEDICINA" y en donde dice "LAB_BMG", solo reemplazarlos por las celdas en donde irán esos valores. Ah, puede ir más argumentos incluso. Abraham Valencia
  15. Hola. ¿Y por qué no te sirve un "Sumar.Si"? =SUMAR.SI(OCT!D:D;L5;OCT!K:K) Comentas Abraham Valencia PD: Si usas "Desref" también tendrá que evaluar columnas completas
×

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.