![VBA resalta una celda si el rango correspondiente en la misma fila no está en blanco](https://rvso.com/image/1451242/VBA%20resalta%20una%20celda%20si%20el%20rango%20correspondiente%20en%20la%20misma%20fila%20no%20est%C3%A1%20en%20blanco.png)
Estoy tratando de imponer el nombre del alimento en la columna B de un archivo si la columna D a DX (Cantidad) tiene algún valor.
Lo racional es que si se recibe una nueva solicitud de alimento que no aparece en el archivo, el usuario puede escribir temporalmente el nombre del alimento y luego ingresar la cantidad. Esto es para garantizar que el operador no ingrese un valor por error ni se olvide de transmitir información del nuevo elemento que agregó.
¿Es posible agregar un botón que pueda verificar todas las hojas desde D6 a DX98 y si se encuentra alguna cantidad y si la celda correspondiente en C está vacía, se marca C en rojo y un simple cuadro de mensaje indica que hay un error en el archivo.
El archivo en el que estoy trabajando es este: http://s000.tinyupload.com/?file_id=00523976624440052148
Respuesta1
Abra Macros /Visual Basic, haga doble clic en la hoja e inserte este código en el lado derecho:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wkb As Workbook
Dim wks As Worksheet
Dim wksRange As Range
Set wkb = ThisWorkbook
Set wks = ActiveSheet
For i = 6 To 98 ' rows to be sweeped
Set wksRange = wks.Range(Cells(i, 4), Cells(i, 127)) ' check from column 4 (D) to 127(DW)
'Paint grey cells on columns A to C
color_cell_a = Cells(i, 1).Interior.Color
Cells(i, 2).Interior.Color = color_cell_a
Cells(i, 3).Interior.Color = color_cell_a
'If on the row there are values
If WorksheetFunction.CountA(wksRange) <> 0 Then
itemName = Cells(i, 2)
itemPrice = Cells(i, 3)
'Change color on column B
If itemName = "" Then
Cells(i, 2).Interior.Color = RGB(184, 0, 0)
End If
'Change color on column C
If itemPrice = "" Then
Cells(i, 3).Interior.Color = RGB(184, 0, 0)
End If
End If
Next i
End Sub
Comprueba el área que cubre D6:DW98
y si hay un valor en una fila sinNombre del árticuloyPrecio unitario, marcará en rojo esas celdas hasta que escribas algo en ellas.
El código es muy fácil de modificar si deseas personalizarlo.