Quisiera saber como escojo un rango de n filas y m columnas para insertar datos en dicho rango desde unos textbox

Set hojadestino = ThisWorkbook.Sheets(nombrehoja).Range("A1").CurrentRegion
nuevafila = hojadestino.Rows.Count + 1
With ThisWorkbook.Sheets(nombrehoja)
.Cells(nuevafila, 1).Value = Me.ComboBox9.Value
.Cells(nuevafila, 2).Value = fecha

Este código funciona bien pero si tengo un valor en la celda D3 hasta allí sera mi rango completo y comenzara a lanzar los valores desde la A3 para abajo en vez de la A2 que es donde quiero

2 respuestas

Respuesta
1

Esta es tu macro

Set hojadestino = ThisWorkbook.Sheets(nombrehoja).Range("A1").CurrentRegion
nuevafila = hojadestino.Rows.Count + 1
With ThisWorkbook.Sheets(nombrehoja)
.Cells(nuevafila, 1).Value = Me.ComboBox9.Value
. Cells(nuevafila, 2).Value = fecha

Armala de esta forma para que tome la ultima fila con datos

Set HojaDestino = ThisWorkBook.Sheets("NomHoja")
uF = H1.Range("A" & Rows.Count).End(xlUp).CurrentRegion.Address
UltF = Split(uF, "$"): UltF = UltF(4)
NFila = UltF + 1
With ThisWorkbook.Sheets(NomHoja)
   .Cells(Nfila, 1).Value = Me.ComboBox9.Value
   . Cells(Nfila, 2).Value = fecha

Prueba y me avisas...

Recuerda cambiar el nombre de la hoja para que funcione

Perdon me comi 2 correcciones jeje yo puse h1 y tu hoja destino seria asi

Set HojaDestino = ThisWorkbook.Sheets("NomHoja")
uF = HojaDestino.Range("A" & Rows.Count).End(xlUp).CurrentRegion.Address
UltF = Split(uF, "$"): UltF = UltF(4)
Nfila = UltF + 1
With HojaDestino
   .Cells(Nfila, 1).Value = Me.ComboBox9.Value
   .Cells(Nfila, 2).Value = fecha
Respuesta
1

Supongo que así tienes tus datos, y que la macro toma como llenos las columnas A2 y b2 y empieza a poner los datos a partir de la celda B4

y lo que quieres es esto que llene los cuadros vacíos, si este es el caso y entendí bien

Entonces esta es la macro que ocupas, adáptalo a tu macro, la variable nombrehoja la puedes quitar esa la puse yo para no crear un formulario

Sub test()
nombrehoja = "hoja1"
Set hojadestino = ThisWorkbook.Sheets(nombrehoja).Range("A1").CurrentRegion
cuenta = WorksheetFunction.CountBlank(hojadestino.Columns(1))
If cuenta > 0 Then
    nuevafila = hojadestino.Rows.Count - cuenta + 1
Else
    nuevafila = hojadestino.Rows.Count + 1
End If
With ThisWorkbook.Sheets(nombrehoja)
.Cells(nuevafila, 1).Value = 9
.Cells(nuevafila, 2).Value = 10
End With
set hojadestino=nothing
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas