Jump to content

paikerr

Members
  • Content Count

    129
  • Joined

  • Last visited

Everything posted by paikerr

  1. Hola a todxs, Estoy intentando hacer lo siguiente: "He construido una pequeña macro al estilo RESET.css, por la que reseteo el formato de la página activa. Dentro de esta macro, he declarado las variables más utilizadas del siguiente modo: Sub RESET() ' DECLARACION DE VARIABLES ' Dim Fila, Columna As Byte Dim nEntero As Integer ' APLICAR FORMATO ' Cells.Select With Selection .Hyperlinks.Delete .Font.Name = "Arial" .HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter .Borders.LineStyle = xlNone .UnMerge .WrapText = True End With End Sub El caso es que cuando llamo a la macro desde otro procedimiento, no se exportan bien las variables y me las reconoce todas como tipo Variant. Por ejemplo: Sub PRUEBAS() Call ThisWorkBook.RESET Columna = 1 For Fila = 1 To 25 If Cells(Fila, Columna) = "Hola Mundo" Then Columna = Columna + 1 Next Fila End Sub A ver, ya sé que lo ideal es declararlas directamente desde Declaraciones y marcarlas como tipo Public. Sin embargo, yo lo que quiero es introducirlas dentro de la macro RESET en el módulo ThisWorkbook, o en su defecto en la zona de Declaraciones de ThisWorkbook, pero no sé si existe algún modo de poder llamarlas directamente desde otros módulos. Gracias de antemano por vuestra atención. Saludos.
  2. Gracias a los dos. Saludos.
  3. Hola, Necesito crear una macro con un bucle For tal que cuando descubra que la primera celda cumple cierto criterio, el resto de las celdas las marque en base a ese criterio sin necesidad de abandonar el bucle For. Por ejemplo: Dim Fila_actual, Fila_final As Integer For Fila_actual = 1 To Fila_final If Cells(Fila_actual, 1) = "VERDADERO" Then Cells(Fila_actual, 2).FormulaR1C1 = "SEGOVIA" Else Cells(Fila_actual, 2).FormulaR1C1 = "MADRID" End if Next Fila_actual Es decir, el código anterior lo que haría sería recorrer cada una de las celdas contenidas en la columna 1, y en el momento en el que detecta que el valor es igual a "VERDADERO", escribe en la columna 2 el texto "SEGOVIA". De manera que si en las celdas pone "FALSO", escribiría "MADRID". Yo lo que quiero es que en el momento en el que descubra la primera celda que ponga "VERDADERO", el resto de las celdas integradas dentro del bucle For ponga también "SEGOVIA", con independencia de si dentro de Cells(Fila_actual, 1) pone "VERDADERO" o "FALSO". Gracias de antemano.
  4. Hola, quiero pasar el número de una celda mediante el valor acumulado en una variable seleccionada por InputBox, pero el programa me indica un error. Por favor, si alguien me puede echar una mano, se lo agradecería mucho. Os dejo a continuación con el código fuente. Gracias. ------------------------------------- x ------------------------------------- Sub TOOLS() ' Selección de las celdas de origen-destino: Dim TOOLS As Integer Dim Entrada, Llegada As Integer ' Selección de la celda de origen: origen: Mensaje1 = "Por favor, introduzca el número de celda inicial" Titulo1 = "SELECCIÓN DE LA CELDA DE ORIGEN" Estandar1 = 1 Entrada = InputBox(Mensaje1, Titulo1, Estandar1) If IsNumeric(Entrada) = False Then GoTo origen ' Selección de la celda de destino: destino: Mensaje2 = "Por favor, introduzca el número de celda final" Titulo2 = "SELECCIÓN DE LA CELDA DE DESTINO" Estandar2 = 1 Llegada = InputBox(Mensaje2, Titulo2, Estandar2) If IsNumeric(Llegada) = False Then GoTo destino ' Extensión de las fórmulas sobre el resto de celdas: Range(Cells(Entrada, 1), Cells(Entrada, 2)).AutoFill Destination:=Range(Cells(Entrada, 1), Cells(Llegada, 2)) End Sub ------------------------------------- x -------------------------------------
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png