Saltar al contenido

bigpetroman

Miembros
  • Contador de contenido

    2126
  • Unido

  • Última visita

  • Days Won

    80

6Seguidores

Sobre bigpetroman

  • Rango
    Miembro

Configuraciones

  • Campo que utilizas como separador de argumentos Array

Visitantes recientes del perfil

2135 visitas de perfil
  1. Saludos @Salva Roselló, esta linea AlMenosN_individuos = 1 colocala antes del DO y no despues y lo otro, que las variables declaralas como double, algunas las tienes como integer y da error de desbordamiento suerte
  2. Saludos @Onotera, te dejo tu mismo archivo, con un pequeño cambio, espero que te sirva. realmente quite la parte que seleccionas todo, no es neceario estar en una hoja para copiar datos de ella, y tampoco es neceario seleccionar antes el rango que quieres copiar, simplemente lo copias y listo. y lo otro, si ya tienes una plantilla, para que estar acomodando formato de hojas luego de copiar?, alli pierdes mucho tiempo, simplemente has una copia de la hoja plantilla y listo, luego copias alli los valores que necesitas de la hoja datos. Suerte Creacion hojas obra - copia.xlsb
  3. Saludos @cristian9209, te dejo otra opcion, muy parecida a la del maestro @Antoni Sub Explotar2() Dim mDatos() As Variant Dim mTempo() As Variant Dim j As Long Dim k As Long Application.ScreenUpdating = False Hoja2.Select Hoja2.Cells.Clear Hoja1.Rows(1).Copy Hoja2.Rows(1) ReDim mDatos(100000, 9) For X = 2 To Hoja1.Range("A" & Rows.Count).End(xlUp).Row Application.StatusBar = "Procesando fila " & X & "/" & Hoja1.Range("A" & Rows.Count).End(xlUp).Row mTempo = Hoja1.Range("A" & X & ":I" & X) plant = Split(Hoja1.Range("A" & X), ";") For p = 0 To UBound(plant) For k = 1 To UBound(mTempo, 2) mDatos(j, k - 1) = mTempo(1, k) Next k mDatos(j, 0) = plant(p) j = j + 1 Next Next Hoja2.Range("A2").Resize(j, 9) = mDatos Application.StatusBar = False End Sub
  4. Saludos @LuisRojas, interesante el tema, aqui en el foro está un tema sobre ofuscar el codigo que tratamos algo hace tiempo Saludos
  5. Version 1.0.0

    4 downloads

    Amigos en este nuevo aporte les traigo el archivo Copa America Brasil 2019 - Pronosticos que nos permitirá hacer el seguimiento al evento futbolístico más importante del año; este puede ser usado de 2 maneras (en ambos casos el funcionamiento es el mismo): Simplemente como seguimiento de los juegos, donde vamos colocando los resultados de los juegos y vemos como va evolucionando la clasificación, se puede llevar el seguimiento hasta el juego final. Podemos usarlo para participar en una quiniela, hacemos nuestro pronóstico para todos los juegos, se le envía la quiniela a la persona encargada y esa persona con un archivo especial se encarga de llevar el control de todas las quinielas. Anexo está el archivo y la guía completa de uso, espero que les guste y disfruten del torneo siguiendolo con este archivo gracias
  6. Saludos @Pirtrafilla, y el amigo @avalencia, te dejo un código de como lo haría yo Sub PegarJornadasPnetInst() ApplicationOff ' 'declaro variables Dim uf1, uf2, f1 As Long Dim IDRH, ORDEN As String Dim celda As Range, rng As Range Dim NumIDRH As Long Dim NumOrden As Integer Dim nFilaWS1 As Double 'asigno las hojas Set Ws1 = Sheets("Instaladores"): Set Ws2 = Sheets("PartePnetInst") 'ultima fila de hojas uf1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row: uf2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row 'Set rng = Ws2.Range("A2:A" & uf2) 'ordeno los datos de la hoja 2 para asegurar que esten ordenado por el campo Id. HR ActiveWorkbook.Worksheets("PartePnetInst").Sort.SortFields.Clear ActiveWorkbook.Worksheets("PartePnetInst").Sort.SortFields.Add Key:=Range( _ "A2:A" & uf2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal ActiveWorkbook.Worksheets("PartePnetInst").Sort.SortFields.Add Key:=Range( _ "B2:B" & uf2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal ActiveWorkbook.Worksheets("PartePnetInst").Sort.SortFields.Add Key:=Range( _ "F2:F" & uf2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("PartePnetInst").Sort .SetRange Range("A1:J" & uf2) .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'recorro cada fila de la hoja ws2 NumIDRH = 0 NumOrden = 0 For Each celda In Ws2.Range("A2:A" & uf2) 'cada vez que cambie el campo Id. HR, o el ORDEN busco la fila respectiva en la hoja 1 If CLng(celda.Value) <> NumIDRH Or CLng(celda.Offset(0, 1).Value) <> NumOrden Then nFilaWS1 = 0 For f1 = 7 To uf1 If CDbl(Ws1.Range("A" & f1).Value) = CLng(celda.Value) And _ CInt(Ws1.Range("B" & f1).Value) = CLng(celda.Offset(0, 1).Value) Then 'obtengo los datos necesarios, el numero de fila (NumIDRH) 'el orden (NumOrden) y la zona (zona) ya que eso NO cambia 'hasta el proximo Id. HR NumIDRH = CDbl(Ws1.Range("A" & f1).Value) NumOrden = CInt(Ws1.Range("B" & f1).Value) nFilaWS1 = f1 zona = Ws1.Cells(f1, 8) Select Case zona Case "BARNA" zona = "BS" Case "MANRESA" zona = "TM" Case "Especiales" zona = "BS" End Select Exit For End If Next f1 End If 'cargamos la información solo si se consiguio el Id. HR en la hoja 1 If nFilaWS1 <> 0 Then dia = Day(celda.Offset(0, 5).Value) 'cargamos la info en la hoja Ws1 solo si el día no es S o F If Ws1.Cells(5, dia + 9) <> "S" And Ws1.Cells(5, dia + 9) <> "F" Then 'asigno la nomenclatura segun la zona Ws1.Cells(nFilaWS1, dia + 9) = zona End If End If Next End Sub hace exactamente lo mismo que tu codigo y mucho más rápido claro, suerte. la forma que lo haces, filtrando y quitando filtros (lo haces la x cantidad de datos que tengas en la hoja "Instaladores") pues consume mucho tiempo, entonces la idea principal que aporto es simplemente ordenar los datos de la hoja "PartePnetInst" y buscas el dato en la hoja "Instaladores" solo cuando cambie el Id. HR o Orden que estes procesando. suerte
  7. Es asi (sin en (i) ) h.Range(dato(j)).Copy h1.Range("A" & u)
  8. ve la diferencia aqui Header:=xlYes en tu codigo tienes Header:=xlGuess en la primera le dices explicitamente que SI tienes encabezados, en la segunda, el propio Excel es quien determina si tiene o no encabezados la tabla, por lo general usa la última condición que se haya usado en el excel
  9. Saludos @vulkatho, revisa el anexo, presiona el botón azul Ayuda excel.xlsm
  10. no, asi tal como está, te toma las filas de cada rango/hoja, probaste?
  11. saludos @temp01, en tu macro, donde tienes u = u +1 coloca esto u = u + h.Range(dato(j)).Rows.Count y listo, suerte
  12. Saludos @JuanPerez, creo entender lo que necesitas sobre el array (no lo que escribiste en la hoja, que no lo analice). hacer lo que quieres directamente en el array pues estoy seguro que no se puede, es decir, insertar una línea en la posición 10 por ejemplo y que las otras se desplacen hacia abajo (o una posición en el array) no se puede. sin embargo puedes hacer algo relativamente fácil, utiliza una columna de tu array como un ID que identifique cada línea (fila) en el mismo ejemplo si deseas insertar una nueva linea en la posicion 11, pues agregas la información al final del array y le colocas como ID el 10a por decir algo (10 porque está despues del 10, y el a para indicar que es otra linea) luego al final ordenas tu array por ese Id, y de esa forma todas las lineas te quedaran en la posición que tu necesitas y y listo, cuando la pases nuevente al excel estaran en el orden que las necesitas. espero que me haya explicado bien, suerte
  13. Saludos @sretamalb, te di una ayuda general, sin un archivo es casi imposible ver cual puede ser la solución, cualquier otra sugerencia es pura especulación, debes subir tu archivo y explicar lo que necesitas, suerte
  14. Saludos @sretamalb, tu puedes compartir un archivo (en la ventana REVISAR, luego compartir libro), al estar ese archivo en una carpeta de red, cualquier puede usarlo sin problemas. ahora, el problema puede venir en lo que hace el archivo, pues si actualizas datos directamente en ese archivo (por ejemplo una hoja donde guardas registros de datos) se puede dar el caso que pierdas datos de alguna linea que ya haya actualizado otro usuario. el compartir libro es bueno cuando varios usuarios actualizan diferentes partes del archivo, diferentes hojas por ejemplo. o tambien cuando el archivo es la forma de entrada de datos y los mismos se guardan en otro archivo (una base de datos access u otro archivo de excel que tengas como base de datos) suerte
  15. Pues amigo @xafel sin un archivo es practicamente imposible saber tu problema, pero si tu principal problema es el tamaño del archivo, pues súbelo a un servidor externo y compartes el link en tu pregunta, suerte
×
×
  • 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.