Ayuda con macros de excel

Hola expertos buenas tardes, días o noches... Soy programador de sistemas pero necesito ayuda con una macro de excel quiero validar si hay datos en un rango de celdas por ejemplo ("b10:n60") y de cada una de las celdas convertir su valor de pesos a miles y viceversa, mi idea es la siguiente pedirle al usuario por medio un inputbox que teclee la celda inicial y la celda final(inputbox1= b10, inputbox2=n60) y de acuerdo a esos valores recorrer la matriz comenzando en la celda b10 y terminando el n60 y cada uno de sus datos multiplicarlo por mil o dividirlo según sea el caso

1 Respuesta

Respuesta
1

Te mando mi solución. Con esta macro evaluamos el rango B10:N60 y si la celda contiene algún valor numérico lo dividirá entre 1000 o lo que quieras hacer.

Sub ejemplo()
For Each celda In Range("b10:n60")
If celda.Value <> "" And IsNumeric(celda) Then
celda.Value = celda.Value / 1000
End If
Next
End Sub

no olvides finalizar la consulta

muchas gracias por la respuesta, solo quiero preguntar otra cosa al no tengo idea de como poner las variables en range("b10:n60") si le quiero dar valores por medio de un inputbox

Sub ejemplo()

Dim inicio, fin As String

inicio = InputBox("Teclee celda de inicio : ", "inicio")

fin = InputBox("Teclee celda final : ", "fin")
For Each celda In Range("inicio:fin")<----------------- aquí es donde me marca el error ya lo probé sin variables y si funciona pero me interesa que lleve las variables

If celda.Value <> "" And IsNumeric(celda) Then

celda.Value = celda.Value / 1000

End If

Next

End Sub

te agradecería mucho la ayuda, de antemano muchas gracias por la pronta respuesta

Ok, aquí tienes:

Sub ejemplo()
'por luismondelo
On Error GoTo salida
inicio = InputBox("introduzca la celda inicio", "ATENCION", Default:="b10")
fin = InputBox("introduzca la celda final", "ATENCION", Default:="n60")
For Each celda In Range(inicio & ":" & fin)
If celda.Value <> "" And IsNumeric(celda) Then
celda.Value = celda.Value / 1000
End If
Next
Exit Sub
salida:
MsgBox "ha ocurrido un error, vuelva a intentarlo", vbCritical
End Sub

no olvides finalizar la consulta

muchas gracias por tu ayuda, ya había encontrado una instrucción igual pero yo lo que necesitaba era que el usuario tecleara el rango de celdas tal cual me lo has pasado.

muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas