Jump to content

Antoni

Members
  • Content Count

    10,078
  • Joined

  • Last visited

  • Days Won

    542

Antoni last won the day on December 9

Antoni had the most liked content!

About Antoni

  • Rank
    Antoni
  • Birthday 04/16/1951

Profile information

  • Gender
    Hombre
  • Localización:
    Galicia (UTC+1) Excel 2016

Converted

  • Campos
    ;

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Con fórmulas no se, pero te adjunto una pequeña macro de evento. Haz doble-click en cualquier celda de la columna B (B2 en el ejemplo que has subido) La macro solo actúa si la siguiente fila está vacía. ejemplo (4).xlsm
  2. Casi, casi, lo mismo que JSDJSD: Sub Resumen() Application.ScreenUpdating = False Hoja2.Range("A12:AI" & Hoja2.Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents For x = 10 To Hoja1.Range("A" & Rows.Count).End(xlUp).Row For y = 5 To 11 Set código = Hoja2.Columns("A").Find(Hoja1.Range("A" & x), , xlValues, xlWhole) If Hoja1.Cells(x, y) = 100 Then Set fecha = Hoja2.Rows(10).Find(Hoja1.Cells(8, y), , xlValues, xlWhole) If Not fecha Is Nothing Then If Not código Is Nothing Then fila = código.Row Else fila = Hoja2.Range("A" & Rows.Count).End(xlUp).Row + 1 Hoja2.Range("A" & fila) = Hoja1.Range("A" & x) Hoja2.Range("B" & fila) = Hoja1.Range("B" & x) Hoja2.Range("C" & fila) = Hoja1.Range("C" & x) Hoja2.Range("D" & fila) = Hoja1.Range("D" & x) End If Hoja2.Cells(fila, fecha.Column) = 100 End If End If Next Next Hoja2.Activate End Sub
  3. Sería una contradicción, si tienes el sistema para protegerte de las macros activado y resulta que puedes anularlo por medio de una macro, no tendría sentido que existiera esa protección. ¿No te parece? Es como si tienes una contraseña y tuvieras un botón para anularla. ¿De que serviría?
  4. Si lo que pretendes hacer es cambiar el CodeName de una hoja: ActiveWorkbook.VBProject.VBComponents(Sheets("Hoja1").CodeName).Name = "NuevaHoja1"
  5. He añadido un control ScrollBar ActiveX (Ficha del programador\Diseño\Insertar) y he añadido la macro siguiente en la hoja. Private Sub ScrollBar1_Change() ActiveSheet.Unprotect Password:="" [A5] = ScrollBar1 Barra ActiveSheet.Protect Password:="" End Sub Barra Scroll (1).xlsm
  6. Tendrás que cambiar la barra de desplazamiento a ActiveX. Sube el archivo y te muestro como.
  7. 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
  8. Lo mismo que Leopoldo, pero con algo de cosecha propia. Sub DividirTexto_Antoni() Dim PRO As Variant, Texto As Variant Dim Columna As Integer, VAL As Variant Dim Fila As Integer, x As Integer '-- Texto = [C4] Texto = Replace(Texto, "Cantidad", "") Texto = Replace(Texto, "valorUnitario", "") Texto = Replace(Texto, "Importe", "") Texto = Replace(Texto, "Descripción", "") Texto = Replace(Texto, " ", "") Texto = Replace(Texto, "| ", "|") Texto = Replace(Texto, " |", "|") '-- Fila = 5 PRO = Split(Texto, Chr(10)) For x = 0 To UBound(PRO) - 1 VAL = Split(PRO(x), "|") Fila = Fila + 1 For Columna = 1 To 4 Cells(Fila, Columna + 3) = VAL(Columna) Next Next End Sub
  9. ¿Antes de contestar te molestas en leer las respuestas anteriores? porqué a esa conclusión ya se llegó el 24 de noviembre y ya se han dado varias soluciones en ese sentido.
  10. La idea de juntar todos los formularios en uno era buena, la forma de llevarla cabo, no, mis disculpas por ello. La utilización de frames por si sola es engorrosa, la solución correcta es sustituirlos o combinarlos con un control multipage. Prueba todo el circuito por si he cometido algún error a la hora de mostrar los distintos "formularios". Contar2 (2).xlsm
  11. Prueba el adjunto. Barra Scroll.xlsm
  12. Algo así: Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False Select Case Target.Address Case "$C$9": Target = UCase(Target) Case "$C$10": Target = Evaluate("=PROPER(C10)") Case "$C$11": Target = LCase(Target) End Select Application.EnableEvents = True End Sub
×
×
  • Create New...

Important Information

Privacy Policy