RE:Construir nombre de campo
Esto es lo que quiero reemplazar por un lazo for pero como tengo muchos mas controles TextBox que los abajo mencionados el código enviado no sirve.
Private Sub Reset_S()
Me.S0.Text = 0 : Me.S1.Text = 0 : Me.S2.Text = 0
Me.S3.Text = 0 : Me.S4.Text = 0 : Me.S5.Text = 0
Me.S6.Text = 0 : Me.S7.Text = 0 : Me.S8.Text = 0
Me.S9.Text = 0 : Me.S10.Text = 0 : Me.S11.Text = 0
Me.S12.Text = 0 : Me.S13.Text = 0 : Me.S14.Text = 0
Me.S15.Text = 0 : Me.S16.Text = 0 : Me.S17.Text = 0
Me.S18.Text = 0 : Me.S19.Text = 0 : Me.S20.Text = 0
Me.S21.Text = 0 : Me.S22.Text = 0 : Me.S23.Text = 0
Me.S24.Text = 0 : Me.S25.Text = 0 : Me.S26.Text = 0
Me.S27.Text = 0 : Me.S28.Text = 0 : Me.S29.Text = 0
Me.S30.Text = 0 : Me.S31.Text = 0 : Me.S32.Text = 0
Me.S33.Text = 0 : Me.S34.Text = 0 : Me.S35.Text = 0
Me.S36.Text = 0
End Sub
Private Sub Reset_H()
Me.H0.Text = 0 : Me.H1.Text = 0 : Me.H2.Text = 0
Me.H3.Text = 0 : Me.H4.Text = 0 : Me.H5.Text = 0
Me.H6.Text = 0 : Me.H7.Text = 0 : Me.H8.Text = 0
Me.H9.Text = 0 : Me.H10.Text = 0 : Me.H11.Text = 0
Me.H12.Text = 0 : Me.H13.Text = 0 : Me.H14.Text = 0
Me.H15.Text = 0 : Me.H16.Text = 0 : Me.H17.Text = 0
Me.H18.Text = 0 : Me.H19.Text = 0 : Me.H20.Text = 0
Me.H21.Text = 0 : Me.H22.Text = 0 : Me.H23.Text = 0
Me.H24.Text = 0 : Me.H25.Text = 0 : Me.H26.Text = 0
Me.H27.Text = 0 : Me.H28.Text = 0 : Me.H29.Text = 0
Me.H30.Text = 0 : Me.H31.Text = 0 : Me.H32.Text = 0
Me.H33.Text = 0 : Me.H34.Text = 0 : Me.H35.Text = 0
Me.H36.Text = 0
End Sub
Procedimiento en VBA (Excel2003) que funciona perdectamente en el programa (Excel2003)
Private Sub BTN1_45(N)
Dim I As Integer, R As String, S As String, A As String
Dim K As Integer, L As Integer, CuentaMise As Integer, CuentaGana As Integer
Dim Cuenta30 As Integer, Cuenta60 As Integer, Repite3 As Integer
Dim Respuesta
CuentaMise = 0: CuentaGana = 0
Cuenta30 = 30
Cuenta60 = Val(Me.TOPEJUEGO)
Repite3 = Val(Me.REPETICIONES)
For I = 0 To 36
R = "R" & Trim$(Str$(I))
S = "S" & Trim$(Str$(I))
A = "A" & Trim$(Str$(I))
If Val(Me(R).Caption) > 0 Then
CuentaMise = CuentaMise + Val(Me(A).Caption)
If I = N Then
CuentaGana = CuentaGana + (36 * Val(Me(A).Caption))
If Me.UNAVEZ = True Then
Me(R).Caption = 0
Me(R).BackColor = &HFFFFFF
Me(S).Caption = 0
Else
Me(R).Caption = 0
Me(R).BackColor = &HFFFFFF
End If
End If
End If
Next
'Llamada al Procedimiento para el calculo de apuestas
'Call CALCULODEAPUESTAS
Call CALCULADEAPUESTASIGUALADAS
TOTALGIROS = Val(TOTALGIROS) + 1
Me.APUESTA = CuentaMise
Me.GANADO = CuentaGana
Me.BALANCE = Val(Me.BALANCE) + CuentaGana - CuentaMise
If Val(Me.PERDIDAMAXIMA) > Val(Me.BALANCE) Then Me.PERDIDAMAXIMA = Me.BALANCE
If Val(Me.GANANCIAMAXIMA) < Val(Me.BALANCE) Then Me.GANANCIAMAXIMA = Me.BALANCE
If Val(Me.BALANCE) > 0 Then Me.POSITIVO = Val(Me.POSITIVO) + 1
If Val(Me.BALANCE) < 0 Then Me.NEGATIVO = Val(Me.NEGATIVO) + 1
'Me.CUMULO = Val(Me.BALANCE) + CuentaGana - CuentaMise
Me.CUENTAHOTNUMBERS.Caption = Str$(CuentaMise)
If Val(Me.APUESTAMAXIMA) < Val(Me.CUENTAHOTNUMBERS.Caption) Then Me.APUESTAMAXIMA = Me.CUENTAHOTNUMBERS.Caption
'Controla si se han pasado los giros de 30
'Modifico y pongo en comentario para tener en cuenta todas las jugadas
If Val(Me.CUENTASALIDOS.Caption) >= Cuenta30 Then
Call RESETSALIDOS
End If
'Controla si se han pasado las jugadas del HotNumber
For I = 0 To 36
R = "R" & Trim$(Str$(I))
If Val(Me(R).Caption) >= Cuenta60 Then
Me(R).Caption = 0
Me(R).BackColor = &HFFFFFF
End If
Next
'Aumenta el contador de 1
Me.CUENTASALIDOS.Caption = Str$(Val(Me.CUENTASALIDOS.Caption) + 1)
'Aqui modifico para tener en cuenta todas las jugadas
For I = 0 To 36
S = "S" & Trim$(Str$(I))
If I = N Then
Me(S).Caption = Str$(Val(Me(S).Caption) + 1)
End If
Next
'Call ANOTAPERMANENCIA(N)
'Ve si existe un HotNumber
For I = 0 To 36
S = "S" & Trim$(Str$(I))
R = "R" & Trim$(Str$(I))
If Val(Me(R).Caption) > 0 Then
Me(R).Caption = Str$(Val(Me(R).Caption) + 1)
Select Case I
Case 1, 3, 5, 7, 9, 12, 14, 16, 18, 19, 21, 23, 25, 27, 30, 32, 34, 36
Me(R).BackColor = &HFF&
Case 2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 29, 31, 33, 35
Me(R).BackColor = &H0&
Case Else
Me(R).BackColor = &H0&
End Select
End If
If Val(Me(S).Caption) >= Repite3 Then
If Val(Me(R).Caption) = 0 Then
Me(R).Caption = "1"
End If
End If
Next
Me.J = ""
For I = 0 To 36
R = "R" & Trim$(Str$(I))
If Val(Me(R).Caption) > 0 Then
Me.J = Trim$(Me.J) & Str$(I) & " - "
End If
Next
DoEvents
If Me!PAUSAENTEST = True Then
Respuesta = MsgBox("¿Continuar con pausa?", vbYesNo + vbCritical + vbDefaultButton2, "Pausa en comprobación")
If Respuesta = vbNo Then Me!PAUSAENTEST = False
End If
End Sub
Espero de esta foema hacerme comprender
Un saludo
José