azz, ho fatto un errore...
l'istruzione
Codice:
Dim datiSq As New datiSquadra
dichiara una variabile di tipo datiSquadra e inserisce un nuovo oggetto datiSquadra nella variabile...e come se tu dichiarassi di voler avere un contenitore per scarpe e poi ci mettessi dentro effettivamente le scarpe

anche se questo è giusto dal punto di vista sintattico, è concettualemente sbagliato in quanto devo creare un nuovo oggetto datiSquadra per ogni nuovo nodo della collezione...invece con quel codice assegneremmo ad ogni nodo lo stesso oggetto datiSquadra, di conseguenza se andassimo a aumentare i gol fatti di una certa squadra (nel nodo specifico della collezione) andremmo ad aumentare anche i gol di tutte le altre squadre.
In pratica ogni nodo squadra punterebbe allo stesso oggetto datiSquadra, invece che ad uno suo specifico.
quindi bisogna correggere il codice in questo modo:
Codice:
Public Sub initStruttura(coll As Collection)
Dim datiSq As datiSquadra
'per ogni squadra crea un nodo della collezione
'nel ciclo esegui questa istruzione
set datiSq = new datiSquadra
'ecc ecc...
End Sub
la variaible datiSq viene inizializzata di volta in volta con un nuovo oggetto datiSquadra.
...questa è la teoria alla base della programmazione ad oggetti...