Condividi:        

VB6 Problemi Matrici Flex

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

VB6 Problemi Matrici Flex

Postdi jjvincente » 14/06/12 14:08

Egregi Programmatori

Avrei fatto un progettino in cui legge da un file Excel il nome del file e' Brasile.xls con due fogli uno di nome Classifica,L' altro ProsTurno e fino qui' tutto bene ,carico il file xls in due flex uno per la classifica,L' altro ProsTurno,e qui' tutto ok,il problema nasce sul pulsante elabora messo sulla form principale
Codice: Seleziona tutto
Option Explicit
'variabile oggetto che contiene il riferimento alla cartella di lavoro di Excel
Dim FileExcel As Workbook

'variabile oggetto che contiene il riferimento al foglio di lavoro di Excel
Dim FoglioExcel As Worksheet
Dim FoglioExcel1 As Worksheet

'variabile oggetto che contiene il  riferimento alle celle del foglio di lavoro
'di Excel
Dim Squadra1ex(20) As Range
Dim Squadra2ex(20) As Range
Dim Squadra3ex(20) As Range
Dim Squadra4ex(20) As Range
Dim Squadra5ex(20) As Range
Dim Squadra6ex(20) As Range
Dim Squadra7ex(20) As Range
Dim Squadra8ex(20) As Range
Dim Squadra9ex(20) As Range
Dim Squadra10ex(20) As Range
Dim Squadra11ex(20) As Range
Dim Squadra12ex(20) As Range
Dim Squadra13ex(20) As Range
Dim Squadra14ex(20) As Range
Dim Squadra15ex(20) As Range
Dim Squadra16ex(20) As Range
Dim Squadra17ex(20) As Range
Dim Squadra18ex(20) As Range
Dim Squadra19ex(20) As Range
Dim Squadra20ex(20) As Range
Dim TuPex(10) As Range
Dim TuPex1(10) As Range
Dim TuPex2(10) As Range
Dim TuPex3(10) As Range
Dim TuPex4(10) As Range
Dim TuPex5(10) As Range
Dim TuPex6(10) As Range
Dim TuPex7(10) As Range
Dim TuPex8(10) As Range
Dim TuPex9(10) As Range

'variabile oggetto che contiene il riferimento (eventuale) ad un nome della
'zona del foglio di lavoro di Excel
Dim NomeZona As Name

Private Sub BRA_Click()
Dim x As Integer
Dim s As Integer
Dim j As Integer

MSFlexGrid1.Visible = True
MSFlexGrid2.Visible = True

MSFlexGrid1.Height = 5150
MSFlexGrid1.Width = 10150
MSFlexGrid2.Height = 2750
MSFlexGrid2.Width = 8280

MSFlexGrid1.Rows = 21
MSFlexGrid1.Cols = 20
MSFlexGrid2.Cols = 7
MSFlexGrid2.Rows = 11

MSFlexGrid1.TextMatrix(0, 0) = "Po"

MSFlexGrid1.TextMatrix(0, 1) = "Squadra"
MSFlexGrid1.TextMatrix(0, 2) = "Pu"
MSFlexGrid1.TextMatrix(0, 3) = "Gi"
MSFlexGrid1.TextMatrix(0, 4) = "Vi"
MSFlexGrid1.TextMatrix(0, 5) = "Nu"
MSFlexGrid1.TextMatrix(0, 6) = "Pe"
MSFlexGrid1.TextMatrix(0, 7) = "Rf"
MSFlexGrid1.TextMatrix(0, 8) = "Rs"
MSFlexGrid1.TextMatrix(0, 9) = "Vc"
MSFlexGrid1.TextMatrix(0, 10) = "Nc"
MSFlexGrid1.TextMatrix(0, 11) = "Pc"
MSFlexGrid1.TextMatrix(0, 12) = "Gc"
MSFlexGrid1.TextMatrix(0, 13) = "Sc"
MSFlexGrid1.TextMatrix(0, 14) = "Vf"
MSFlexGrid1.TextMatrix(0, 15) = "Nf"
MSFlexGrid1.TextMatrix(0, 16) = "Pf"
MSFlexGrid1.TextMatrix(0, 17) = "Gf"
MSFlexGrid1.TextMatrix(0, 18) = "Sf"
MSFlexGrid2.TextMatrix(0, 1) = "Data"
MSFlexGrid2.TextMatrix(0, 2) = "Squadra Casa"
MSFlexGrid2.TextMatrix(0, 3) = "Squadra Fuori"
MSFlexGrid2.TextMatrix(0, 4) = "Pic 1%"
MSFlexGrid2.TextMatrix(0, 5) = "Pic X%"
MSFlexGrid2.TextMatrix(0, 6) = "Pic 2%"

