Limpiar celdas al pasar los datos

Hola expertos

me gustaría que me ayudaran con la siguiente macros la cual me pasa los datos de un formulario hecho en la hoja de excel, a otra hoja. (base de datos)

el problema:

que al pasar los datos de las celdas a la otra hoja, la información que paso queda siempre allí.

lo que necesito:

es que la macros a parte de pasarme los datos, me limpie las celdas y me quede vacío para ingresar la nueva información.

macros

Este código esta en la hoja 1:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$G$7" And Target.Address <> "$G$9" Then Exit Sub
If Target = "" Then Exit Sub
On Error Resume Next
If Target.Address = "$G$7" Then fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("B:B"), 0)
If Target.Address = "$G$9" Then fil = Application.WorksheetFunction.Match(Target, Sheets("Hoja2").Columns("C:C"), 0)
If fil = "" Then Exit Sub
Application.EnableEvents = False
Range("G5") = Sheets("Hoja2").Range("A" & fil) 'GENERO
Range("G7") = Sheets("Hoja2").Range("B" & fil) 'NOMBRE COMPLETO
Range("G9") = Sheets("Hoja2").Range("C" & fil) 'N-RNE
Range("G11") = Sheets("Hoja2").Range("D" & fil) 'MUNICIPIO
Range("G13") = Sheets("Hoja2").Range("E" & fil) 'DEPARTAMENTO
Range("G16") = Sheets("Hoja2").Range("F" & fil) 'DIA
Range("G18") = Sheets("Hoja2").Range("G" & fil) 'MES
Range("G20") = Sheets("Hoja2").Range("H" & fil) 'AÑO
Range("J8") = Sheets("Hoja2").Range("I" & fil) 'EDAD
Range("J10") = Sheets("Hoja2").Range("J" & fil) 'KINDER
Range("J12") = Sheets("Hoja2").Range("K" & fil) 'REPITE
Range("J14") = Sheets("Hoja2").Range("L" & fil) 'APADRINADO
Range("J16") = Sheets("Hoja2").Range("M" & fil) 'VACUNADO
Range("J18") = Sheets("Hoja2").Range("N" & fil) 'GRADO
Range("J20") = Sheets("Hoja2").Range("O" & fil) 'SECCIÓN
Range("G24") = Sheets("Hoja2").Range("P" & fil) 'IDENTIDAD
Range("J24") = Sheets("Hoja2").Range("Q" & fil) 'NOMBRE COMPLETO
Range("J26") = Sheets("Hoja2").Range("R" & fil) 'PARENTESCO
Range("G26") = Sheets("Hoja2").Range("S" & fil) 'DIRECCIÓN
Range("G28") = Sheets("Hoja2").Range("T" & fil) 'TRABAJO
Range("J28") = Sheets("Hoja2").Range("U" & fil) 'TELEF
Application.EnableEvents = True
End Sub

+

+

Este código esta en el modulo:

Sub Matricular()
On Error Resume Next
fil = Application.WorksheetFunction.Match(Range("G7"), Sheets("Hoja3").Columns("B:B"), 0)
If fil <> "" Then
MsgBox ("Ya está matriculado")
Exit Sub
End If
uf3 = Sheets("Hoja3").Range("A" & Cells.Rows.Count).End(xlUp).Row + 1
Sheets("Hoja3").Range("A" & uf3) = Range("G5") 'GENERO
Sheets("Hoja3").Range("B" & uf3) = Range("G7") 'NOMBRE COMPLETO
Sheets("Hoja3").Range("C" & uf3) = Range("G9") 'N-RNE
Sheets("Hoja3").Range("D" & uf3) = Range("G11") 'MUNICIPIO
Sheets("Hoja3").Range("E" & uf3) = Range("G13") 'DEPARTAMENTO
Sheets("Hoja3").Range("F" & uf3) = Range("G16") 'DIA
Sheets("Hoja3").Range("G" & uf3) = Range("G18") 'MES
Sheets("Hoja3").Range("H" & uf3) = Range("G20") 'AÑO
Sheets("Hoja3").Range("I" & uf3) = Range("J8") 'EDAD
Sheets("Hoja3").Range("J" & uf3) = Range("J10") 'KINDER
Sheets("Hoja3").Range("K" & uf3) = Range("J12") 'REPITE
Sheets("Hoja3").Range("L" & uf3) = Range("J14") 'APADRINADO
Sheets("Hoja3").Range("M" & uf3) = Range("J16") 'VACUNADO
Sheets("Hoja3").Range("N" & uf3) = Range("J18") 'GRADO
Sheets("Hoja3").Range("O" & uf3) = Range("J20") 'SECCIÓN
Sheets("Hoja3").Range("P" & uf3) = Range("G24") 'IDENTIDAD
Sheets("Hoja3").Range("Q" & uf3) = Range("J24") 'NOMBRE COMPLETO
Sheets("Hoja3").Range("R" & uf3) = Range("J26") 'PARENTESCO
Sheets("Hoja3").Range("S" & uf3) = Range("G26") 'DIRECCIÓN
Sheets("Hoja3").Range("T" & uf3) = Range("G28") 'TRABAJO
Sheets("Hoja3").Range("U" & uf3) = Range("J28") 'TELÉFONO
Sheets("Hoja3").Range("V" & uf3) = Range("F30") 'FECHA
End Sub

Bueno espero me puedan ayudar.

1 respuesta

Respuesta
1

¿En qué hoja quieres que se limpien los datos?

Saludos. Dam

bueno estoy observando que la macros que esta de primero, lo que hace es buscar datos,, por lo tanto no hagamos caso de ella.... omitirla.

la segunda macros el modulo:

bien la macros que esta aquí es la que pasa los datos a la hoja 3, el formulario creado esta en la hoja 1.

como te comentaba pasa los datos pero no borra la información que paso, si no que allí quedan y ese es el problema.

espero me puedas ayudar.

En la macro que está en un módulo, Agrega las siguientes líneas después de la la línea:

Sheets("Hoja3").Range("V" & uf3) = Range("F30") 'FECHA

Range("G5"). ClearContents
Range("G7"). ClearContents
Range("G9"). ClearContents
Range("G11"). ClearContents
Range("G13"). ClearContents
Range("G16"). ClearContents
Range("G18"). ClearContents
Range("G20"). ClearContents
Range("J8"). ClearContents
Range("J10"). ClearContents
Range("J12"). ClearContents
Range("J14"). ClearContents
Range("J16"). ClearContents
Range("J18"). ClearContents
Range("J20"). ClearContents
Range("G24"). ClearContents
Range("J24"). ClearContents
Range("J26"). ClearContents
Range("G26"). ClearContents
Range("G28"). ClearContents
Range("J28"). ClearContents
Range("F30"). ClearContents

Al final de la macro te debe quedar esta línea

End Sub

Saludos. Dam

Prueba y si es lo que necesitas, podrías

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas