Saltar al contenido

crear lista en excel mediante VBA entre dos números definidos por el usuario.


Recommended Posts

publicado

Hola, me gustaría crear una lisa a partir dos valores dados por el usuario mediante dos inputbox.

de momento tengo esto:

 

 

Sub inputbox_granalcancelista()
    Dim i As Long
    Dim a As Long
    
    
    i = InputBox("introduce el número inicial", "LISTA NÚMEROS", "type here")
    a = InputBox("introduce el número final", "LISTA NÚMEROS", "type here")
    
    Range("A1").Value = i
    
   [AQUÍ NO SÉ QUÉ AÑADIR]
    
    
End Sub
 

publicado

 

Private Sub CommandButton1_Click()
    Dim i As Long
    Dim a As Long

    i = InputBox("introduce el número inicial", "LISTA NÚMEROS", "type here")
    a = InputBox("introduce el número final", "LISTA NÚMEROS", "type here")
    n = a - i
    
    For x = 1 To n + 1
        Cells(x, 1) = i + (x - 1)
    Next x
    
End Sub

Te dejo una posible solución

Prueba.gif

Prueba 1.xlsm

publicado

¡¡MUCHAS GRACIAS!!

me gustaría saber tambien, como ahora estos números ( los de la lista) cumplen o no una condición, es decir, si cumplen o no una funcion VBA que ya tengo programada. Y una vez sabido, que me escriba aquellos que sí cumplen la condición.

--->esta es la función que he programado:

Function granalcance(numero As Long) As Boolean
    
    Dim factor As Long
    Dim multip As Long
    Dim resto As Long
    

    factor = 2
    resto = numero

    If numero = 1 Then
    End If
    Do Until resto = 1
        If resto Mod factor = 0 Then
            multip = 1
            Do
                multip = multip + 1
                
                
                
                DoEvents
            Loop While resto \ factor Mod factor ^ (multip - 1) = 0
            
            If multip > 2 Then
                granalcance = True
            
            Else
                granalcance = False
                
            End If
            
            resto = resto \ factor ^ (multip - 1)
        End If
        
        
        If resto <> 1 Then
            factor = factor + 1
        End If
        
    DoEvents
    Loop

End Function

 

Espero haberme explicado,  gracias.

publicado
Private Sub CommandButton1_Click()
   Dim i As Long
   Dim a As Long
   Dim x As Long
   
   Application.ScreenUpdating = False
   i = InputBox("introduce el número inicial", "LISTA NÚMEROS")
   a = InputBox("introduce el número final", "LISTA NÚMEROS")
   Columns(1).ClearContents
   For i = i To a
     If GranAlcance(i) Then
        x = x + 1
        Cells(x, 1) = i
      End If
   Next
    
End Sub

Y la función:

Function GranAlcance(numero As Long) As Boolean
   Dim factor As Long
   Dim multip As Long
   Dim resto As Long
   
   factor = 2
   resto = numero
   
   Do Until resto = 1
      If resto Mod factor = 0 Then
          multip = 1
          Do
              multip = multip + 1
          Loop While resto \ factor Mod factor ^ (multip - 1) = 0
          If multip > 2 Then
              GranAlcance = True
              Exit Function
          End If
          resto = resto \ factor ^ (multip - 1)
      End If
      If resto <> 1 Then factor = factor + 1
   Loop
End Function

 

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.