-
Notifications
You must be signed in to change notification settings - Fork 0
/
ConsecutiveABC
167 lines (132 loc) · 3.04 KB
/
ConsecutiveABC
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
Dim strConsecutivoLetras
strConsecutivoLetras=fnLetrasConsecutivas("NameFile","Global")
MsgBox strConsecutivoLetras
Function fnLetrasConsecutivas(strColumn, strHoja)
print DataTable.GetCurrentRow
strLetras1=fnGeneraLetrasCosecutivas(strColumn, strHoja)
strLetras2=fnValidaLetrasIguales(strLetras1)
If strLetras2 <> strLetras1 Then
DataTable.SetCurrentRow(DataTable.GetRowCount+1)
DataTable.Value(strColumn, strHoja)= strLetras1
DataTable.SetCurrentRow(DataTable.GetRowCount)
DataTable.Value(strColumn, strHoja)=fnGeneraLetrasCosecutivas
Else
DataTable.SetCurrentRow(DataTable.GetRowCount+1)
DataTable.Value(strColumn, strHoja)=strLetras1
End If
DataTable.SetCurrentRow(DataTable.GetRowCount)
fnLetrasConsecutivas=DataTable.Value(strColumn, strHoja)
End Function
Function fnGeneraLetrasCosecutivas(strColumn, strHoja)
DataTable.SetCurrentRow(1)
cadena=DataTable.Value(strColumn, strHoja)
If cadena="" Then
cadena="AAA"
End If
cadena=Replace(cadena," ","")
strletra1=mid(cadena,1,1)
strletra2=mid(cadena,2,1)
strletra3=mid(cadena,3,1)
intNumLetraEncontrada= fnBuscaLetra(strletra3)+1
cadena =strletra1&strletra2&fnGeneraLetras(intNumLetraEncontrada)
strCadenaFinal=cadena
If fnGeneraLetras(intNumLetraEncontrada)="0" Then
intNumLetraEncontrada2= fnBuscaLetra(strletra2)+1
cadena =strletra1&fnGeneraLetras(intNumLetraEncontrada2)&"A"
strCadenaFinal=cadena
If fnGeneraLetras(intNumLetraEncontrada2)="0" Then
intNumLetraEncontrada3= fnBuscaLetra(strletra1)+1
cadena =fnGeneraLetras(intNumLetraEncontrada3)&"A"&"A"
strCadenaFinal=cadena
End If
End If
fnGeneraLetrasCosecutivas= strCadenaFinal
End Function
Function fnValidaLetrasIguales(cadena)
cadena=Replace(cadena," ","")
If Len(cadena) =>3 Then
strletra1=mid(cadena,1,1)
strletra2=mid(cadena,2,1)
strletra3=mid(cadena,3,1)
If InStr(1,strletra1,strletra2,1) Then
If InStr(1,strletra2,strletra3,1) Then
fnValidaLetrasIguales="3 Caracteres consecutivos"
Else
fnValidaLetrasIguales=cadena
End If
Else
fnValidaLetrasIguales=cadena
End If
Else
print "menor"
End If
End Function
Function fnBuscaLetra(strLetra)
For Iterator = 1 To 27
If InStr(strLetra,fnGeneraLetras(Iterator)) Then
fnBuscaLetra=Iterator
Exit for
End If
Next
End Function
Function fnGeneraLetras(intLetra)
Dim intCase
intCase=intLetra
Select Case intCase
Case 1
cadena="A"
Case 2
cadena="B"
Case 3
cadena="C"
Case 4
cadena="D"
Case 5
cadena="E"
Case 6
cadena="F"
Case 7
cadena="G"
Case 8
cadena="H"
Case 9
cadena="I"
Case 10
cadena="J"
Case 11
cadena="K"
Case 12
cadena="L"
Case 13
cadena="M"
Case 14
cadena="N"
Case 15
cadena="O"
Case 16
cadena="P"
Case 17
cadena="Q"
Case 18
cadena="R"
Case 19
cadena="S"
Case 20
cadena="T"
Case 21
cadena="U"
Case 22
cadena="V"
Case 23
cadena="W"
Case 24
cadena="X"
Case 25
cadena="Y"
Case 26
cadena="Z"
Case 27
cadena="0"
End Select
fnGeneraLetras=cadena
End Function