muy buen video, mi pregunta es tengo una macro de vba que me agrega datos masivos pero cuando quiero insertar datos en la segunda columna me los manda abajo y no al principio como en la columna 1, cual seria la solución, codigo: Sub AltaMasiva() Dim hojaOrigen As Worksheet Dim tablaOrigen As ListObject Dim hojaDatos As Worksheet Dim tabla As ListObject Dim nuevaFila As ListRow Dim filasOrigen, i Dim pregunta As Byte Set hojaOrigen = ThisWorkbook.Sheets("Registro") Set tablaOrigen = hojaOrigen.ListObjects("registros") filasOrigen = tablaOrigen.ListRows.Count Set hojaDatos = ThisWorkbook.Sheets("Dias") Set tabla = hojaDatos.ListObjects("dias") For i = 1 To filasOrigen Set nuevaFila = tabla.ListRows.Add
With tablaOrigen.ListRows(i) nuevaFila.Range(1) = .Range(1).Value nuevaFila.Range(2) = .Range(2).Value nuevaFila.Range(3) = .Range(3).Value nuevaFila.Range(4) = .Range(4).Value nuevaFila.Range(5) = .Range(5).Value nuevaFila.Range(6) = .Range(6).Value nuevaFila.Range(7) = .Range(7).Value nuevaFila.Range(8) = .Range(8).Value End With Next i MsgBox "Se guardaron los valores en tabla destino", vbInformation pregunta = MsgBox("Deseas limpiar los valores de la tabla registro?", vbYesNo + vbQuestion) If pregunta = vbNo Then Exit Sub If tablaOrigen.ListRows.Count >= 1 Then tablaOrigen.DataBodyRange.Delete End If End Sub
Muy interesante y buena explicación. Gracias.
Muy buena explicación!! Un suscriptor más!! Saludos
Muchas gracias Arath , saludos!!
Muy bueno. Gracias.
Excelente ejercicio
Gracias!!!
Gracias por tú visita, saludos!
Que bucles son mas rapidos?
muy buen video, mi pregunta es tengo una macro de vba que me agrega datos masivos pero cuando quiero insertar datos en la segunda columna me los manda abajo y no al principio como en la columna 1, cual seria la solución, codigo:
Sub AltaMasiva()
Dim hojaOrigen As Worksheet
Dim tablaOrigen As ListObject
Dim hojaDatos As Worksheet
Dim tabla As ListObject
Dim nuevaFila As ListRow
Dim filasOrigen, i
Dim pregunta As Byte
Set hojaOrigen = ThisWorkbook.Sheets("Registro")
Set tablaOrigen = hojaOrigen.ListObjects("registros")
filasOrigen = tablaOrigen.ListRows.Count
Set hojaDatos = ThisWorkbook.Sheets("Dias")
Set tabla = hojaDatos.ListObjects("dias")
For i = 1 To filasOrigen
Set nuevaFila = tabla.ListRows.Add
With tablaOrigen.ListRows(i)
nuevaFila.Range(1) = .Range(1).Value
nuevaFila.Range(2) = .Range(2).Value
nuevaFila.Range(3) = .Range(3).Value
nuevaFila.Range(4) = .Range(4).Value
nuevaFila.Range(5) = .Range(5).Value
nuevaFila.Range(6) = .Range(6).Value
nuevaFila.Range(7) = .Range(7).Value
nuevaFila.Range(8) = .Range(8).Value
End With
Next i
MsgBox "Se guardaron los valores en tabla destino", vbInformation
pregunta = MsgBox("Deseas limpiar los valores de la tabla registro?", vbYesNo + vbQuestion)
If pregunta = vbNo Then Exit Sub
If tablaOrigen.ListRows.Count >= 1 Then
tablaOrigen.DataBodyRange.Delete
End If
End Sub