none
codigo VB de una macro excel para reemplazar numero por letra en la misma celda RRS feed

  • Pregunta

  • Hola, si alguien por alli me puede dar viendo que pasa con este codigo , tengo excel version 2010

    quiero que cuando introduzca un numero ejem: 8 en la celda a1 este automaticamente en la misma celda cambie a "OCHO"; 

    pero en toda la columna seleccionada.. 

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "f9:g16" Then
    valor = Range("f9:g16").Value
    Select Case valor
    Case 1
    Range("f9:g16") = "UNO"
    Case 2
    Range("f9:g16") = "DOS"
    Case 3
    Range("f9:g16") = "TRES"
    Case 4
    Range("f9:g16") = "CUATRO"
    Case 5
    Range("f9:g16") = "CINCO"
    Case 6
    Range("f9:g16") = "SEIS"
    Case 7
    Range("f9:g16") = "SIETE"
    Case 8
    Range("f9:g16") = "OCHO"
    Case 9
    Range("f9:g16") = "NUEVE"
    Case 10
    Range("f9:g16") = "DIEZ"
    Case 11
    Range("f9:g16") = "ONCE"
    Case 12
    Range("f9:g16") = "DOCE"
    Case 13
    Range("f9:g16") = "TRECE"
    Case 14
    Range("f9:g16") = "CATROCE"
    Case 15
    Range("f9:g16") = "QUINCE"
    Case 16
    Range("f9:g16") = "DIECISEIS"
    Case 17
    Range("f9:g16") = "DIECISIETE"
    Case 1.5
    Range("f9:g16") = "UNO Y MEDIO"
    Case 2.5
    Range("f9:g16") = "DOS Y MEDIO"
    Case 3.5
    Range("f9:g16") = "TRES Y MEDIO"
    Case 4.5
    Range("f9:g16") = "CUATRO Y MEDIO"
    Case 5.5
    Range("f9:g16") = "CINCO Y MEDIO"
    Case 6.5
    Range("f9:g16") = "SEIS Y MEDIO"
    Case 7.5
    Range("f9:g16") = "SIETE Y MEDIO"
    Case 0
    Range("f9:g16") = "CERO"

    End Select
    End If
    End Sub

    estaria agradecida a todos por algun comentario de que es lo que esta mal.. por favor.. 

    garcias

    domingo, 22 de abril de 2012 4:31

Todas las respuestas

  • Hola!

    me temo que hay varios errores, para empezar el rango que cambia es una celda, por lo que no puedes comparar target con un rango multiple:

    If Target.Address = "f9:g16" Then

    Por otra parte tampoco puedes igualar una variable a un rango multiple

    valor = Range("f9:g16").Value

    Me da la impresión de que no tienes nada claro lo que quieres ni lo que haces, procura aclararlo y explicate para ver si te podemos ayudar.


    Saludos a todos desde Huelva
    http://www.mvp-access.es/emilio/

    domingo, 22 de abril de 2012 8:13