Organizar filas en VBA tabla dinámica

2 envíos / 0 nuevos
Último envío
gabriellahunter
Imagen de gabriellahunter
Offline
última acción: Hace 4 años 8 meses
alta: 29/07/2019 - 01:45
Puntos: 25
Organizar filas en VBA tabla dinámica

Hola. 

He creado un formulario para que se refleje en una hoja de excel. El botón lo he programado como muestro abajo. Deseo que la información escrita en ese formulario empiece en la fila que hay después del último dato de una tabla dinámica. Inicialmente en la tabla dinámica hay 9 lineas llenas con su respectiva información, pero cuando corro el formulario, la información que ingreso aparece en en la fila 23. Espero que me pueda alguien ayudar. 

 
Gracias. Smile
 
Private Sub Agregar_Click()
If TextBox1.Value = "" Then
Else
 fil = Cells(236, 2) 
    Cells(fil, 93) = TextBox1.Value
    Cells(fil, 94) = TextBox2.Value
    Cells(fil, 95) = TextBox9.Value
    Cells(fil, 96) = TextBox5.Value
    Cells(fil, 97) = TextBox7.Value
    Cells(fil, 98) = TextBox8.Value
 
 TextBox1.Value = ""
 TextBox2.Value = ""
 TextBox9.Value = ""
 TextBox5.Value = ""
 TextBox7.Value = ""
 TextBox8.Value = ""
 
 fil = fil + 1
 Cells(236, 2) = fil
 End If
End Sub
 

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 22 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
según el código de tu botón,

según el código de tu botón, almacenas el número de fila en la celda Cells(236, 2) 

y ese valor lo vas aumentando cada vez que anotas,

fil = fil + 1 ' aumentas el valor

Cells(236, 2) = fil  'guardas el valor acutalizado en  Cells(236, 2)

Entiendo que lo que quieres es anotar en la fila siguiente. para ello bastará con que cuentes las filas de esa tabla (que no es una tabla dinámica, sino una tabla de datos)

suponiendo que esta tabla sea la única que hay en esa hoja del libro, yo sustituiría eso de la celda auxiliar Cells(236, 2) por esto otro

With ActiveSheet.Listobjects(1).Range

 fil=.Row+.Rows.Count

End With

fil tomaría el valor de la fila siguiente a la tabla.

En tu captura de pantalla veo que tienes una fila de totales, así que tenlo en cuenta si vas a anotar ahí algo; entiendo que quieres anotar más datos, no cosas en la fila de totales o debajo de ésta.

 

 

 

 

------
Ya sé Excel, pero necesito más.