Excel 2003: Macro para copiar datos usando la función contar en VBA

Dante Amor

Buenas tardes, les cuento actualmente como opera mi planilla actualmente:

  • El valor a copiar está en D2.
  • en la celda D3 utilizo la función +si(CONTAR(E3:G3)>0;D2;""). ¿Para qué? Si se ingresa algún valor en el rango, me muestra el valor de D2.
  • En la celda D4 utilizo la función +si(CONTAR(E4:G4)>0;D2;"")... y así sucesivamente hasta D10.

El valor de D2 varía, ya que aquí tengo un dato relacionado al usuario que actualmente usa la planilla.

¿Cuál es el problema que se presenta? Por ejemplo, el usuario1 puede estar usando la planilla y modificar algún valor de E3:G3, por lo que en D3 nos va a mostrar el valor de D2 (que es usuario1). Ahora, el usuario1 deja de usar la planilla y le da lugar al usuario2. En este caso, al modificarse el valor de D2 (deja de ser usuario1 y pasa a tener el valor usuario2) se modifica el valor de D3. Esto está mal, ya que fue el usuario1 el que modificó algún valor en e3:g3.

Pensé en solucionar la situación utilizando macros, teniendo en cuenta lo siguiente:

  • Si se ingresa algún valor en E3:G3, se copie el valor de D2 en D3. Si después por algún motivo, el rango E3:G3 pasa a estar vaciO nuevamente, se borre (o se vuelva a dejar en blanco) el valor de D3.
  • Lo mismo para las siguientes filas, hasta D10.

1 Respuesta

Respuesta
2

H o l a:

Pon la siguiente macro en los eventos de tu hoja.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("E3:G10")) Is Nothing Then
        cuenta = WorksheetFunction.Count(Range("E" & Target.Row & ":G" & Target.Row))
        If cuenta = 0 Then
            Cells(Target.Row, "D") = ""
        Else
            Cells(Target.Row, "D") = [D2]
        End If
    End If
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. Del lado derecho copia la macro

Realiza tus pruebas y cualquier detalle me comentas.


Añade tu respuesta

Haz clic para o

Más respuestas relacionadas