Condividi:        

formula per le sostituzioni in automatico (fantacalcio)

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: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 05/12/13 00:14

Eh gia'... ho sviluppato la funzione come FanSost2, poi al momento del messaggio ho modificato il nome nell' intestazione ma non ho corretto anche l' istruzione che "restituisce" la matrice...
Correggere: NON FanSost2 = myRes MA FanSost = myRes

(correggo anche nel messaggio precedente)

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

Sponsor
 

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 05/12/13 09:34

la formula funziona perfettamente e già x questo di ringrazio infinitamente.....
come sempre sei stato disponibile e paziente.....molto paziente.....
ti chiedo un ultimo "sforzo" a rispondermi a queste semplici domande:
1) solo x una questione "estetica"...posso ridurre le decimali dove stanno le formule? mi spiego dove abbiamo messo la formattazione degli stili di cella F15-F21 x fare in modo successivamente da usare la formattazione condizionale (x le frecce) esce come numero 6,0 - 7,0 e se vado a ridurre ulteriormente i decimali quando il voto è 6,5 me lo arrotonda a 7.
2) partendo che quello che c'è scritto nel codice vba x me è arabo....
ma nel caso di inserimento di ulteriori squadre ed ulteriori panchinari (ma le sostituzioni saranno sempre 3) la formula funzionerà lo stesso o devo modificare qualcosa?

questo è il file funzionante
http://www.filedropper.com/testok_2

come detto x la domanda num. 1 ....è solo una x una questione di visibilità del numero.


GRAZIEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Flash30005 » 06/12/13 01:27

@gigilatrottola

capisco perfettamente che ti intendi di calcio e/o fantacalcio e
proprio per questo dovresti capire che la "x" sta per pareggio tra due squadre
rileggendo il tuo post, e attribuendo questo significato alle "x" che hai inserito, diventa tutto incomprensibile :aaah

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 06/12/13 09:53

rileggendo anch'io il post è togliendo x come pareggio e mettendo un bel "PER" , il tutto sarebbe più comprensibile ....
ma ci sono altri errori/orrori (sempre nel mio post) che fanno in modo che la x è l'ultima cosa che si va a notare.....

purtroppo mi dovete perdonare ma in italiano avevo 4 (e tutt'ora mi porto dietro questo "difetto"), mentre in fantacalcio (regolamento) avevo ed ho 10 !!!!
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 07/12/13 01:56

Puoi formattare con quanti decimali vuoi; il suggerimento di usare "stile migliaia" era per evitare di vedere gli "0" sui voti dei panchinari non utilizzati in sostituzione. Tieni comunque presente che la formattazione modifica la visualizzazione, non il valore nella cella.

Se allunghi la panchina allora allungherai gli intervalli che passi alla formula, e continuera' a funzionare con max 3 sostituzioni piu' portiere.

La funzione restituisce una matrice e la formula va rigorosamente applicata su tutto l' intervallo e in forma di matrice. Cioe' ri-ribadisco:
-selezioni F15:F21
-inserisci la formula nella barra della formula [1 volta per tutto il range]
-confermi con Contr-Maiusc-Enter [non il solo Enter]

NON E' LA STESSA COSA introdurre la formula in F15 e poi copiarla nelle celle sottostanti.

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

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 08/12/13 13:31

perfetto, logicamente hai ragione...ora ho fatto tutto correttamente, è funziona alla perfezione.....
come ultimo aiuto ti chiedo solo una cosa molto semplice,
era la questione della formattazione condizionale con i simboli (freccia verde x chi entra e freccia rossa x chi esce)
ho fatto una formula che restituisce 1 nei titolari G4:G14 e 2 nei panchinari G15:G21
poi nn riesco a restituire la freccia rossa se la cella =1 e freccia verde se la cella è 2
ti prometto che è l'ultimo aiuto...anche se ti vorrei fare tante altre domande....
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 08/12/13 13:32

mi sono dimenticato di dirti:
grazie mille !!!
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 08/12/13 13:42

solo per curiosità , dato che a volte , può succedere che un anno possiamo cambiare la regola del numero di sostituzioni (anche se ormai sono anni che facciamo 3 + il portiere) , il codice vba deve essere "stravolto" oppure cambiare qualche stringa?
esempio può succedere di fare 4 sostituzioni (4 + il portiere)
oppure 3 sostituzioni compreso il portiere.

ps questa domanda faceva parte del post precedente =-)

pps auguri e complimenti x il tuo 10.000 post !!!!
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 10/12/13 02:21

Per rendere flessibile la funzione FanSost ho modificato il codice come segue:
Codice: Seleziona tutto
Function FanSost(ByRef TitVoti As Range, ByRef TitRuol As Range, ByRef ReplVoti As Range, ByRef ReplRuol As Range, ByVal NSost As Long, ByVal valPort As Boolean) As Variant
Dim I As Long, J As Long, TotRep As Long, myRes()
'
ReDim myRes(1 To ReplVoti.Count)
ReDim myScr(1 To TitVoti.Count)
myScr = TitRuol.Value
'
For I = 1 To ReplVoti.Count
    If ReplVoti.Cells(I, 1) <> "-" And ReplVoti.Cells(I, 1) <> " " And ReplVoti.Cells(I, 1) > 0 Then
        If TotRep < NSost Then
            For J = 1 To TitVoti.Count
                If UCase(myScr(J, 1)) = UCase(ReplRuol.Cells(I, 1)) And (Not IsNumeric(TitVoti.Cells(J, 1)) Or TitVoti.Cells(J, 1) = 0) Then
                    myRes(I) = ReplVoti.Cells(I, 1).Value
                    myScr(J, 1) = ""
                    If UCase(TitRuol.Cells(I, 1)) <> "P" Or valPort = True Then TotRep = TotRep + 1
                    If TotRep >= NSost Then GoTo Esci Else Exit For
                End If
            Next J
        End If
    End If
Next I
Esci:
If Parent.Caller.Rows.Count > 1 Then myRes = Application.WorksheetFunction.Transpose(myRes)
FanSost = myRes
End Function

Dovrai ora richiamarla con questa sintassi:
Codice: Seleziona tutto
=FanSost(AA;BB;CC;DD;NN;1/0)
AA: l' intervallo con i voti dei titolari
BB: l' intervallo con il ruolo dei titolari
CC: l' intervallo con i voti dei panchinari
DD: l' intervallo con il ruolo dei panchinari
NN: il numero di sostituzioni
1/0: il valore della sostituzione del portiere; 0=non si conta , 1 (o qualsiasi numero diverso da 0)=si conta

Quanto alla freccia colorata, puoi ottenere quell' effetto come suggerito da Flash qui: viewtopic.php?f=26&t=100608#p580970

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

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 10/12/13 10:01

semplicemente fantastico.

grazie mille.....
funziona tutto alla perfezione anche se la prima volta avevo copiato la formula senza modificare gli intervalli ... :D :D :D


anche se so di non aver mantenuto la promessa di non disturbarti più, ti faccio queste 2 domande "stupide" ma non riesco a trovare la soluzione su internet secondo me solo perchè da google non scrivo la domanda corretta.
comunque questo è il file:
http://www.filedropper.com/testok
a questo punto devo ordinale per "T" la colonna B selezionando l'intervallo B4:D28, quando però la vado ad ordinare, si "porta dietro" anche il colore di riempimento, come posso fare x evitarlo?
la seconda domanda , ho fatto una formattazione condizionale sulla colonna C ma è possibile "smussare" gli angoli del colore di riempimento relative alle lettere A C D P ?

grazie ancora per la formula delle sostituzioni.
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 10/12/13 13:58

Non ho capito come vorresti i colori dopo l' ordinamento e come invece risultano; puoi allegare due screenshot con "come vengono" e "come vorresti che vengano"? Per come fare guarda qui: viewtopic.php?f=26&t=80395#p466013
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 10/12/13 19:19

ecco il file

http://www.filedropper.com/facsimile

spero che anche cosi vada bene....
grazie
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 10/12/13 20:11

Perdona, non capisco cosa vuoi fare...
I dati di partenza sono cosi' (Fig 1)
Immagine

Uploaded with ImageShack.us

Dopo l' ordinamento vorresti vederli cosi' (Fig 2)
Immagine

Uploaded with ImageShack.us

Mentre invece diventano (Fig 3)
Immagine

Uploaded with ImageShack.us

Ma tu vuoi fare una squadra con 3 portieri titolari e 8 difensori?