For s = 1 To 20
MSFlexGrid1.TextMatrix(s, 0) = s
Next

MSFlexGrid1.ColWidth(0) = 400
MSFlexGrid2.ColWidth(0) = 0
MSFlexGrid1.ColWidth(1) = 2000
MSFlexGrid1.ColWidth(2) = 450
MSFlexGrid1.ColWidth(3) = 450
MSFlexGrid1.ColWidth(4) = 450
MSFlexGrid1.ColWidth(5) = 450
MSFlexGrid1.ColWidth(6) = 450
MSFlexGrid1.ColWidth(7) = 450
MSFlexGrid1.ColWidth(8) = 450
MSFlexGrid1.ColWidth(9) = 450
MSFlexGrid1.ColWidth(10) = 450
MSFlexGrid1.ColWidth(11) = 450
MSFlexGrid1.ColWidth(12) = 450
MSFlexGrid1.ColWidth(13) = 450
MSFlexGrid1.ColWidth(14) = 450
MSFlexGrid1.ColWidth(15) = 450
MSFlexGrid1.ColWidth(16) = 450
MSFlexGrid1.ColWidth(17) = 450
MSFlexGrid1.ColWidth(18) = 450
MSFlexGrid1.ColWidth(19) = 0
MSFlexGrid2.ColWidth(1) = 1300
MSFlexGrid2.ColWidth(2) = 2000
MSFlexGrid2.ColWidth(3) = 2000

Dim Squadra1ex(20) As Range
Dim Squadra2ex(20) As Range
Dim Squadra3ex(20) As Range
Dim Squadra4ex(20) As Range
Dim Squadra5ex(20) As Range
Dim Squadra6ex(20) As Range
Dim Squadra7ex(20) As Range
Dim Squadra8ex(20) As Range
Dim Squadra9ex(20) As Range
Dim Squadra10ex(20) As Range
Dim Squadra11ex(20) As Range
Dim Squadra12ex(20) As Range
Dim Squadra13ex(20) As Range
Dim Squadra14ex(20) As Range
Dim Squadra15ex(20) As Range
Dim Squadra16ex(20) As Range
Dim Squadra17ex(20) As Range
Dim Squadra18ex(20) As Range
Dim Squadra19ex(20) As Range
Dim Squadra20ex(20) As Range
Dim TuPex(10) As Range
Dim TuPex1(10) As Range
Dim TuPex2(10) As Range
Dim TuPex3(10) As Range
Dim TuPex4(10) As Range
Dim TuPex5(10) As Range
Dim TuPex6(10) As Range
Dim TuPex7(10) As Range
Dim TuPex8(10) As Range
Dim TuPex9(10) As Range

    If VerifyFile(App.Path & "\Brasile.xls") Then

        'imposto la variabile oggetto FileExcel con il nome del file xls
        Set FileExcel = Excel.Workbooks.Open(App.Path & "\Brasile.xls")
    Else
        MsgBox "Impossibile eseguire il programma" & _
        vbCrLf & "Il file " & App.Path & "\Brasile.xls" & " non è stato trovato.", vbOKOnly
        End
    End If
   
On Error GoTo errore
'imposto la variabile oggetto FoglioExcel con il nome del foglio da leggere
Set FoglioExcel = FileExcel.Worksheets("Classifica")
Set FoglioExcel1 = FileExcel.Worksheets("ProsTurno")

'imposto la variabile oggetto Squadra1ex puntanto alla riga2,colonna1
For x = 1 To 19
Set Squadra1ex(x) = FoglioExcel.Cells(3, x)

