Código para que aparezca automáticamente en una columna un texto en especifico

Tengo la columna QUE la cual tengo puedo incidencias y en la columna R la clave...

Entonces quisiera sustituir esta fórmula por un código:

=SI.ERROR(BUSCARV(R2,W2:X2,2),"FACTURADO")

Al poner en la columna R el numero 1 me aparezca en automático "FACTURADO" en la celda de la columna QUE y así sucesivamente y si no hay numero que me salga "POR FACTURAR"..

1 respuesta

Respuesta
2

Para que funcione la siguiente macro, deberás poner en la columna "R" un 1 para que en la "Q" te ponga "FACTURADO", y escribe un 0 o cualquier otro dato, para que te ponga "POR FACTURAR .

Pon la macro en los eventos de tu hoja. La macro se activa si modificas el datos de la columna "R".

Avísame si el dato de la columna "R" es una fórmula, para pensar en otra solución.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("R")) Is Nothing Then
        For Each c In Target
            If c.Value = 1 Then
                Cells(c.Row, "Q") = "FACTURADO"
            Else
                Cells(c.Row, "Q") = "POR FACTURAR"
            End If
        Next
    End If
End Sub

SI ME FUNCIONA pero al hora de activar esto:

Selection.EntireRow.Insert
'ya estás en la fila insertada y en col A
If CheckBox1.Value = True Then
ActiveCell.Offset(0, 0) = TextBox1.Value
ActiveCell.Offset(0, 1) = TextBox2.Value
ActiveCell.Offset(0, 2) = TextBox24.Value
ActiveCell.Offset(0, 3) = TextBox3.Value
ActiveCell.Offset(0, 4) = TextBox4.Value
ActiveCell.Offset(0, 5) = TextBox5.Value
ActiveCell.Offset(0, 6) = TextBox6.Value
ActiveCell.Offset(0, 8) = TextBox16.Value
ActiveCell.Offset(0, 7) = TextBox7.Value
ActiveCell.Offset(0, 9) = TextBox8.Value
ActiveCell.Offset(0, 10) = TextBox18.Value
ActiveCell.Offset(0, 11) = TextBox19.Value
ActiveCell.Offset(0, 12) = TextBox21.Value
ActiveCell.Offset(0, 13) = TextBox20.Value
ActiveCell.Offset(0, 14) = TextBox22.Value
ActiveCell.Offset(0, 15) = TextBox23.Value
ActiveCell.Offset(0, 16) = TextBox25.Value
MsgBox "Solicitud de FACTURA creada", vbInformation, "DATOS RECABADOS"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox16 = ""
TextBox20 = ""
TextBox21 = ""
TextBox18 = ""
TextBox19 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
TextBox2.Locked = True
TextBox3.Locked = True
TextBox4.Locked = True
TextBox5.Locked = True
TextBox6.Locked = True
TextBox7.Locked = True
TextBox8.Locked = True
TextBox20.Locked = True
TextBox21.Locked = True
TextBox18.Locked = True
TextBox19.Locked = True
TextBox16.Locked = True
TextBox22.Locked = True
TextBox23.Locked = True
TextBox25.Locked = True
TextBox24.Locked = True 'AQUI HAY ERROR
Else
ActiveCell = TextBox2.Value
ActiveCell.Offset(0, 1) = TextBox2.Value
ActiveCell.Offset(0, 2) = TextBox4.Value
ActiveCell.Offset(0, 3) = TextBox5.Value
ActiveCell.Offset(0, 4) = TextBox6.Value
ActiveCell.Offset(0, 5) = TextBox7.Value
ActiveCell.Offset(0, 6) = TextBox8.Value
ActiveCell.Offset(0, 10) = TextBox20.Value
ActiveCell.Offset(0, 9) = TextBox21.Value
ActiveCell.Offset(0, 7) = TextBox18.Value
ActiveCell.Offset(0, 8) = TextBox19.Value
ActiveCell.Offset(0, 12) = TextBox16.Value
ActiveCell.Offset(0, 13) = TextBox22.Value
ActiveCell.Offset(0, 14) = TextBox23.Value
ActiveCell.Offset(0, 15) = TextBox24.Value
ActiveCell.Offset(0, 16) = TextBox25.Value
MsgBox "Solicitud de FACTURA creada", vbInformation, "DATOS RECABADOS"
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
TextBox16 = ""
TextBox20 = ""
TextBox18 = ""
TextBox19 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
TextBox2.Locked = True
TextBox3.Locked = True
TextBox4.Locked = True
TextBox5.Locked = True
TextBox6.Locked = True
TextBox7.Locked = True
TextBox8.Locked = True
TextBox20.Locked = True
TextBox21.Locked = True
TextBox18.Locked = True
TextBox19.Locked = True
TextBox16.Locked = True
TextBox22.Locked = True
TextBox23.Locked = True
TextBox24.Locked = True
TextBox25.Locked = True
End If
CheckBox1.Value = False
CheckBox2.Value = False
End If
Unload Me

se queda congelado mi libro y se atora

Entonces cambia por esto:

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Not Intersect(Target, Columns("R")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Value = 1 Then
            Cells(Target.Row, "Q") = "FACTURADO"
        Else
            Cells(Target.Row, "Q") = "POR FACTURAR"
        End If
    End If
End Sub

Pero con la macro anterior solamente te realizará cambios uno por uno, es decir, si metes 10 datos en la columna R, no lo realizará, pero si vas a pasar del formulario solamente un registro, entonces no tendrás problemas

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas