Jump to content

Utilizar valor unico en un for


Galactico

Recommended Posts

buenas tardes, estoy trabajando con la siguiente macro, estoy aprendiendo a usar doble for, pero aun no logro ejecutarla como quiero, básicamente necesito que para un valor de y, utilice un valor único de x (que sea creciente en 1 unidad y no se vuelva a repetir en el siguiente valor de y)

al ejecutar la macro paso a paso, para un valor y, me toma todos los valores de x en una misma casilla y al final solo me muestra el ultimo valor x, espero que se pueda entender, en el archivo adjunto, esta la macro con los datos y abajo esta a lo que quiero llegar

 

Sub Prueba1()
Dim x As Integer, y As Integer
    
    For y = 1 To 10
        If Not (Cells(y, 4)) Like "Hola" Then
For x = 1 To 10
                On Error Resume Next
                Cells(y, 8).Value = Range("e" & CStr(x))
                Next
End If
Next

End Sub

muchas gracias

Prueba1.xlsm

Link to post
Share on other sites

Hola

Propuesta:

Sub Prueba1()
Dim x, xx, y As Integer
    
xx = 1
For y = 1 To 10
    If Not (Cells(y, 4)) Like "Hola" Then
        For x = xx To 10
            Cells(y, 8).Value = Range("e" & CStr(x))
            Exit For
        Next x
        xx = xx + 1
    End If
Next y

End Sub

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
  • Crear macros Excel

  • Posts

    • Esto: If Dir(ActiveWorkbook.Path & "\tb_Cobros.txt") <> "" Then existe = True Sustituye a esto: ruta = ActiveWorkbook.Path archivo = Dir(ruta & "\*.*") Do Until archivo = "" coleccion_archivos.Add archivo archivo = Dir() Loop For i = coleccion_archivos.Count To 1 Step -1 If coleccion_archivos(i) = "tb_Cobros.txt" Then existe = True End If Next i  
    • Hola Seguro lo tuyo es un filtro avanzado... busca por aquí en el foro, sobre ese tema, hay variedad de soluciones que hemos aportado con el tiempo   Saludos 
    • Hola Si bien es cierto que esto se puede hacer con Vba, lo que intentas hacer es improductivo, desde el punto de vista sobre el uso adecuado de Excel Te dejo una alternativa para que puedas filtrar a gusto, sin necesidad de ir buscando dentro de la misma base de datos esos criterios de filtro   Saludos  Libro3.xlsx
    • Buenas, Estoy intentando realizar un macros que me lea los registros que cumplan una condición y me los pegue en otra hoja en la celda que le marco. He probado con esta macro, pero no me lo hace correcto me da error Sub Copiar_datos()  
    • Buenas tardes; -He conseguido algo con este código, imagino que se podrá mejorar . -Si a alguno se le ocurre algo mejor que me lo diga. Saludos. Private Sub btn_Txt_Click(): On Error Resume Next Dim ruta As String, i As Integer, existe As Boolean, coleccion_archivos As New Collection, archivo As String Dim Sep As String, x As Integer, z As Integer, Cuenta As Integer ruta = ActiveWorkbook.path archivo = Dir(ruta & "\*.*") Do Until archivo = "" coleccion_archivos.Add archivo archivo = Dir() Loop For i = coleccion_archivos.Count To 1 Step -1 If coleccion_archivos(i) = "tb_Cobros.txt" Then existe = True End If Next i If existe = True Then z = MsgBox("Ya existe el archivo de texto.¿Deseas eliminardo?", vbYesNo) If z = vbYes Then Kill ActiveWorkbook.path & "\tb_Cobros.txt" existe = False Else Open ActiveWorkbook.path & "\tb_Cobros.txt" For Append As #1 End If End If If existe = False Then Open ActiveWorkbook.path & "\tb_Cobros.txt" For Output As #1 MsgBox "El archivo txt fue creado" End If Cuenta = frm_Cobros.ListBox1.ListCount Sep = ";" Print #1, "Fecha: " & Date For x = 0 To Cuenta - 1 If Me.ListBox1.Selected(x) = True Then MsgBox Me.ListBox1.List(x), vbInformation, "Registro" TextBox0 = ListBox1.List(x, 0) TextBox50 = ListBox1.List(x, 1) TextBox51 = ListBox1.List(x, 2) TextBox4 = Format(ListBox1.List(x, 3), "dd/mm/yyyy") TextBox5 = ListBox1.List(x, 4) TextBox10 = ListBox1.List(x, 5) TextBox6 = ListBox1.List(x, 6) TextBox11 = ListBox1.List(x, 7) TextBox7 = ListBox1.List(x, 8) TextBox8 = ListBox1.List(x, 9) TextBox12 = ListBox1.List(x, 10) Print #1, TextBox0 & Sep & TextBox50 & Sep & TextBox51 & Sep & TextBox4 & Sep & TextBox5 & Sep & TextBox10 & Sep & TextBox6 & Sep & TextBox11 & Sep & TextBox7 & Sep & TextBox8 & Sep & TextBox12 End If Next x Print #1, "-" Close #1 End Sub  
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy