Buscar dato en todas las hojas, actualizar dato en todas las hojas encontradas

Quiero actualizar un dato en todas las hojas que exista.

EL dato lo tengo en un texbox de un form. (Este dato es numerico)

COn un boton quiero bucar el texto "cuotas", en las hojas de excel y en la celda adjunto a la derecha, poner el dato ingresado en el textbox.

He intentado varias formas, pero solo actualiza el primero que encuentra, no todos.

Muy agradecido por su ayuda

Slds

2

2 respuestas

Respuesta
2

Te anexo el código:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If IsNumeric(TextBox1.Value) Then valor = CDbl(TextBox1.Value) Else valor = TextBox1.Value
    For Each h In Sheets
        Set r = h.Cells
        Set b = r.Find("cuotas", lookat:=xlWhole)
        If Not b Is Nothing Then
            celda = b.Address
            Do
                b.Offset(0, 1).Value = valor
                Set b = r.FindNext(b)
            Loop While Not b Is Nothing And b.Address <> celda
        End If
    Next
    MsgBox "Fin"
End Sub

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola! Excelente las respuestas y muy asertivas.

Sin embargo tengo un detalle que pase por alto, porque entendía que no debería afectar.

El valor cuota de la celda de excel es una fórmula. Es decir esta concatenado y no me reconoce al momento de buscar fórmulas, me cae perfecto si fuera un valor sin fórmula.

Espero haberme dejado entender.

Slds

Cambia esta línea:

Set b = r.Find("cuotas", lookat:=xlWhole)

Por esta:

Set b = r.Find("cuotas", lookat:=xlWhole, LookIn:=xlformulas)

Prueba, si no te funciona entonces prueba con esta:

Set b = r.Find("cuotas", lookat:=xlWhole, LookIn:=xlvalues)

Si tampoco te funciona, entonces escribe un par de ejemplos de lo que tienes en el textbox, y lo que tienes en las celdas.

Respuesta
1

Puedes probar con el siguiente código:

Sub test()
    Application.ScreenUpdating = False
    For Each h2 In Sheets
        Set b = h2.Cells.Find("cuotas", lookat:=xlWhole)
        If Not b Is Nothing Then
            h2.Cells(b.Row, b.Column + 1) = textbox.value
        End If
    Next
    MsgBox "fin"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas