** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Selección de columnas según nombre celda superior
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSelección de columnas según nombre celda superior

 Responder Responder
Autor
Mensaje
jmpm Ver desplegable
Nuevo
Nuevo


Unido: 24/Octubre/2018
Localización: Madrid
Estado: Sin conexión
Puntos: 18
Enlace directo a este mensaje Tema: Selección de columnas según nombre celda superior
    Enviado: 19/Noviembre/2018 a las 13:14
Muy buenas. Tengo una macro con la que quiero abrir varios archivos. De cada archivo a mi solo me interesa una columna de unas siete filas que suele estar por la mitad del documento pero no siempre en la misma posición. Dicha columna está formada por una primera celda dónde viene el título (este sí que es siempre el mismo) y debajo vienen los datos que necesito. Mi pregunta es si existe alguna manera de crear una macro que lea las distintas celdas y que cuando encuentre la celda del título coja todo lo de abajo.

Muchas gracias!
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5423
Enlace directo a este mensaje Enviado: 19/Noviembre/2018 a las 13:25
Si, seguramente existe(n) alguna(s) manera(s) de hacerlo.

Para los datos que has aportado... pon en marcha la grabadora > Realiza una secuencia de ejemplo > Detén la grabadora > …

… realiza las modificaciones necesarias para automatizar/generalizar el ejemplo.


Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
jmpm Ver desplegable
Nuevo
Nuevo


Unido: 24/Octubre/2018
Localización: Madrid
Estado: Sin conexión
Puntos: 18
Enlace directo a este mensaje Enviado: 21/Noviembre/2018 a las 08:58
Esto fue lo que hice y me funcionó:

finalrow = Sheets("Report").Range("A500").End(xlUp).Row
       
        For i = 2 To finalrow
   
               If Cells(i, 1) = "Maximum" Then
              
                    wsOrigen0.Cells(i + 2, 2).Copy
                    wsDestino.Cells(9, 1).PasteSpecial xlPasteValues
            
                    wsOrigen0.Cells(i + 3, 2).Copy
                    wsDestino.Cells(9, 2).PasteSpecial xlPasteValues
                        
                    
               End If

        Next i
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5423
Enlace directo a este mensaje Enviado: 21/Noviembre/2018 a las 12:33


(Creo que) no necesitas  COPIAR/PEGAR:


. . .

  For i = 2 To finalRow

    If wsOrigen.Cells(i, 1) = "Maximum" Then

      wsDestino.Range("A9:B9").Value = WorksheetFunction.Transpose (wsOrigen.Cells(i + 2, 2).Resize(2).Value)

    End If

  Next i

. . .


Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable