Valutazione 4.87/ 5 (100.00%) 5838 voti

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 gigilatrottola » 16/12/13 16:38

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


rileggendo un post vecchio , flash consigliava di nn mettere suffissi , così ho fatto ed ho modificato la macro...
rimango in attesa di una soluzione....
grazie
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Sponsor
 

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 17/12/13 00:10

Il sistema secondo me piu' semplice e' di eliminare tutti gli " ActiveWorkbook.Worksheets("1")" e sostituirli con "ActiveSheet"; anche perche' la macro come e' in molte parti fa gia' riferimento all' ActiveSheet invece che al foglio "1" (e secondo me ti va in errore se la esegui su un foglio diverso dal "1").
Poi aggiungi questa ulteriore macro che seleziona uno dopo l' altro i 36 fogli e richiama la macro di ordinamento. Manderai in esecuzione la nuova macro quando vuoi lavorare su tutti i foglio 1-36, oppure la vecchia "ordinapert" quando vuoi lavorare solo sul foglio selezionato.
Codice: Seleziona tutto
Sub main()
Dim I As Long
'
Application.ScreenUpdating = False
For I = 1 To 36
    Sheets(CStr(I)).Select
    Call ordinapert
Next I
Sheets("1").Select
Application.ScreenUpdating = True
End Sub


Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 17/12/13 10:06

ciao Anthony47 ,
per quando riguarda la prima macro , ora è tutt'ok....risolto alla grande...
per quando riguarda la macro fatta da te, mi spieghi cortesemente la funzione?
nel senso io lavoro un foglio alla volta, non tutti e 36 contemporaneamente....
oppure ho capito male?
grazie mille e buona giornata
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 17/12/13 22:21

Avevo capito che il problema era far lavorare il codice su tutti i fogli; se lo fai un foglio alla volta allora butta la Sub main e tieniti solo la nuova Sub ordinapert.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 18/12/13 00:10

grazie mille
e buona notte.....
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 18/12/13 19:47

ciao antonhy

http://www.filedropper.com/testok

