Buenas tardes, les escribo para que me brinden su ayuda con una macro, les estaré muy agradecida, les paso a contar:
Tengo una macro con varias hojas, en la hoja "carga de datos" hay un formulario de carga, en la celda C15 una lista desplegable con varias opciones, lo que quiero es si se cumple una de las opciones me copia los datos cargados en el formulario en la hoja que lleva el mismo nombre:
Las opciones de la celda C15 son las siguientes:
Censos
Monografías
Revistas
Serie
Ahora copia todo en la carpeta "datos" pero sería más eficiente si lo copia en la hoja que corresponde.
Mi macro
Opción explícita
Sub Captura_Datos ()
'Comando para que no parpadee
Application.ScreenUpdating = False
«Comando para desproteger hoja
ActiveSheet.Unprotect Password: = "1234"
«Declaración de variables
'
Dim strTitulo As String
Dim Continuar como cadena
Dim TransRowRng As Range
Dim NewRow As Integer
Dim Limpiar como cadena
'
strTitulo = "Inventario Digital"
'
Continuar = MsgBox ("Dar de alta los datos?", VbSí No + vbExclamation, strTitulo)
Si Continuar = vbNo, entonces salga de Sub
'
Establecer TransRowRng = ThisWorkbook.Worksheets ("Datos"). Celdas (1, 1) .Región actual
NewRow = TransRowRng.Rows.Count + 1
Con ThisWorkbook.Worksheets ("Datos")
.Cells (NewRow, 1) .Value = Date
.Cells (NewRow, 2) .Value = ThisWorkbook.Sheets (1) .Range ("C9") 'Base de datos
.Cells (NewRow, 3) .Value = ThisWorkbook.Sheets (1) .Range ("C11") 'Tipo de recurso
.Cells (NewRow, 4) .Value = ThisWorkbook.Sheets (1) .Range ("C13") 'Nombre de archivo
.Cells (NewRow, 5) .Value = ThisWorkbook.Sheets (1) .Range ("C15") 'Carpeta
.Cells (NewRow, 6) .Value = ThisWorkbook.Sheets (1) .Range ("C17") 'Subido a la Web
Terminar con
MsgBox "Alta exitosa", vbInformation, strTitulo
Limpiar = MsgBox ("¿Deseas limpiar los campos de la captura?", Vb Sí, strTitulo)
Si Limpiar = vb Sí, entonces
Con ActiveWorkbook.Sheets (1)
.Range ("C9"). ClearContents
.Range ("C11"). ClearContents
.Range ("C13"). ClearContents
.Range ("C15"). ClearContents
.Range ("C17"). ClearContents
'ClearContents no funciona en celda combinada ...
Terminar con
Más
Terminara si
ActiveSheet.Protect Contraseña: = "1234"
End Sub
Muchas gracias de antemano
Saludos
Silvina
Tengo una macro con varias hojas, en la hoja "carga de datos" hay un formulario de carga, en la celda C15 una lista desplegable con varias opciones, lo que quiero es si se cumple una de las opciones me copia los datos cargados en el formulario en la hoja que lleva el mismo nombre:
Las opciones de la celda C15 son las siguientes:
Censos
Monografías
Revistas
Serie
Ahora copia todo en la carpeta "datos" pero sería más eficiente si lo copia en la hoja que corresponde.
Mi macro
Opción explícita
Sub Captura_Datos ()
'Comando para que no parpadee
Application.ScreenUpdating = False
«Comando para desproteger hoja
ActiveSheet.Unprotect Password: = "1234"
«Declaración de variables
'
Dim strTitulo As String
Dim Continuar como cadena
Dim TransRowRng As Range
Dim NewRow As Integer
Dim Limpiar como cadena
'
strTitulo = "Inventario Digital"
'
Continuar = MsgBox ("Dar de alta los datos?", VbSí No + vbExclamation, strTitulo)
Si Continuar = vbNo, entonces salga de Sub
'
Establecer TransRowRng = ThisWorkbook.Worksheets ("Datos"). Celdas (1, 1) .Región actual
NewRow = TransRowRng.Rows.Count + 1
Con ThisWorkbook.Worksheets ("Datos")
.Cells (NewRow, 1) .Value = Date
.Cells (NewRow, 2) .Value = ThisWorkbook.Sheets (1) .Range ("C9") 'Base de datos
.Cells (NewRow, 3) .Value = ThisWorkbook.Sheets (1) .Range ("C11") 'Tipo de recurso
.Cells (NewRow, 4) .Value = ThisWorkbook.Sheets (1) .Range ("C13") 'Nombre de archivo
.Cells (NewRow, 5) .Value = ThisWorkbook.Sheets (1) .Range ("C15") 'Carpeta
.Cells (NewRow, 6) .Value = ThisWorkbook.Sheets (1) .Range ("C17") 'Subido a la Web
Terminar con
MsgBox "Alta exitosa", vbInformation, strTitulo
Limpiar = MsgBox ("¿Deseas limpiar los campos de la captura?", Vb Sí, strTitulo)
Si Limpiar = vb Sí, entonces
Con ActiveWorkbook.Sheets (1)
.Range ("C9"). ClearContents
.Range ("C11"). ClearContents
.Range ("C13"). ClearContents
.Range ("C15"). ClearContents
.Range ("C17"). ClearContents
'ClearContents no funciona en celda combinada ...
Terminar con
Más
Terminara si
ActiveSheet.Protect Contraseña: = "1234"
End Sub
Muchas gracias de antemano
Saludos
Silvina