
ERROR AL CORRER MACRO EXCEL
Publicado por Pedro (4 intervenciones) el 27/02/2024 19:19:46
Buenos días, tengo un tema con este código.
La macro hace prácticamente lo que le pido, todo esta bien, pero de repente una persona me dijo que se le trabó en el proceso. No mandó un error, solo se quedó en blanco la pantalla.
solo hizo un registro y de datos (esta hecho para 200 registros) y no tenia muchos programas abiertos, solo el correo, dos exceles y el explorador de archivos.
¿Me pueden ayudar a ver si es tema del código o es tema de la computadora?
En el mío compila bien.
Tengo una máquina con i5 (excel 2019)
Donde se corrió el programa es una i13. (excel 2013)
Comparto macro y archivo.
Ojalá me puedan ayudar.
comparto el código y el archivo.
La contraseña es "1"
La macro hace prácticamente lo que le pido, todo esta bien, pero de repente una persona me dijo que se le trabó en el proceso. No mandó un error, solo se quedó en blanco la pantalla.
solo hizo un registro y de datos (esta hecho para 200 registros) y no tenia muchos programas abiertos, solo el correo, dos exceles y el explorador de archivos.
¿Me pueden ayudar a ver si es tema del código o es tema de la computadora?
En el mío compila bien.
Tengo una máquina con i5 (excel 2019)
Donde se corrió el programa es una i13. (excel 2013)
Comparto macro y archivo.
Ojalá me puedan ayudar.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Sub AltaLayoutInbursa()
Dim numFilas As Long
Dim FilePath As String
Dim copyRange As Range
Dim destinationSheet As Worksheet
Dim cargaSheet As Worksheet
Dim cell As Range
' Obtener el número de filas a copiar desde A2 hasta H en la hoja "INTERBANCARIOS"numFilas = Sheets("INTERBANCARIOS").Range("E1").Value
' Definir la hoja de "CARGA"Set cargaSheet = ThisWorkbook.Sheets("CARGA")
' Copiar formato de las columnas P1:S1 en la hoja "CARGA"Sheets("CARGA").Range("P1:S1").Copy
cargaSheet.Range("A7:D" & cargaSheet.Cells(cargaSheet.Rows.Count, "A").End(xlUp).Row).PasteSpecial xlPasteFormats
Application.CutCopyMode = False ' Limpiar el portapapeles
' Definir los rangos a copiarSet destinationSheet = Sheets.Add
' Copiar A2:C[numFilas+1] en la misma hojaSheets("INTERBANCARIOS").Range("A1:C" & numFilas + 1).Copy destinationSheet.Range("A1")
' Aplicar RemoveTrash solo a la hoja "CARGA"For Each cell In cargaSheet.Range("A7:D213")
cell.Value = RemoveTrash(cell.Value)
Next cell
' Establecer la ruta y nombre de archivo para guardarFilePath = Application.GetSaveAsFilename(FileFilter:="Archivos de texto (*.txt), *.txt", Title:="Guardar como archivo de texto")
If FilePath <> "False" Then
' Guardar el contenido de la hoja de destino como un archivo de texto Open FilePath For Output As #1 Dim fila As Long, col As LongFor fila = 1 To destinationSheet.UsedRange.Rows.Count
Dim texto As String
texto = ""
For col = 1 To destinationSheet.UsedRange.Columns.Count
If col > 1 ThenIf destinationSheet.Cells(fila, col) <> "" Then
texto = texto & vbTab ' Usar tabulación como separador
End If
End If
' Verificar si el valor es numéricoIf IsNumeric(destinationSheet.Cells(fila, col).Value) Then
' Agregar el valor con formato originaltexto = texto & destinationSheet.Cells(fila, col).Text
Else
texto = texto & destinationSheet.Cells(fila, col).Value
End If
Next col
If Len(Trim(texto)) > 0 Then
Print #1, textoEnd If
Next fila
Close #1 ' Abre el Bloc de notasShell "notepad.exe " & FilePath, vbNormalFocus
' Espera un momento para asegurarte de que el Bloc de notas esté abiertoApplication.Wait (Now + TimeValue("00:00:01"))
' Envía la combinación de teclas Ctrl + Fin al Bloc de notasApplication.SendKeys "^{END}"
Application.Wait (Now + TimeValue("00:00:01"))
' Envía la combinación de teclas Ctrl + Fin al Bloc de notasApplication.SendKeys "{BS}"
' Cierra el Bloc de notas AppActivate "Bloc de notas"Application.SendKeys "^{G}"
Application.SendKeys "%{F4}"
Application.DisplayAlerts = False
destinationSheet.DeleteApplication.DisplayAlerts = True
ThisWorkbook.SaveElse
MsgBox "Operación cancelada."Application.DisplayAlerts = False
destinationSheet.DeleteApplication.DisplayAlerts = True
End If
End Sub
Function RemoveTrash(Text)
Const COMPSTR = "áéíóúÁÉÍÓÚ.ñÑ!#$%&/()='?¿¡,:"
Const REPLSTR = "aeiouAEIOU nN "
Dim Pos, IterFor Iter = 1 To Len(Text)
Pos = InStr(1, COMPSTR, Mid(Text, Iter, 1))
If Pos <> 0 Then
Mid(Text, Iter, 1) = Mid(REPLSTR, Pos, 1)
End If
Next
RemoveTrash = TextEnd Function
comparto el código y el archivo.
La contraseña es "1"
Valora esta pregunta


0