Set Squadra2ex(x) = FoglioExcel.Cells(4, x)
Set Squadra3ex(x) = FoglioExcel.Cells(5, x)
Set Squadra4ex(x) = FoglioExcel.Cells(6, x)
Set Squadra5ex(x) = FoglioExcel.Cells(7, x)
Set Squadra6ex(x) = FoglioExcel.Cells(8, x)
Set Squadra7ex(x) = FoglioExcel.Cells(9, x)
Set Squadra8ex(x) = FoglioExcel.Cells(10, x)
Set Squadra9ex(x) = FoglioExcel.Cells(11, x)
Set Squadra10ex(x) = FoglioExcel.Cells(12, x)
Set Squadra11ex(x) = FoglioExcel.Cells(13, x)
Set Squadra12ex(x) = FoglioExcel.Cells(14, x)
Set Squadra13ex(x) = FoglioExcel.Cells(15, x)
Set Squadra14ex(x) = FoglioExcel.Cells(16, x)
Set Squadra15ex(x) = FoglioExcel.Cells(17, x)
Set Squadra16ex(x) = FoglioExcel.Cells(18, x)
Set Squadra17ex(x) = FoglioExcel.Cells(19, x)
Set Squadra18ex(x) = FoglioExcel.Cells(20, x)
Set Squadra19ex(x) = FoglioExcel.Cells(21, x)
Set Squadra20ex(x) = FoglioExcel.Cells(22, x)

MSFlexGrid1.TextMatrix(1, x) = Squadra1ex(x)
MSFlexGrid1.TextMatrix(2, x) = Squadra2ex(x)
MSFlexGrid1.TextMatrix(3, x) = Squadra3ex(x)
MSFlexGrid1.TextMatrix(4, x) = Squadra4ex(x)
MSFlexGrid1.TextMatrix(5, x) = Squadra5ex(x)
MSFlexGrid1.TextMatrix(6, x) = Squadra6ex(x)
MSFlexGrid1.TextMatrix(7, x) = Squadra7ex(x)
MSFlexGrid1.TextMatrix(8, x) = Squadra8ex(x)
MSFlexGrid1.TextMatrix(9, x) = Squadra9ex(x)
MSFlexGrid1.TextMatrix(10, x) = Squadra10ex(x)
MSFlexGrid1.TextMatrix(11, x) = Squadra11ex(x)
MSFlexGrid1.TextMatrix(12, x) = Squadra12ex(x)
MSFlexGrid1.TextMatrix(13, x) = Squadra13ex(x)
MSFlexGrid1.TextMatrix(14, x) = Squadra14ex(x)
MSFlexGrid1.TextMatrix(15, x) = Squadra15ex(x)
MSFlexGrid1.TextMatrix(16, x) = Squadra16ex(x)
MSFlexGrid1.TextMatrix(17, x) = Squadra17ex(x)
MSFlexGrid1.TextMatrix(18, x) = Squadra18ex(x)
MSFlexGrid1.TextMatrix(19, x) = Squadra19ex(x)
MSFlexGrid1.TextMatrix(20, x) = Squadra20ex(x)

Next
For j = 1 To 3
Set TuPex(j) = FoglioExcel1.Cells(3, j)
Set TuPex1(j) = FoglioExcel1.Cells(4, j)
Set TuPex2(j) = FoglioExcel1.Cells(5, j)
Set TuPex3(j) = FoglioExcel1.Cells(6, j)
Set TuPex4(j) = FoglioExcel1.Cells(7, j)
Set TuPex5(j) = FoglioExcel1.Cells(8, j)
Set TuPex6(j) = FoglioExcel1.Cells(9, j)
Set TuPex7(j) = FoglioExcel1.Cells(10, j)
Set TuPex8(j) = FoglioExcel1.Cells(11, j)
Set TuPex9(j) = FoglioExcel1.Cells(12, j)

MSFlexGrid2.TextMatrix(1, j) = TuPex(j)
MSFlexGrid2.TextMatrix(2, j) = TuPex1(j)
MSFlexGrid2.TextMatrix(3, j) = TuPex2(j)
MSFlexGrid2.TextMatrix(4, j) = TuPex3(j)
MSFlexGrid2.TextMatrix(5, j) = TuPex4(j)
MSFlexGrid2.TextMatrix(6, j) = TuPex5(j)
MSFlexGrid2.TextMatrix(7, j) = TuPex6(j)
MSFlexGrid2.TextMatrix(8, j) = TuPex7(j)
MSFlexGrid2.TextMatrix(9, j) = TuPex8(j)
MSFlexGrid2.TextMatrix(10, j) = TuPex9(j)

Next j

'libero ("scarico") le variabili
Set Squadra1ex(x) = Nothing
Set Squadra2ex(x) = Nothing
Set Squadra3ex(x) = Nothing
Set Squadra4ex(x) = Nothing
Set Squadra5ex(x) = Nothing
Set Squadra6ex(x) = Nothing
Set Squadra7ex(x) = Nothing
Set Squadra8ex(x) = Nothing
Set Squadra9ex(x) = Nothing
Set Squadra10ex(x) = Nothing
Set Squadra11ex(x) = Nothing
Set Squadra12ex(x) = Nothing
Set Squadra13ex(x) = Nothing
Set Squadra14ex(x) = Nothing
Set Squadra15ex(x) = Nothing
Set Squadra16ex(x) = Nothing
Set Squadra17ex(x) = Nothing
Set Squadra18ex(x) = Nothing
Set Squadra19ex(x) = Nothing
Set Squadra20ex(x) = Nothing
Set TuPex(j) = Nothing
Set TuPex1(j) = Nothing

Set FoglioExcel = Nothing
Set FoglioExcel1 = Nothing

'

Exit Sub

errore:
MsgBox "Errore " & Err.Number & vbCrLf & Err.Description
Set Squadra1ex(x) = Nothing
Set Squadra2ex(x) = Nothing
Set Squadra3ex(x) = Nothing
Set Squadra4ex(x) = Nothing
Set Squadra5ex(x) = Nothing
Set Squadra6ex(x) = Nothing
Set Squadra7ex(x) = Nothing
Set Squadra8ex(x) = Nothing
Set Squadra9ex(x) = Nothing
Set Squadra10ex(x) = Nothing
Set Squadra11ex(x) = Nothing
Set Squadra12ex(x) = Nothing
Set Squadra13ex(x) = Nothing
Set Squadra14ex(x) = Nothing
Set Squadra15ex(x) = Nothing
Set Squadra16ex(x) = Nothing
Set Squadra17ex(x) = Nothing
Set Squadra18ex(x) = Nothing
Set Squadra19ex(x) = Nothing
Set Squadra20ex(x) = Nothing
Set TuPex(j) = Nothing
Set TuPex1(j) = Nothing

Set FoglioExcel = Nothing
Set FoglioExcel1 = Nothing

FileExcel.Close
End Sub
Public Function VerifyFile(FileName As String)
On Error Resume Next
Open FileName For Input As #1
If Err Then
VerifyFile = False
Exit Function
End If
Close #1
VerifyFile = True
End Function

Private Sub cmdChiudi_Click()
Form_Unload (False)
End Sub

Private Sub Elabora_Click()
Dim vc(10), NC(10), SC(10), VF(10), NF(10), SF(10), p(3, 10), pgc, clc, a, z, b, d, e, ric, rifp, f, ricp, rif, p1
Dim i As Integer
Dim k As Integer

For k = 1 To 20
For i = 1 To 10

If MSFlexGrid2.TextMatrix(i, 2) = MSFlexGrid1.TextMatrix(k, 1) Then vc(i) = MSFlexGrid1.TextMatrix(k, 9)
If MSFlexGrid2.TextMatrix(i, 3) = MSFlexGrid1.TextMatrix(k, 1) Then vf(i) = MSFlexGrid1.TextMatrix(k, 14)
If MSFlexGrid2.TextMatrix(i, 2) = MSFlexGrid1.TextMatrix(k, 1) Then nc(i) = MSFlexGrid1.TextMatrix(k, 10)
If MSFlexGrid2.TextMatrix(i, 3) = MSFlexGrid1.TextMatrix(k, 1) Then nf(i) = MSFlexGrid1.TextMatrix(k, 15)
If MSFlexGrid2.TextMatrix(i, 2) = MSFlexGrid1.TextMatrix(k, 1) Then sc(i) = MSFlexGrid1.TextMatrix(k, 11)
If MSFlexGrid2.TextMatrix(i, 3) = MSFlexGrid1.TextMatrix(k, 1) Then sf(i) = MSFlexGrid1.TextMatrix(k, 16)

' vc(i) vittorie squadra casa (si trova in grid1 (k,9))
' nc(i) nulle squadra casa (si trova in grid1 (k,10))
' sc(i) perse squadra casa (si trova in grid1 (k,11))
'vf(i) vittorie squadra fuori (si trova in grid1 (k,14))
' nf(i) nulle squadra fuori  (si trova in grid1 (k,15))
'' sf(i) perse squadra casa (si trova in grid1 (k,16))

next
next

'Da qui' calcolo del picchetto percentuale delle squadre prossimo turno

For i = 1 To 10

