Cómo transferir datos específicos de una hoja a otra a través de VBA en Microsoft Excel

Tabla de contenido

En este artículo, usaremos el evento de cambio de la hoja de trabajo para transferir datos de una hoja a otra, dependiendo de una determinada condición.

Los datos brutos constan de los detalles del cliente, que incluyen el nombre, la dirección, la ciudad, la región, el país y el número de teléfono.

En este artículo, queremos transferir datos de aquellos clientes que no son elegibles para una oferta en particular. La última columna contiene "No" como valor, si un cliente no es elegible para una oferta en particular. Queremos copiar a esos clientes "no elegibles" a la hoja "NotEligibleData".

Explicación del código

Si Target.Column = 7, entonces

El código anterior se usa para restringir el evento de cambio de la hoja de trabajo para que se ejecute solo cuando el valor en 7th se cambia la columna.

Hojas ("NotEligibleData"). Rango ("A2: I600"). ClearContents

El código anterior se utiliza para eliminar el valor del rango A2: I600

Sheets ("Main"). Cells (i, "G"). EntireRow.Copy Destination: = Sheets ("NotEligibleData"). Range ("A" & Rows.Count) .End (xlUp) .Offset (1)

El código anterior se utiliza para copiar a los clientes no elegibles a la hoja "NotEligibleData".

Siga a continuación para obtener el código

 Private Sub Worksheet_Change (ByVal Target As Range) 'Declarando variables Dim i, Lastrow As Long' Ejecutar código si se cambia el valor en la séptima columna If Target.Column = 7 Then 'Obteniendo el número de fila de la última celda Lastrow = Sheets ("Main" ) .Range ("A" & Rows.Count) .End (xlUp) .Row 'Eliminando cualquier dato anterior de la hoja "NotEligibleData" Sheets ("NotEligibleData"). Range ("A2: I600"). ClearContents' Bucle desde el décimo fila a la última fila Para i = 10 To Lastrow 'Si el valor en la columna G de la fila es "No", entonces copie la fila a la hoja de destino Si Hojas ("Principal"). Celdas (i, "G"). Valor = " No "Luego Hojas (" Principal "). Celdas (i," G "). Fila completa. Destino de copia: = Hojas (" Datos no elegibles "). Rango (" A "& Rows.Count) .End (xlUp) .Offset ( 1) End If Next i End If Range ("A1"). Seleccione End Sub 

Si te gustó este blog, compártelo con tus amigos en Facebook. Además, puede seguirnos en Twitter y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos al sitio de correo electrónico

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave