Saltar al contenido

Variables en Macro + abecedario que de A pase a B, C, D


segalo

Recommended Posts

publicado

 

Buena Tarde 

 

Tengo una macro en la que tengo algunas variables, una de ellas string pero es para recorrer las celdas, la inicializo con E, la siguiente debe ser F, G, H, I asi consecutivo para que realice una suma 

al avanzar en la macro de cada una de las celdas, corriendo el filtro, pero esta variable no he podido, hacer que pueda decirle next y sea la siguiente letra del alafabeto, como podria hacer esto ? 

 

Gracias 

 

Esta es la macro  

 

Dim n&, cCriterio$, H&, LE As String

    j = 5
    LE = "E"
    
    For H = 5 To 10

    For n = j To 19
        If n = j Then cCriterio = "<>0" Else cCriterio = "0"
        ActiveSheet.Range("$A$11:$AH$" & fila).AutoFilter Field:=n, Criteria1:=cCriterio
    Next n

'suma
        Range(LE & 10).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(LE & 11).Select
    Selection.End(xlDown).Select
    Range(LE & fila).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-482]C:R[-2]C)"
    Range(LE & fila).Select
    Selection.Copy
    Selection.End(xlUp).Select
    Range(LE & 9).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        


    Rows("11:11").Select
    ActiveSheet.ShowAllData
    Range("A10").Select
    
   LE = "F"
    
    j = j + 1
    n = j
          
          Next H

 

Gracias 

 

 

publicado

Gracias Edgar 

 

Adjunto el archivo donde se puede ver el detalle de la macro, lo que requiero es poder hacer que la variable LE que empieza en E, su siguiente valor sea F, luego G y asi consecutivamente hasta la Y

 

Gracias

Variable.xlsm

publicado

Leopoldo Gracias, pero me sirve porque en la formula de la suma que es donde la uso, no puedo  poner lo asi ya que se va a la columna N:

Range( n & 10).Select 

 

Range(LE & 10).Select
    Range(Selection, Selection.End(xlDown)).Select
    Range(LE & 11).Select
    Selection.End(xlDown).Select
    Range(LE & fila).Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R[-482]C:R[-2]C)"
    Range(LE & fila).Select
    Selection.Copy
    Selection.End(xlUp).Select
    Range(LE & 9).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

 

publicado

 

Leopoldo, ya valide y no funciona, ademas el cells no me permite sacar la suma del rango de la columna.

 

la suma es porque se requiere filtrar la columna con valores inicial, osea la E y las demas filas filtrarlas con 'cero' y sacar la suma de esos filtros e irlos dejando en la fila 9, en el siguiente ciclo toma es los valores de la siguiente columna la F y los demas en 'ceros' asi consecutivamente.

 

Gracias  

publicado

Hola segalo,

Te voy a creer, por que no lo he realizado como lo tienes... pero...

Te hice este FORCITO... y esta seria una manera, otra seria con For Each...o...

 

Sub SigCol_LBV()
Dim aCol, n&, LE$
    aCol = Array("E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y")
    For n = LBound(aCol) To UBound(aCol)
        LE = aCol(n)
        MsgBox LE
    Next n
End Sub

Saludos

 

publicado

Con independencia de que la macro se puede enfocar de otra forma, simplemente:

For Each celda In Range("E10:Y10")
   celda.select 'Fila 10
...
   celda.Offset(1).Select  'Fila 11
...
   celda.Offset(-1).select 'Fila 9
...
Next

 

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.