volevo chiederti un favore( o meglio, un'altro)
la macro che c'è in questo file ( creata da flash anni fa) funziona benissimo.
vorrei solo eliminare una riga, tipo la numero 1, per fare in modo che la scritta classifica occupi solo 2 righe e nn 3.
nella macro quale valore devo modificare ?
se semplice va bene, altrimenti nn fa niente.

grazie
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Flash30005 » 19/12/13 01:19

Ho modificato la macro per renderla più flessibile
Codice: Seleziona tutto
Public VettSqP(12), VettSqA(12) As String, VettRP(12), VettRA(12), NSq, RigaIni As Integer

Sub ordinaclassifica()
NSq = 12
For RRT = 1 To 10
If Worksheets("classifica").Range("B" & RRT).Value = "SQUADRA" Then
RigaIni = RRT + 1
Exit For
End If
Next RRT
Worksheets("classifica").Range("K" & RigaIni & ":K" & NSq + 4).ClearContents
For RR = RigaIni To NSq + 4
VettSqP(RR - 4) = Worksheets("classifica").Range("B" & RR).Value
VettRP(RR - 4) = RR
Next RR
'----------------- Macro ordinamento classifica

Call ordinamento

'------------------Fine Macro ordinamento
For RR = RigaIni To NSq + 4
VettSqA(RR - 4) = Worksheets("classifica").Range("B" & RR).Value
VettRA(RR - 4) = RR
Next RR
For SqP = 1 To NSq
    For SqA = 1 To NSq
        If VettSqP(SqP) = VettSqA(SqA) Then
            Diff = VettRP(SqP) - VettRA(SqA)
            If Diff < 0 Then
                Worksheets("classifica").Range("K" & SqA + 4).Value = "q"
                Worksheets("classifica").Range("K" & SqA + 4).Font.Name = "Wingdings 3"
                Worksheets("classifica").Range("K" & SqA + 4).Font.Size = 12
                Worksheets("classifica").Range("K" & SqA + 4).Font.ColorIndex = 3
            End If
            If Diff > 0 Then
                Worksheets("classifica").Range("K" & SqA + 4).Value = "p"
                Worksheets("classifica").Range("K" & SqA + 4).Font.Name = "Wingdings 3"
                Worksheets("classifica").Range("K" & SqA + 4).Font.Size = 12
                Worksheets("classifica").Range("K" & SqA + 4).Font.ColorIndex = 10
            End If
            If Diff = 0 Then
                Worksheets("classifica").Range("K" & SqA + 4).Value = "="
                Worksheets("classifica").Range("K" & SqA + 4).Font.Name = "Copperplate Gothic Light"
                Worksheets("classifica").Range("K" & SqA + 4).Font.Size = 12
                Worksheets("classifica").Range("K" & SqA + 4).Font.ColorIndex = 6
            End If
        End If
    Next SqA
Next SqP
End Sub
Private Sub ordinamento()
    Range("B" & RigaIni - 1 & ":K" & NSq + 4).Select
    Selection.Sort Key1:=Range("C" & RigaIni), Order1:=xlDescending, Key2:=Range("I" & RigaIni) _
        , Order2:=xlDescending, Key3:=Range("G" & RigaIni), Order3:=xlDescending, Header _
        :=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
        , DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
    Range("A3").Select
End Sub



Copia l'intero codice e sostituiscilo ad una copia del tuo file originale con testata di 3 righe (titolo classifica)
la testi per bene con una tabella avente tutti i dati.
Dopodiché, eliminerai una riga della testata
e riprovi la macro, dovrebbe funzionare ugualmente
Fai sapere
ciao
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 19/12/13 15:02

ciao flash,
praticamente a 3 funziona, mentre a 2 no, come vedi nel file allegato,

http://www.filedropper.com/test2_6

in effetti mi calcola anche la riga 15, come se fosse sempre a 3 righe (la scritta classifica)
poi giusto per provare ho eliminato anche un'altra riga , così la scritta classifica va tutto in una riga e mi ha dato questo errore:


VettSqP(RR - 4) = Worksheets("classifica").Range("B" & RR).Value

non lo so se può esserti utile, ma è stato giusto per prova.
a me comunque serve su 2 righe.
grazie mille e buona giornata.
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 21/12/13 12:37

dato che stiamo a natale, ne approfitto x un altro problema , e dato che siamo/siete più buoni mi aiutate (come avete fatto sempre) :D :D :D :D :D

questo è il file:
http://www.filedropper.com/trovaesost

logicamente con un semplice trova e sostituisci risolvo il problema....
però volevo sapere se c'era una formula che inserendo nelle celle R1:R12 i nomi delle squadre , contemporaneamente mi sostituisce i nomi nel calendario a fianco :B1:M33

grazie mille....e buon fine settimana a tutti.
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 23/12/13 01:38

In B1 di Foglio2 metti la formula
Codice: Seleziona tutto
=CERCA.VERT(Foglio1!B1;Foglio1!$P$1:$R$100;3;0)

Poi copi quanto basta in lungo e largo

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 23/12/13 17:16

a volte mi rendo conto di perdermi in un bicchiere d'acqua....
come sempre grazie mille...
e di nuovo auguri.....
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 03/01/14 19:27

ciao ragazzi, rinnovo a tutti gli auguri di buon anno....
volevo solo sapere se era possibile rendere le formule in un foglio excel "invisibili" cioè che nn si vedono, in modo da proteggerle, oppure nn modificabili con un password in modo che anche accidentalmente nn vengono cambiate.

grazie mille....
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 05/01/14 01:29

Quello che chiedi e' fattibile tramite "protezione" del foglio di lavoro. Come funziona e quali sono le opzioni disponibili te lo dira l' help on line di excel, alla voce "Proteggere un foglio di lavoro o una cartella di lavoro con una password"

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi gigilatrottola » 05/01/14 11:09

ok grazie mille
buona domenica....
gigilatrottola
Utente Senior
 
Post: 184
Iscritto il: 10/06/06 09:58

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi pulpit123 » 19/06/14 12:58

Ciao ragazzi,
scusate il disturbo, ma non riesco ad aprire nessuno dei file precedenti. Chiede di pagare per accede ai file eccecc.
Ho lo stesso problema di gigilatrottola ma non riesco a vedere la soluzione dai file precedenti.
Qualcuno potrebbe dirmi come fare per scaricarli, o potrebbe allegarne uno nuovo?
Vi ringrazio!
pulpit123
Utente Junior
 
Post: 16
Iscritto il: 19/06/14 09:19

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 19/06/14 14:55

Ciao pulpit123, benvenuto nel forum.
Personalmente non ho copia dei file pubblicati da gigilatrottola, vediamo se gigi (tra un giro e l'altro) riesce ad aiutarti...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per le sostituzioni in automatico (fantacalcio)

Postdi Anthony47 » 19/06/14 23:54

Comunque se entro 1-2 giorni gigi non ripubblica i suoi file allora suggerisco di aprire una nuova discussione allegando il tuo file (per come fare guarda qui: viewtopic.php?f=26&t=80395)

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13895
Iscritto il: 21/03/06 16:03
Località: Ivrea

Precedente

Torna a Applicazioni Office Windows


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


Chi c’è in linea

Visitano il forum: Nessuno e 13 ospiti