Ayuda en el script

5 envíos / 0 nuevos
Último envío
JORDI MES
Imagen de JORDI MES
Offline
última acción: Hace 2 años 10 meses
alta: 06/02/2019 - 11:32
Puntos: 140
Ayuda en el script

Tengo un libro que con un botón con el que importo una base de datos en html, creando una hoja nueva con el nombre del html.

Esta base de datos (html), es muy variable en cantidad de datos, y su extructura de "celdas" (columnas y filas) es diferente en cada caso.

Si sucede que debajo del encabezado de cada columna de la tabla, aparecen los datos que hace referencia su encabezado.

Genero un script de búsqueda del nombre de encabezado (que SI es común en todas las ocasiones de importar los datos de html) y indico que baje una celda abajo que es donde está el primer dato que me interesa.

Bien, pues ahora -y és lo que ya no sé como hacer- quiero que se seleccione todos los datos hasta la última fila de la columna, menos la primera celda en blanco.

¿Podeis ayudarme?...no tenemos de inicio un nombre de hoja ni de celda en la que establecer un punto de selección, sólo las búsquedas de navegación para la importación de datos y la búsqueda del nombre del encabezado de la lista que pretendo seleccionar.

 

Gracias.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 18 horas 33 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
.End xlDown

Supongamos que la celda primera es TuCelda

con el teclado puedes ir a la última celda hacia abajo con datos pulsando [Fin][flecha abajo]

en VBA esto se puede hacer con el método .End de tu celda. este método tiene como argumentos xldown, xlUp, xltoRight, xltoLeft, que serían como las flechas abajo, arriba, derecha e izquierda

es decir,  la última celda hacia abajo con datos sería

TuCelda.End xlDown 

El rango desde la primera a la última sería

Range(TuCelda, TuCelda.End(xlDown))

 

------
Ya sé Excel, pero necesito más.

JORDI MES
Imagen de JORDI MES
Offline
última acción: Hace 2 años 10 meses
alta: 06/02/2019 - 11:32
Puntos: 140
..la celda (TuCelda) no sé definirla

desde la complejidad de la búsqueda (te adjunto desde un inicio como procedo en la importación del html y la búsqueda siguiente), una vez llegada a una celda "X" (aleatória según sea el distinto html), me situaré bajo un título de columna en una celda "x" de coordenadas (letra:número) desconocido. Sólo llego trás la búsqueda.

For Each sheet In Workbooks(fileName).Worksheets

  Workbooks(fileName).Worksheets(1).Copy After:=Workbooks("PROVA2").Sheets(1)

    Rows("1:1").Select

    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Selection.RowHeight = 33.75

    With ActiveWindow

        .SplitColumn = 0

        .SplitRow = 1

    End With

    ActiveWindow.FreezePanes = True

    Range("A1").Select

  

 Workbooks(fileName).Activate

      

 Workbooks(fileName).Close

     Application.ScreenUpdating = True

  

MsgBox "Hoja copiada"

       

       Next sheet

   Range("A:A").Select

    Range("A1").Activate

    Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

Columns("B:H").Select

    Selection.Delete Shift:=xlToLeft

    Columns("B:I").Hyperlinks.Delete

    Cells.Select

    Selection.Font.Size = 10

    Columns("c:I").Columns.AutoFit

    Range("A1").Select

        Cells.Find(What:="Programs Name", After:=ActiveCell, LookIn:=xlFormulas, _

        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

        MatchCase:=False, SearchFormat:=False).Activate

        ActiveCell.Offset(1, 0).Select

       End If

  End With

 

Bien, puede que ahora sea más gráfico y se me pueda entender donde me encuentro perdido.

Ahora, y desde este punto (NO CONOCIDO) he de seleccionar los datos de las celdas en la columna en la que me encuentro, y hasta la celda vacia.

Puede que deba -y no sé como- de identificar la celda (letra:número) en la que he quedado, y establecerla como el punto que precisa la instrucción que me ha ofrecido.

Gracias.

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 18 horas 33 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
En realidad esa celda sí que

En realidad esa celda sí que es conocida, es la celda activa, la activas tú con esta instrucción

ActiveCell.Offset(1, 0).Select

Es decir, que lo que yo llamé "TuCelda" en tu caso es la celda activa, ActiveCell.

Entonces para seleccionar desde la celda activa hacia abajo lo puedes hacer así (justo a continuación de la instrucción anterior):

Range(ActiveCell, ActiveCell.End(xlDown)).Select

 

------
Ya sé Excel, pero necesito más.

JORDI MES
Imagen de JORDI MES
Offline
última acción: Hace 2 años 10 meses
alta: 06/02/2019 - 11:32
Puntos: 140
Muchísimas gracias.

Muchísimas gracias. Es justo lo que preciso y no apreciaba.