Quanto all' effetto estetico degli angoli smussati sul colore dei ruoli, non escludo che si possa fare ma non ne ho nessuna idea.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 10/12/13 23:14

in effetti nn mi sono spiegato bene...
o meglio dovevo essere più preciso....
nn guardare i nomi dei giocatori , era solo per fare un esempio, volevo solo farti notare i colori di riempimento.
normalmente una riga è più grigia e l'altra e meno , ma appena ordino per T, oltre ai nomi dei giocatori, si porta dietro
anche i colori di riempimento.

x spiegarmi meglio:
inizialmente il file è questo:
Immagine

dopo aver ordinato per T diventa questo:
Immagine

ma dovrebbe essere così:
Immagine

grazie x la tua disponibilità.
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 10/12/13 23:17

il colore di riempimento deve rimanere sempre lo stesso e ordinare solo i caratteri
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 11/12/13 01:05

Ahaaaa... Cosi' suona meglio...
Non devi usare la formattazione per colorare quelle righe, ma la formattazione condizionale:
-seleziona l' area T4:T31 e D4:G31
-imposta uno sfondo grigio chiaro
-imposta una formattazione condizionale con la formula =RESTO(SUBTOTALE(3;$D$3:$D4);2)=1 e con sfondo grigio scuro
In questo modo e' la posizione che determina il colore, anche dopo l' ordinamento.

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

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 11/12/13 12:22

yessssssss
sarà anche il tuo mestiere, ma come fai???? bohhhhhhhhh?
comunque va benissimo....
solo per curiosità a cosa serve l'area T4:T31? poi lo devo tenere conservato questo intervallo???
ho modificato l'area selezionata in base alla mia esigenza e cioè B4:G28, la formula funziona lo stesso, ma per caso va cambiata?

ultima cosa
per mettere le celle ordinate per T in modo automatico devo registrare una macro giusto?
se si, almeno questa la so fare !!!!
grazieeeeeeeeeeeeeeee
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 11/12/13 15:21

L' area non doveva essere T4:T31 ma B4:B31 (mi ha distratto la T di intestazione).

Quanto all' ordinamento, direi che la cosa migliore e' provare.

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

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 12/12/13 21:30

grazie mille.....
poi ti tengo aggiornato sulla macro...
grazie ancora per la tua disponibilità.
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 16/12/13 09:47

eccomi di nuovo qua....

allora questa è la mia macro:

Codice: Seleziona tutto
Sub ordinapert()
'
' ordinapert Macro
'
' Scelta rapida da tastiera: CTRL+o
'
    Range("A3:C28").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("A4:A28"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("A3:C28")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("H3:J28").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("H4:H28"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("H3:J28")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("O3:Q28").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("O4:O28"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("O3:Q28")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("V3:X28").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("V4:V28"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("V3:X28")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("AC3:AE28").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("AC4:AC28"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("AC3:AE28")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("AJ3:AL28").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("AJ4:AJ28"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("AJ3:AL28")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A34:C59").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("A35:A59"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("A34:C59")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("H34:J59").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("H35:H59"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("H34:J59")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("O34:Q59").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("O35:O59"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("O34:Q59")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("V34:X59").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("V35:V59"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("V34:X59")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("AC34:AE59").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("AC35:AC59"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("AC34:AE59")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("AJ34:AL59").Select
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("1^").Sort.SortFields.Add Key:=Range("AJ35:AJ59"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="T", DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("1^").Sort
        .SetRange Range("AJ34:AL59")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A3").Select
End Sub


questa macro mi permette di ordinare per T alcune colonne.
il mio "problema" è:
questa macro e stata creata nel foglio "1^", io devo creare 36 foglio ( 1^ - 2^ - 3 ^ - etc etc)
esiste un codice che sostituisca la dicitura ("1^") in questa macro che possa andar bene per tutti i e 36 fogli,
oppure li devo cambiare manualmente da 1^ in 2 ^ , in 3^ etc in base al foglio che la macro lavora???
grazie
gigilatrottola
Utente Senior
 
Post: 190
Iscritto il: 10/06/06 09:58

PrecedenteProssimo

Torna a Applicazioni Office Windows


Topic correlati a "formula per le sostituzioni in automatico (fantacalcio)":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti