¿Por qué esta macro no copia los datos en la fila si hay una columna con valor?
La siguiente macro publicada aquí; no graba los datos diligenciados en el formulario en la hoja "Captura" en la fila correcta de la hoja "Datos", si la columna tiene un valor diligenciado previamente (ver la imagen de abajo). ¿Es posible indicarle a la macro que solo utilice las columnas (1 a 11) y pueda de esta forma grabar los datos en la fila correcta? La idea es fijar un valor en toda la columna 12 u L. Pero hasta ahora no es posible porque siempre busca la fila que no tenga ningún valor en la columna.
Option Explicit Sub Captura_Datos() 'Declaración de variables ' Dim strTitulo As String Dim Continuar As String Dim TransRowRng As Range Dim NewRow As Integer Dim Limpiar As String ' strTitulo = "Atención Telefónica" ' Continuar = MsgBox("Dar de alta los datos?", vbYesNo + vbExclamation, strTitulo) If Continuar = vbNo Then Exit Sub ' Set TransRowRng = ThisWorkbook.Worksheets("Datos").Cells(1, 1).CurrentRegion NewRow = TransRowRng.Rows.Count + 1 With ThisWorkbook.Worksheets("Datos") .Cells(NewRow, 1).Value = Date .Cells(NewRow, 2).Value = Format(Date, "dd") .Cells(NewRow, 3).Value = Format(Date, "mm") .Cells(NewRow, 4).Value = Format(Date, "yy") . Cells(NewRow, 5).Value = ThisWorkbook. Sheets(1). Range("C6") . Cells(NewRow, 6).Value = ThisWorkbook. Sheets(1). Range("C9") . Cells(NewRow, 7).Value = ThisWorkbook. Sheets(1). Range("C12") . Cells(NewRow, 8).Value = ThisWorkbook. Sheets(1). Range("C15") . Cells(NewRow, 9).Value = ThisWorkbook. Sheets(1). Range("F9") . Cells(NewRow, 10).Value = ThisWorkbook. Sheets(1). Range("F12") . Cells(NewRow, 11).Value = ThisWorkbook. Sheets(1). Range("F15") End With ' MsgBox "Alta exitosa.", vbInformation, strTitulo Limpiar = MsgBox("Deseas limpiar los campos de la captura?", vbYesNo, strTitulo) If Limpiar = vbYes Then With ActiveWorkbook.Sheets(1) . Range("C6"). ClearContents . Range("C9"). ClearContents . Range("C12"). ClearContents . Range("C15"). ClearContents . Range("F9"). ClearContents . Range("F12"). ClearContents 'ClearContents no funciona en celda combinada... .Range("F15").Value = "" End With Else End If ' End Sub
1 respuesta
Respuesta de Dante Amor
1