Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Asta Fantacalcio con Excel

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Asta Fantacalcio con Excel

Postdi DrinkDifferent » 27/08/17 11:32

Buongiorno, sono nuovo e son arrivato in questo forum grazie a questa discussione.
Ho visto non c'è stata più risposta a questo topic.
Io ho preparato un file abbastanza dettagliato ma mi manca la funzione principale.
Spero qualcuno qui riesca a completarlo/migliorarlo
Qui potete scaricare il file:
https://drive.google.com/open?id=0B8kHD ... VhmZ2dMREE

Praticamente al foglio "Tutti" c'è il database dei calciatori che vengono chiamati durante l'asta, nelle colonne A e B ci sono gli unici input che mi aspetto di dare ovvero Allenatore e Crediti spesi per quel giocatore.

In alto c'è il riepilogo dei fanta team in modo da vedere icrediti residui per ogni allenatore e i rispettivi slot ancora liberi.

Poi ho creato un foglio per ogni allenatore suddiviso anche per i vari ruoli. Con le formule di somma che andranno ad alimentare il riepilogo visto prima.

Bene detto questo non riesco a capire come posso dopo aver dato i 2 input nel foglio "Tutti" vedere che i giocatori assegnati coi rispettivi crediti si distribuiscano correttamente nel foglio del roster del Team.

Potete aiutarmi?
Grazie in anticipo :-)
DrinkDifferent
Newbie
 
Post: 6
Iscritto il: 22/08/17 17:12

Sponsor
 

Re: Asta Fantacalcio con Excel

Postdi DrinkDifferent » 31/08/17 18:41

Ciao ragazzi noi abbiamo l'asta questo sabato quindi se qualcuno è in grado di fare questa formula sarebbe veramente utilissimo.
DrinkDifferent
Newbie
 
Post: 6
Iscritto il: 22/08/17 17:12

Re: Asta Fantacalcio con Excel

Postdi Anthony47 » 31/08/17 22:42

Mi spiace, io non sono un appassionato di fantacalcio e quindi non posso aiutare granche'...
Andando a sentimento ho immaginato che il lavoro iniziale sia compilare in TUTTI quale Allenatore acquista quale Giocatore e quanto lo paga (colonna Crediti?)
Finito questo lavoro ti interessa che ogni giocatore venga posizionato nel foglio giusto, ruolo giusto, insieme con la Squadra e il costo (es colonna D di un foglio squadra?).
Assumero' che in colonna G di TUTTI ci siano tutti gli Allenatori e che ogni nominativo abbia un Foglio esattamente con lo stesso nome e tutti con la stessa struttura dati (nel file pubblicato cio' non e' rispettato per Patrik, Kele,

Per prima cosa modifica tutti i fogli "Allenatore=Squadra" per eliminare le celle unite sulla riga 4; inserirai il Ruolo (Portiere, Difensori,...) solo nella colonna destinata a contenere il nominativo del giocatore (quindi B4, G4, etc); la precisione di questo lavoro e' fondamentale per il lavoro che ti vado a proporre.

E' probabile che il contenuto dei fogli "Allenatore" debba essere azzerato inizialmente.
Per questo possiamo usare la seguente macro:
Codice: Seleziona tutto
Sub Azzera()
Dim Elenco As String, I As Long, pIPp, myAll As Range
Dim deSquadra, deRuolo

deSquadra = Array("B5", "G5", "L5", "Q5")
deRuolo = Array("P", "D", "C", "A")
'
Elenco = "G2"               '<<< Dove comincia 'elenco Allenatori=Squadre in Tutti
'
Sheets("Tutti").Select
For Each myAll In Range(Range(Elenco), Range(Elenco).End(xlDown))
    If myAll.Value <> "" Then
        With Sheets(myAll.Value)
            For Each pIPp In deSquadra
                .Range(pIPp).Resize(8, 3).ClearContents
            Next pIPp
        End With
    End If
Next myAll
End Sub
ATTENZIONE: cancella anche alcune formule con cui credo tu abbia cercato di popolare le squadre. Quindi fai le prove su UNA COPIA del tuo file.

A questo punto puoi "spalmare" i giocatori sulle varie squadre usando questa seconda macro:
Codice: Seleziona tutto
Sub Distrib()
Dim ETutti As String, myP As Range, Posit, myNext As Long, mErr As String
Dim deSquadra, deRuolo
'
deSquadra = Array("B5", "G5", "L5", "Q5")
deRuolo = Array("P", "D", "C", "A")
'
ETutti = "E14"          '<<< Dove comincia l'elenco dei Giocatori in Tutti
'
Sheets("Tutti").Select
For Each myP In Range(Range(ETutti), Range(ETutti).End(xlDown))
If myP.Value = "CONSIGLI" Then Stop
    If myP.Offset(0, -4) <> "" Then
        With Sheets(myP.Offset(0, -4).Value)
            Posit = Application.Match(myP.Offset(0, -1), deRuolo, 0) - 1
            If Not IsError(Posit) Then
                myNext = .Range(deSquadra(Posit)).Offset(10, 0).End(xlUp).Row + 1
                .Cells(myNext, Left(deSquadra(Posit), 1)) = myP.Value
                .Cells(myNext, Left(deSquadra(Posit), 1)).Offset(0, 1) = Left(myP.Offset(0, 1).Value, 3)
                .Cells(myNext, Left(deSquadra(Posit), 1)).Offset(0, 2) = myP.Offset(0, -3).Value
            Else
                mErr = mErr & myP.Value & vbCrLf
            End If
        End With
    End If
Next myP
If Len(mErr) > 5 Then
    MsgBox ("Completato con errori su: " & mErr)
Else
    MsgBox ("Completato...")
End If
End Sub

Il codice va inserito in un modulo standard del vba. Per questo, partendo da Excel
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Le righe marcate <<< sono state compilate per aderire ai file da te pubblicati.

Il file a questo punto va salvato in formato .xlsm (macro enabled)

Nota che in questo modo la tabella su Tutti con i Crediti impegnati e quelli ancora disponibili non verrebbero aggiornati man mano che compili gi impegni di spesa, ma solo quando esegui la seconda macro.
Per avere in real time il calcolo dell'impegnato allora inserisci in I2 di Tutti questa formula:
Codice: Seleziona tutto
=MATR.SOMMA.PRODOTTO(--($A$14:$A$5000=$G2);--($D$14:$D$5000=I$1);$B$14:$B$5000)

Copia poi verso destra e copia poi la prima riga di formule verso il basso; calcolerai cosi' nelle colonne I:L i valori "impegnati" man mano che li segni. Da questi valori unitari puoi calcolare il totale impegnato e il residuo con semplici formule, sempre sul foglio Tutti.

Spero che quanto proposto sia di qualche utilita'.

Ciao
keywords
Fantacalcio macro per assegnare alle squadre i calciatori acquistati
Avatar utente
Anthony47
Moderatore
 
Post: 17441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Asta Fantacalcio con Excel

Postdi DrinkDifferent » 01/09/17 23:16

Anthony47 ha scritto:Mi spiace, io non sono un appassionato di fantacalcio e quindi non posso aiutare granche'...
Andando a sentimento ho immaginato che il lavoro iniziale sia compilare in TUTTI quale Allenatore acquista quale Giocatore e quanto lo paga (colonna Crediti?)
Finito questo lavoro ti interessa che ogni giocatore venga posizionato nel foglio giusto, ruolo giusto, insieme con la Squadra e il costo (es colonna D di un foglio squadra?).
Assumero' che in colonna G di TUTTI ci siano tutti gli Allenatori e che ogni nominativo abbia un Foglio esattamente con lo stesso nome e tutti con la stessa struttura dati (nel file pubblicato cio' non e' rispettato per Patrik, Kele,

Per prima cosa modifica tutti i fogli "Allenatore=Squadra" per eliminare le celle unite sulla riga 4; inserirai il Ruolo (Portiere, Difensori,...) solo nella colonna destinata a contenere il nominativo del giocatore (quindi B4, G4, etc); la precisione di questo lavoro e' fondamentale per il lavoro che ti vado a proporre.

Ciao


Io ci ho provato ma non son riuscito ad applicare il codice, tu avevi fatto il file? Nel caso me lo giri che vedo di capire dove ho sbagliato? :aaah
DrinkDifferent
Newbie
 
Post: 6
Iscritto il: 22/08/17 17:12

Re: Asta Fantacalcio con Excel

Postdi Anthony47 » 02/09/17 12:12

Per realizzare quanto proposto devi solo seguire le istruzioni:
Il codice va inserito in un modulo standard del vba. Per questo, partendo da Excel
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Le righe marcate <<< sono state compilate per aderire ai file da te pubblicati.

Il file a questo punto va salvato in formato .xlsm (macro enabled)


Piuttosto non ti ho detto che per mandare in esecuzione una macro, tra i tanti metodi, io suggerisco:
-premi Alt-F8
-seleziona la macro dall'elenco delle macro disponibili
-premi Esegui
Oppure puoi associarla a un pulsante, o una icona da inserire sulla barra di accesso rapido di Excel.

Il tuo file oramai non ce l'ho piu' in versione originale (l'ho usato per fare prove per altri quesiti), quindi se partissi da quello che ho io dovresti prima ripristinarlo cercando le modifiche una a una; mentre sono certo che guardando le istruzioni che forse prima non avevi notato bene diventa una faccenda di 3 minuti.

Un'ultima considerazione: se sistematicamente prima di distribuire gli acquisti sulle varie squadre va fatto l'azzeramento delle formazioni precedenti (quello fatto tramite la Sub Azzera) allora puoi inserire il richiamo alla Azzera in testa alla seconda macro:
Codice: Seleziona tutto
Sub Distrib()
Call Azzera                     '<<< Aggiungi per eseguire prima la Sub Azzera
Dim ETutti As String, myP As Range, Posit, myNext As Long, mErr As String
'etc etc

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Asta Fantacalcio con Excel":


Chi c’è in linea

Visitano il forum: Nessuno e 24 ospiti