Jump to content

Macro para hojas Libro ??


Recommended Posts

Hola buenas.

Tengo esta macro que quisiera que se ejecute en hojas determinadas del libro

Private Sub CommandButton1_Click()

Dim NX As Integer, N2 As Integer
Dim CX As Integer, C2 As Integer, SEL As Integer

If Not IsNumeric(TextBox1) Then
   MsgBox "Cantidad X incorrecta"
   Exit Sub
End If
If Not IsNumeric(TextBox2) Then
   MsgBox "Cantidad 2 incorrecta"
   Exit Sub
End If
If CheckBox1 Then Combinar
Application.ScreenUpdating = False
NX = CInt(TextBox1)
N2 = CInt(TextBox2)
For y = [B18] + 3 To 4 Step -1
   CX = 0: C2 = 0: SEL = 0
   For x = 0 To 13
      If ListBox1.Selected(x) Then
         SEL = SEL + 1
         If Cells(x + 1, y) = "X" Then CX = CX + 1
         If Cells(x + 1, y) = "2" Then C2 = C2 + 1
      End If
   Next
   If SEL > 0 Then
      If Not (CX = NX And C2 = N2) Then
         Cells(1, y).Resize(14, 1).Delete shift:=xlToLeft
         [B18] = [B18] - 1
      End If
   End If
Next
Application.ScreenUpdating = True
End Sub

 

Un Saludo.

Link to comment
Share on other sites

eugeniocol

 

Vayamos por partes:

Supuesto: Todas las Hojas, donde se va a ejecutar la macro, deben estar estructuradas de la misma manera.

Parece que se ejecuta desde un Formulario ya que veo que hay Textbos, Listbox, etcc...

Pero tambien veo un bucle que ataca las celdas directamente (Cells(x + 1....)

Entonces lo unico que necesita la macro es saber con que hoja está trabajando. Pues pasemos le una variable con la hoja donde se va a ejecutar.

Crearia un Procedimiento Sub en un modulo independiente. Y copiaria todo lo que has puestoy cambiaria lo que te pongo

Sub TuNombreDeProcedimiento (TuHoja as Sheets)

'Todo

.........

With TuHoja

.Cells(x+1, ....

end with

Y lo Llamas desde el procedimeitno privado 'Al Hacer Click'

Private Sub CommandButton1_Click()

call TuNombreDeProcedimiento (ElNombreDeLaHojaApasar)

End Sub

Espero Te sirva en tu desarrollo

Saludos

 

Link to comment
Share on other sites

Hace 8 horas, ikanni dijo:

eugeniocol

 

Vayamos por partes:

Supuesto: Todas las Hojas, donde se va a ejecutar la macro, deben estar estructuradas de la misma manera.

Parece que se ejecuta desde un Formulario ya que veo que hay Textbos, Listbox, etcc...

Pero tambien veo un bucle que ataca las celdas directamente (Cells(x + 1....)

Entonces lo unico que necesita la macro es saber con que hoja está trabajando. Pues pasemos le una variable con la hoja donde se va a ejecutar.

Crearia un Procedimiento Sub en un modulo independiente. Y copiaria todo lo que has puestoy cambiaria lo que te pongo

Sub TuNombreDeProcedimiento (TuHoja as Sheets)

'Todo

.........

With TuHoja

.Cells(x+1, ....

end with

Y lo Llamas desde el procedimeitno privado 'Al Hacer Click'

Private Sub CommandButton1_Click()

call TuNombreDeProcedimiento (ElNombreDeLaHojaApasar)

End Sub

Espero Te sirva en tu desarrollo

Saludos

 

Voy a ver que saco de esto

Salud2....

 

Link to comment
Share on other sites

Archived

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

  • 58 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Files

  • Download Statistics

    • Files
      166
    • Comments
      89
    • Reviews
      25

    Latest File
    By pegones1

    1    0

  • Crear macros Excel

  • Posts

    • Buenos días a todos; -Con la macro que adjunto paso el valor formateado con dos decimales a la celda pero veo que si voy a la barra de fórmulas me siguen apareciendo más de dos decimales.  Hay alguna otra solución? Me interesa que solo sean dos decimales porque después estos datos los paso a Access y  me está cargando todos los decimales. Saludos  Formato.xlsm
    • Hola, tengo una consulta que no se resolver con listas desplegables y sin macros. El caso sería que cuando estemos en la hoja SUBFAMILIA si por ejemplo nos situamos en la fila 3 columna A y desplegamos la lista desplegable y elegimos 0102.BARRAS PERFORADAS, que automáticamente me llene las celdas correspondientes de Campo1, Campo2, Campo3…….. con los datos que se encuentran en la hoja CAMPOS columna C correspondientes a 0102.BARRAS PERFORADAS en este caso son 13 pero pueden llegar hasta 20. En el caso de añadir nuevas subfamilias en esta hoja previa creación de sus campos correspondientes en la hoja Campos tendría que hacer lo mismo, gracias MUESTRA.rar
    • Prueba así: '----------------------------------------- APIS ELIMINAR BARRA TITULO FORMULARIO Private Declare PtrSafe Function FindWindow Lib "User32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare PtrSafe Function GetWindowLong Lib "User32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long Private Declare PtrSafe Function SetWindowLong Lib "User32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare PtrSafe Function DrawMenuBar Lib "User32" (ByVal hwnd As Long) As Long Private Sub UserForm_Initialize() 'ELIMINAR BARRA TITULO FORMULARIO Dim lStyle As Long, hMenu As Long, mhWndForm As Long mhWndForm = FindWindow("ThunderDFrame", Me.Caption) lStyle = GetWindowLong(mhWndForm, -16) lStyle = lStyle And Not &HC00000 SetWindowLong mhWndForm, -16, lStyle DrawMenuBar mhWndForm '---------------------------------------------------- End Sub  
    • Hola buenas a todos. Hace unos cuantos días estoy intentando trabajar con datos filtrados porque necesito que los datos filtrados en la columna A (No. Pre Factura) quisiera que se concatenaran, he probado varias formas, pero por desconocimiento no he logrado nada, cuando lo intento me concatena todos los datos estén visibles o no. Lo mismo con las columnas G, I, K, M, O, Q (COD1, COD2, COD3, COD4, COD5, COD6) que busco la forma de unir todos los códigos iguales y que me sume sus respectivas cantidades probando con tablas dinámicas, con la función subtotales, pero igual no lo he logrado. Les agradecería si me ayudaran a resolver mi problema. Gracias Dejo aquí el documento mi problema está en la Hoja 2. trabajo.xlsm
    • Sí, sí puedes. Solo selecciona el título en el gráfico y con él seleccionado en la barra pon "=" e indicas la celda a la que quieres hacer referencia.
  • Recently Browsing

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

Privacy Policy