Jump to content

Insertar filas en blanco en tablas alineadas verticalmente


Recommended Posts

Buenas noches a todos

 

Necesito ayuda para insertar en una determinada tabla de una serie de ellas alineadas verticalmente la correspondiente fila en blanco para añadir datos en la tabla que corresponda. Cuando la tabla es única, no tengo problema. En el adjunto lo explico. Gracias.

Un saludo

 

             
                 
                 
         
           
                 
                 
             
                 
                 
                 
                 
                 
                 
                 
               
 
     
 
   
                 
                 
           
               
                 
     
                 
                 
                 

Consulta.xlsx

Link to post
Share on other sites

Gracias por tu respuesta. Creo que no he sabido expresar la exposición de mi necesidad. Voy a intentarlo,

Consideramos una sola tabla y una sola persona.

Desde una pantalla de inicio introduzco los datos según se van produciendo y la macro me va colocando los datos en la linea vacia de la tabla siguiente a la última rellena siguiendo la identificación de la línea con las sentencias que indico.

Al tener una o más tablas alineadas en las mismas columnas cuando la sentencia busca la última linea vacía busca en la columna AI desde la última celda hacia arriba encontrando como fila vacía la de la última tabla que exista cuando lo que quiero es que la localice en otra tabla.

He intentado introducir el concepto Range(Xx:Yy) para la tabla en cuestión para que la sentencia buscara desde la celda Yy pero no he sido capaz de encontrar la forma.

No sé si he conseguido explicarte mi problema.

Disculpas por haberte hecho trabajar en vano. Gracias

Un saludo

 

Link to post
Share on other sites

Claro!

Te adjunto un fichero con el cuadro de entrada de datos en la Hoja2 y la macro y los cuadros en la Hoja1.

La situación real es controlar cuando meten los goles los jugadores de un equipo. La descripción del problema es la ya realizada. Planteé la situación como inicialmente pensando que era mas sencillo.

Gracias

 Un saludo

Consulta.xlsx

Link to post
Share on other sites

Hola, prueba esto y dime el resultado, tienes que asegurarte que el alias que usas en la introducción de datos es idéntico al nombre del jugador en la hoja Goles.

 

‘Identifico el jugador             
                 
If alias = Sheets("Goles").Range("BD10") Then        
                 
  ‘Busca la ultima fila vacía          
            If Sheets("Goles").Range("BE11") = "" Then      
                 ultimafilag = 11          
            Else              
                ultimafilag = Sheets("Goles").Range("BE" & Rows.Count).End(xlUp).Row + 1
            End If              
                 
                 
else If alias = Sheets("Goles").Range("BD35") Then        
                 
‘Busca la ultima fila vacía            
            If Sheets("Goles").Range("BE36") = "" Then      
                 ultimafilag = 36          
            Else              
                ultimafilag = Sheets("Goles").Range("BE" & Rows.Count).End(xlUp).Row + 1
            End If              
                 
                 
else                 
                 
‘Busca la ultima fila vacía            
            If Sheets("Goles").Range("BE61") = "" Then      
                 ultimafilag = 61          
            Else              
                ultimafilag = Sheets("Goles").Range("BE" & Rows.Count).End(xlUp).Row + 1
            End If              
End If                
Link to post
Share on other sites

Hola Luis,

Gracias por tu ayuda. El problema continua. El primer registro que guardo de cualquier jugador me lo deja en su sitio pero, los siguiente los deja en la última fila del último cuadro.

Creo que se debería considerar el rango de cada cuadro para buscar en el la última fila vacía pero no se ni hacerlo ni si se puede.

Un saludo

 

Link to post
Share on other sites

Hola Luis,

El problema sigue igual. Y es que cuando ejecuta el End(xlUp) em pieza a buscar desde la última celda de la columna en cuestión y lo primero que encuentra vacío es la última fila vacía de la última tabla que exista; si solo existiese una lo haría bien.

Un saludo

 

Link to post
Share on other sites

Claro siempre hace lo mismo cuando la primera no esta vacia :)

      ultimafilag = Sheets("Goles").Range("BE" & Rows.Count).End(xlUp).Row + 1

sustituye por

      ultimafilag = Sheets("Goles").Range("BE31" ).End(xlUp).Row + 1

      ultimafilag = Sheets("Goles").Range("BE56" ).End(xlUp).Row + 1

      ultimafilag = Sheets("Goles").Range("BE81" ).End(xlUp).Row + 1

Link to post
Share on other sites

Bueno Luis creo que lo has conseguido. Los dos primeros registros los ha puesto como debe. Sólo un pero 😌, cuando he ido a probar con otro jugador me ha salido este error:

imagen.png.f4f71e517da9976e2f7eac6bd96c24a7.png

 

imagen.png.e05d227b6b06589e71bb79e4a862a11e.png

¿A què es debido? ¿Porquê no sale siempre? ¿Tiene arreglo?

Gracias.

Un saludo

 

Link to post
Share on other sites

Hola @Nori777, no se si entendí pero puedes probar con este código:

Sub registrar()
    Dim jugador     As Range
    Dim Franjas     As Variant
    
    jug = Sheets("Hoja2").Range("Q36")
    
    With Sheets("Hoja1")
        
        Set jugador = .Range("BD:BD").Find(jug, , , xlWhole)
        
        If jugador Is Nothing Then Exit Sub
        
        ult = jugador.End(xlDown).Offset(0, 1).End(xlUp).Row + 1
        
        .Cells(ult, "BE") = Sheets("Hoja2").Range("M36")
        .Cells(ult, "BF") = Sheets("Hoja2").Range("O36")
        
        Franjas = Sheets("Hoja2").Range("L40:Q40")
        
        .Range(.Cells(ult, "BG"), .Cells(ult, "BL")) = Franjas
        
    End With
    
End Sub

 Funciona en el ultimo archivo que subiste de ejemplo

Por las dudas dejo el archivo también.

Saludos a todos!

Consulta.xlsm

Link to post
Share on other sites
Hace 8 minutos , Nori777 dijo:

Gracias AlexanderS. No puedo porobarlo por el error '1004' que incluí en mi contestación anterior a Luis Caballero. Cuando alguien me ayude a depurarlo lo probaré y te diré el resultado.

Gracias

 

Un saludo

Pero probaste abrir el archivo y ejecutar la macro?, el error 1004 regularmente es porque un nombre no definido o alguna comilla faltante etc.

Link to post
Share on other sites
  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

Important Information

Privacy Policy