Jump to content

bigpetroman

Members
  • Content Count

    2,142
  • Joined

  • Last visited

  • Days Won

    81

Everything posted by bigpetroman

  1. amigo @eugeniocol revisa el anexo, yo duplique los bloques hasta 10 filas y lo realizo en 30 segundo mas o menos cualquier problema subes un archivo con mas datos unas 100 lineas, que den diferentes resultados y así hacer mas pruebas Foro CONTAR COINCIDENCIAS_2.xlsm
  2. amigo @eugeniocol intente ayudar, pero de verdad que no entiendo realmente que es lo que hace, por favor explica mejor exactamente que buscas y coloca los resultados de una par de ejemplo. en lo que describes, los dos rangos que dices (están en verde) yo veo que coinciden 6 números y no 4 como comentas, entonces no entiendo suerte
  3. amigo @eugeniocol, revisa el anexo, coloque dos formas de hacerlo, hay muchas formas de hacerlo, pero la forma como esta en tu macro, pues es la peor jejeje, suerte Foro copia con criterio.xlsm
  4. Revisa, se va copiando los datos en la hoja, otra hoja pares.xlsm
  5. Saludos @MAURO_1512 revisa el archivo, le realice unas modificaciones, el codigo NO es que falla, pues si NO explicas todo lo que necesitas y los pormenores, pues solo queda adivinar si la fecha está vacia, evalua toda la columna, sino, solo las filas que coincidan con la fecha suerte pares.xlsm
  6. Saludos @MAURO_1512, el siguiente código hace lo que necesitas Sub Procesar() Dim nFilFin As Double Dim rCelda As Range Dim n As Integer Dim sTexto As String Dim nCol As Double Dim nFil As Double Application.EnableEvents = False Application.ScreenUpdating = False Application.Calculation = xlCalculationManual nFilFin = Range("A" & Rows.Count).End(xlUp).Row For Each rCelda In Range("A2:A" & nFilFin) For n = 1 To Len(rCelda.Value) sTexto = Replace(rCelda.Value, Mid(rCelda, n, 1), "") If Len(sTexto) <= (Len(rCelda.Value) - 2) Then nCol = CDbl(Mid(rCelda, n, 1)) nFil = Range("A" & Rows.Count).Offset(0, nCol + 1).End(xlUp).Row + 1 Range("A1").Offset(nFil - 1, nCol + 1).Value = CDbl(sTexto) Exit For End If Next n Next Application.EnableEvents = True Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic End Sub
  7. Muchas gracias @digitalboy, efectivamente si trae el valor, yo intente algo parecido con el objeto "MSXML2.XMLHTTP", pero no me funciono, la propiedad .title siempre está vacia Sub Valor_preev_new() Dim sResponse As String Dim HTML As New HTMLDocument With CreateObject("MSXML2.XMLHTTP") .Open "GET", "http://preev.com/btc/usd", False .send sResponse = .responseText End With With HTML .body.innerHTML = sResponse Debug.Print .Title 'SIEMPRE ESTA VACIO End With End Sub Al final lo realice de dos maneras, una como dice el amigo @José_Santos. usando la URL: http://preev.com/pulse/units:btc+usd/sources:bitstamp+kraken tomo 10 los valores seguidos en intervalos de 2 segundos y saco el promedio (los valores rara vez son iguales al mostrado en la página) y la otra forma, que sí da el valor practicamente igual al de la página preev.com fue tomando los valores de bitstamp y kraken de otra página (por ejemplo "https://es.investing.com/crypto/bitcoin/btc-usd") y hacer el promedio, al final es la forma que se está usando. la del amigo @digitalboy es una buena opción, lo que no me gusta es la carga de IE, pero bueno Gracias a todos
  8. Gracias, vere si logro hacer algo usando la URL que indicas, pense inicialmente que seria el valor promedio de ambos valores, pero NO da el mismo valor que muestra la página, seguire indagando a ver si lo logro. por lo general, la forma que lo hacia yo era obteniendo el campo por su ID o por el classname y luego simplemente leo su contenido, pero con este campo no me funciona,
  9. Gracias por el Interes, el valor que deseo obtener es el que muestra en segundo cuadro de texto, que es el valor del BTC
  10. Saludos amigos, anteriormente yo he realizado Web Scraping obteniendo valores de tablas y esas cosas, hoy estoy intentando con esta simple página http://preev.com/ que me muestra el valor del BTC, y pues no logro obtener ese valor, si alguien puede echar una mano gracias
  11. Saludos @julayala, revisa el anexo Suerte CRM Clientes de Santa Ana.xlsx
  12. nota: el * debes colocarlo al inicio, ejemplo *1-1 (para indicar que gano el local por penales) o al final 1-1* para indicar que gano el visitante por penales suerte
  13. Buenas tardes, amigo @puntoyclick, revisa el anexo, realice un pequeño ajuste en tu archivo, creo que es lo que quieres Suerte plantilla-excel-generar-tabla-de-posiciones-calendario-liga - copia.rar
  14. Saludos @KAITEKI, vi tu tema y tenia ganas de revisar y ver en que ayudar, pero buscando en el foro hay varios BINGOS interesantes, deberias darte una vuelta por ellos y revisar, pudieras usar uno de ellos o mejorar el tuyo, y luego pedir si te trabas en algo, uno de ellos te lleva a esta página, en el botón de excel tienes el bingo completo http://www.vicenteleon.es/ suerte
  15. Sip, eso mismo, cambias ese numero por la columna correspondiente, me alegra que te funcione
  16. amigo @alvaro271194, sin datos es dificil comprobar si algo funciona o no, igualmente siempre es necesario colocar un ejemplo, sin embargo creo que esto hace lo que necesitas Sub DE1A20MOV() Dim n As Integer Dim j As Integer Application.DisplayAlerts = False On Error Resume Next For j = 6 To 44 Step 2 For n = 6 To j Step 2 Range("A1").AutoFilter n, , xlFilterValues, Array(0, "12/31/2017", 0, "12/31/2016") Next n With Range("A1") .AutoFilter j + 1, "=", xlAnd Range(Cells(Rows.Count, .Column).End(xlUp), Cells(.Row + 1, Columns.Count).End(xlToLeft)).SpecialCells(12).Delete .AutoFilter End With Next j On Error GoTo 0 Application.DisplayAlerts = True End Sub Suerte, lo que realice fue simplemente RESUMIR tu macro, sin embargo seria cuestion de ver los datos y analizar si se puede hacer de otra manera
  17. 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
  18. 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
  19. 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
  20. Saludos @LuisRojas, interesante el tema, aqui en el foro está un tema sobre ofuscar el codigo que tratamos algo hace tiempo Saludos
  21. Version 1.0.0

    27 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
  22. 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
  23. Es asi (sin en (i) ) h.Range(dato(j)).Copy h1.Range("A" & u)
  24. 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
  25. Saludos @vulkatho, revisa el anexo, presiona el botón azul Ayuda excel.xlsm
×
×
  • Create New...

Important Information

Privacy Policy

Ayuda Excel - Madrid, Madrid, ES - Valorada por 6254 personas - Aprender Excel - Total: 4.7 / 5