VC(i) = VC(i) + 1: NC(i) = NC(i) + 1: SC(i) = SC(i) + 1: VF(i) = VF(i) + 1: NF(i) = NF(i) + 1: SF(i) = SF(i) + 1

'VALORI TEAM CASA
pgc = VC(i) + NC(i) + SC(i)
clc = ((VC(i) * 3) + NC(i))
'1
a = clc / pgc
b = (VC(i) - SC(i)) / pgc

ric = a + b
If ric < 1 Then ric = 0.85
'X
d = ((pgc + pgc) - clc) / pgc
e = b / 2
f = NC(i) / pgc
ricp = d + e + f
If ricp < 1 Then ricp = 0.85
'VALORI TEAM FUORI
pgc = VF(i) + NF(i) + SF(i)
clc = ((VF(i) * 3) + NF(i))
'2
a = clc / pgc
b = (VF(i) - SF(i)) / pgc
rif = a + b
If rif < 1 Then rif = 0.85
'X
d = ((pgc + pgc) - clc) / pgc
e = b / 6
f = NF(i) / pgc
rifp = d + e + f
If rifp < 1 Then rifp = 0.85
'PICCH. %
p1 = ric + ricp + rif + rifp
p(1, i) = Int((ric / p1) * 100)
p(3, i) = Int((rif / p1) * 100)
p(2, i) = 100 - (p(1, i) + p(3, i))
'p(1,i) Picchetto Segno 1
'p(2,i) Picchetto Segno X
'p(3,i) Picchetto Segno  2
MSFlexGrid2.TextMatrix(i, 4) = p(1, i)
MSFlexGrid2.TextMatrix(i, 6) = p(3, i)
MSFlexGrid2.TextMatrix(i, 5) = p(2, i)

Next

End Sub

'alla chiusura del programma.......
Private Sub Form_Unload(Cancel As Integer)
FileExcel.Close (True) 'chiude Excel salvando le eventuali modifiche
'in alternativa è possibile usare la sintassi:  FileExcel.Close
' in questo caso, se sono state apportate delle modifiche al file,verrà
' visualizzata una finestra che richiede la conferma al salvataggio

Set FileExcel = Nothing 'libero ("scarico") la variabile
End
End Sub

Il Problema Credo Che Si Trovi Qui'
Codice: Seleziona tutto
If MSFlexGrid2.TextMatrix(i, 2) = MSFlexGrid1.TextMatrix(k, 1) Then vc(i) = MSFlexGrid1.TextMatrix(k, 9)
If MSFlexGrid2.TextMatrix(i, 3) = MSFlexGrid1.TextMatrix(k, 1) Then vf(i) = MSFlexGrid1.TextMatrix(k, 14)
If MSFlexGrid2.TextMatrix(i, 2) = MSFlexGrid1.TextMatrix(k, 1) Then nc(i) = MSFlexGrid1.TextMatrix(k, 10)
If MSFlexGrid2.TextMatrix(i, 3) = MSFlexGrid1.TextMatrix(k, 1) Then nf(i) = MSFlexGrid1.TextMatrix(k, 15)
If MSFlexGrid2.TextMatrix(i, 2) = MSFlexGrid1.TextMatrix(k, 1) Then sc(i) = MSFlexGrid1.TextMatrix(k, 11)
If MSFlexGrid2.TextMatrix(i, 3) = MSFlexGrid1.TextMatrix(k, 1) Then sf(i) = MSFlexGrid1.TextMatrix(k, 16)
in pratica non legge i dati forse e' uno sbaglio mio dato che di vb sono solo un autodidatta

Spero di essermi spiegato bene

Ringrazio per una Cortese Risposta

Saluti
jjvincente
Utente Junior
 
Post: 29
Iscritto il: 21/03/09 23:43

Sponsor
 

Re: VB6 Problemi Matrici Flex

Postdi jjvincente » 19/06/12 17:14

Ho Trovato Il Problema Nella Grid1 Vede Le Squadre Cosi' (" Internacional)

Mentre Nella Grid2 Vede Le Squadre Cosi' ("Internacional)

ho provato con alignement ma nulla da fare

per aumentare di una unita' il testo della grid2 come potrei fare?

Ringrazio Per Una Cortese Risposta.

Saluti.
jjvincente
Utente Junior
 
Post: 29
Iscritto il: 21/03/09 23:43


Torna a Programmazione


Topic correlati a "VB6 Problemi Matrici Flex":


Chi c’è in linea

Visitano il forum: Nessuno e 8 ospiti