Recorrer Columna y copiar los datos

Estoy queriendo hacer un código VB para excel donde me recorra la Columna M de una hoja que especificar con inputbox Inicia en M6 y termina en variable quiero decir va creciendo las filas el dato que quiero buscar es "disponible" y que si es me copie datos de la columna B, C, D, M, O, P a la Hoja de Nombre Informe. Solo pude hacer esto, por favor ayudenme

Sub BuscarHoja()
Sheets(InputBox("Digite el numero")).Select
'Range("M6").Select
Range("M5:M100").Select

1 respuesta

Respuesta
1

¿Qué dato vas a poner en el inputbox? Vas a poner un número, ¿por ejemplo 2 y tienes una hoja que se llama 2?

Prueba con lo siguiente

Sub coincidentes()
'Por.DAM
Set h1 = Sheets("Informe")
hoja = InputBox("Digite el número: ", "HOJA")
For Each h In Sheets
    If h.Name = hoja Then existe = True
Next
If existe Then
    Set h2 = Sheets(hoja)
    u1 = h1.Range("M" & Rows.Count).End(xlUp).Row + 1
    h2.AutoFilterMode = False
    u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
    h2.Range("A5:P" & u2).AutoFilter Field:=13, Criteria1:="disponible"
    If h2.Range("M" & Rows.Count).End(xlUp).Row > 5 Then
        h2.Range("B5:D" & u2 & ",M5:M" & u2 & ",O5:P" & u2).SpecialCells(xlCellTypeVisible).Copy _
        h1.Range("B" & h1.Range("A" & Rows.Count).End(xlUp).Row + 1)
    End If
    MsgBox "Registros ''disponibles'' copiados", vbInformation, "COPIAR DATOS"
Else
    MsgBox "El número de hoja no existe", vbInformation, "COPIAR DATOS"
End If
End Sub

La copia se hace en la hoja "informe" en la columna "B" y siempre se agregan al final de los datos.

Si es lo que necesitas, podrías finalizar la pregunta.

Saludos. Dante Amor

Si. es que mis hojas tienen por nombre cada dia de un mes Ejemplo

1,2,3...30 los días de un mes en este caso Junio las hojas tienen por nombre esos 2 en este caso es la hoja 2.

pero solo quiero los equipos que estaban disponibles la fecha 2 vale decir la hoja 2 o el que que desee tomar en ese momento. pero no sera de todas al mismo tiempo sino de solo una y copie los datos que están en esa columna y en esa fila.pero no todas las filas.

Gracias

Prueba la macro y me comentas

Solo consigue hacerme el filtro, en la hoja 31 en este caso que tengo llenada con datos para ejemplo y me muestra un mensaje que dice Registro "Disponibles" copiados.

pero no pega en la hoja informe

faltaría algún ajuste.

Gracias

Roberto

Prueba con esta

Sub coincidentes()
'Por.DAM
Set h1 = Sheets("Informe")
hoja = InputBox("Digite el número: ", "HOJA")
For Each h In Sheets
 If h.Name = hoja Then existe = True
Next
If existe Then
 Set h2 = Sheets(hoja)
 u1 = h1.Range("M" & Rows.Count).End(xlUp).Row + 1
 h2.AutoFilterMode = False
 u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
 h2.Range("A5:P" & u2).AutoFilter Field:=13, Criteria1:="disponible"
 If h2.Range("M" & Rows.Count).End(xlUp).Row > 5 Then
 h2.Range("B6:D" & u2 & ",M6:M" & u2 & ",O6:P" & u2).SpecialCells(xlCellTypeVisible).Copy _
 h1.Range("B" & h1.Range("B" & Rows.Count).End(xlUp).Row + 1)
 End If
 MsgBox "Registros ''disponibles'' copiados", vbInformation, "COPIAR DATOS"
Else
 MsgBox "El número de hoja no existe", vbInformation, "COPIAR DATOS"
End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas