publicado el 23 de noviembre1 año Buenas a todos, Necesito ayuda para una macro que no tengo forma de hacerla. Tengo una tabla con 5 columnas, sus encabezados se llaman “A”, “B”, “C”, “D” y “E”. Busco datos en las columnas A B C y D, y cuando coincidan me den el dato que hay en la celda correspondiente de la columna E. Muchas gracias de antemano.
publicado el 6 de enero1 año He añadido un columna nueva a tu base de datos y he cambiado el código para ver si comprendes mejor su funcionamiento. Los datos te los muestra tanto en el formulario como puedes ver así como en la hoja valores
publicado el 6 de enero1 año Private Sub ACEPTAR_Click() Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim vmodelo As String Dim vpresostato As String Dim vvelocidad As String Dim vrecorrido As Double Label97.Visible = False ' Aquí habilitamos el botón de "Ir a Excel". Me.SALIR.Enabled = True ' Establecer la hoja de trabajo Set ws = ThisWorkbook.Sheets("Datos hidráulicos") ' Definir las variables según tus controles en el formulario vmodelo = MODELO vrecorrido = RECORRIDO If Me.CheckBox_PRESOSTATO = True Then vpresostato = "SI" If Me.CheckBox_PRESOSTATO = False Then vpresostato = "NO" If Me.OptionButton_010MS = True Then vvelocidad = "0,10 m/s." If Me.OptionButton_015MS = True Then vvelocidad = "0,15 m/s." If Me.OptionButton_020MS = True Then vvelocidad = "0,20 m/s." ' Aplicar el filtro With ws.Range("A1").CurrentRegion .AutoFilter 1, vmodelo .AutoFilter 3, vpresostato .AutoFilter 4, vvelocidad ' Manejar el error en caso de que no haya celdas visibles On Error Resume Next Set rng = .Offset(1, 0).Resize(.Rows.Count - 1, .Columns.Count).SpecialCells(xlCellTypeVisible) On Error GoTo 0 ' Restaurar el manejo normal de errores If rng Is Nothing Then MsgBox "No hay datos con las características solicitadas.", vbInformation Else ' Recorrer las filas visibles después de aplicar el filtro For Each cell In rng ' Verificar si vrecorrido está en el rango E:F If CDbl(RECORRIDO) >= .Cells(cell.Row, 5) _ And CDbl(RECORRIDO) <= .Cells(cell.Row, 6) Then Hoja21.Cells(6, 1) = vmodelo Hoja21.Cells(1, 4) = vmodelo Hoja21.Cells(2, 4) = .Cells(cell.Row, 7) Hoja21.Cells(3, 4) = .Cells(cell.Row, 8) Hoja21.Cells(5, 4) = vvelocidad Label97.Visible = True Label97 = .Cells(cell.Row, 8) & vbCrLf & .Cells(cell.Row, 7) If Len(.Cells(cell.Row, 8)) > 8 Then Label97.Font.Size = 40 Else Label97.Font.Size = 55 End If Exit For End If Next cell End If .AutoFilter End With End Sub 1(1) (1).xlsm
publicado el 6 de enero1 año Autor Muchas gracias Jesús!! Estoy de viaje, mañana en cuanto llegue lo miro. Gracias de nuevo!!! Saludos.
Buenas a todos,
Necesito ayuda para una macro que no tengo forma de hacerla.
Tengo una tabla con 5 columnas, sus encabezados se llaman “A”, “B”, “C”, “D” y “E”.
Busco datos en las columnas A B C y D, y cuando coincidan me den el dato que hay en la celda correspondiente de la columna E.
Muchas gracias de antemano.