Condividi:        

Excel - Devo usare Rif.Riga? Grazie!

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: Excel - Devo usare Rif.Riga? Grazie!

Postdi Anthony47 » 07/05/12 18:47

Sono contento che hai fatto drastici passi avanti, superando anche il mio errore a suggerire (per la formattazione condizionale) la formula sbagliata =$B20=$D$17 invece di quella precedente =$C20=$D$17, esatta.
Adesso devi ordinare i tuoi dati, dalla colonna B a quella in cui hai messo la formula con shinform, per valori decrescenti di quella nuova colonna; perche' i numeri piu' alti (che quindi finiranno in testa) sono quelli dove il nome foglio corrisponde a quanto impostato in D17.

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

Sponsor
 

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi wallace&gromit » 08/05/12 08:51

ho provato ad assegnare una macro autoregistrata al pulsante di selezione in D17
Codice: Seleziona tutto
Sub Caselladiselezione1_Cambia()
    Range("B20:H49").Select
    Selection.Sort Key1:=Range("H20"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub


La cosa interessante è che funziona perfettamente, ma nella colonna H, dove ho le formule shinform vedo per un attimo un numero come quelli descritti da Sasyjoe e poi un messaggio di errore #VALORE!

P.S. per Sasyjoe: non sarebbe più pratico inserire una casella di convalida invece del pulsante di selezione (trovo un po' snervante per esempio arrivare a "mela" premere "giù" e vedere che non succede niente, poi dovere risalire a cercare gli altri.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 08/05/12 10:24

@Anthony non ci riesco con il tuo metodo, perchè ho sempre valori negativi e non riesco a capire cosa sbaglio!
Cmq non mi arrendo!


@Wallace&Gormit
sarebbe piu pratico un pulsante di selezione se le voci fossero realmente 3 frutti.
Però questo file che ho allegato è una bozza. L'orginale ha più di cento "frutti"!

Comunque anche io riesco come te ad ordinare perfettamente seconda mia richiesta i dati da B20:F49 pero in cella H20 ho #Valore!

che risultato dovrei avere in H20?

Inoltre è possibile mettere una doppia condizione nella formattazione condizionale del tipo:
se cella a1=a2 e se b1=b2 evidenzia rigo 2 giallo?

Grazie 1000!
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 08/05/12 11:26

ALLARME ROSSO:

Faccio una distinzione:
Il foglio che ho caricato su internet che voi avete visto (quello 4 fogli Report Mela Banana Arancia) lo chiamo foglio A1
Il foglio a cui sto lavorando per il mio capo ed ho applicato le stesse macro lo chiamo B2

Inerente all'ordine delle righe, nel foglio A1, tutto apposto, cioè riesco a fare quello che fa Wallace&Gormit;
Cioè nel foglio A1 quando applico la macro che mi ha indicato Wallace le righe si ordinano ma nella colonna H le formule Shinform mi danno #valore! PERO' ALMENO LE RIGHE SI ORDINANO ED è QUELLO CHE INTERESSA A ME.

Adesso quando riporto le macro nel foglio B2, chiaramente cambiando l'area delle celle e la cella range, quando applico la macro non mi da nessun tipo di errore ma le righe non si ordinano.
Preciso che nel foglio B2 le righe sono 23000.
Come potrei superare questo errore?


Io faccio cosi:
1)alt + F11
2)incollo questo
3)Function Shinform(ByRef myCell As Range, ByVal mySh As String) As Single
If myCell.HasFormula Then
If Len(Replace(myCell.Formula, mySh & "!", "")) < Len(myCell.Formula) Then Shinform = 1
End If
Shinform = Shinform - myCell.Row / 100000
End Function


Sub Caselladiselezione1_Cambia()
Range("B14:L23014").Select
Selection.Sort Key1:=Range("L14"), Order1:=xlDescending, Header:=xlGuess _
, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
4)In cella L14:L23013 inserisco =shinform(c14;$c$11)

Mi aspetterai:
Come nel foglio A1 che le righe si mettessero in ordine

Succede:
Le righe non si mettono in ordine

Secondo me l'errore sta al punto 4) delle cose che faccio, cioè sbaglio la formula shinform.

Grazie
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi wallace&gromit » 08/05/12 12:24

Sasyjoe ha scritto:Inoltre è possibile mettere una doppia condizione nella formattazione condizionale del tipo:
se cella a1=a2 e se b1=b2 evidenzia rigo 2 giallo?

sì, è possibile, faccio un esempio nel "foglio A1":
con la formula condizionale:
Codice: Seleziona tutto
=E($C20=$D$17;$B20<5)

diventano gialle solo le righe in cui il frutto è mela e il numero di operazione è <5 (ovviamente è solo un esempio)
Sasyjoe ha scritto:@Wallace&Gormit
sarebbe piu pratico un pulsante di selezione se le voci fossero realmente 3 frutti.
Però questo file che ho allegato è una bozza. L'orginale ha più di cento "frutti"!

mah, proprio in questo caso mi sembra snervante dover premere su e giù invece di scorrere una lista, però se a te va bene così....

Per gli altri quesiti sentiamo Anthony.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Anthony47 » 08/05/12 15:11

Per gli altri quesiti sentiamo Anthony
Il fatto e' che io faccio fatica a seguire le informazioni.
Ad esempio:
Devo credere al titolo "Allarme Rosso" a all' affermazione (sotto quel titolo) "Tutto a posto"?

Per "foglio" devo intendere "foglio di lavoro=worksheet" o "cartella di lavoro fatta di tanti fogli"?

Intanto un chiarimento sulla funzione Shinform:
-la formula si ricalcola "mentre" excel ordina i dati; sembra che ci siano lunghi momenti in cui i dati siano "non stabilizzati" e la proprieta' HasFormula delle celle non sia accessibile; si puo' prevenire questo problema estetico (infatti l' ordinamento e' sempre corretto) inserendo nella macro di W&G lo stop al ricalcolo, variando in testa e in coda le modalita' di ricalcolo:
Codice: Seleziona tutto
    Sub Caselladiselezione1_Cambia()
    Application.Calculation = xlCalculationManual  '<<<
'le altre istruzioni
'le altre istruzioni
'le altre istruzioni'
        Range("D17").Select     '<<<
    Application.Calculation = xlCalculationAutomatic  '<<<
    End Sub
Le istruzioni aggiunte sono quelle marcate <<<, tra cui la Range("D17").Select inserita per motivi estetici.

TUTTAVIA, mi accorgo che (se in formato reale dei dati e' quello pubblicato), la funzione shinform e' una inutile complicazione: infatti la colonna C gia' riporta in chiaro l' informazione che io (tramite la shinform) andavo a cercare nelle formule...
Bastera' allora usare in H20 la formula
Codice: Seleziona tutto
=--(MAIUSC(C20)=MAIUSC($D$17))-RIF.RIGA(C20)/100000
e copiarla poi nelle celle sottostanti.
Va adattata al layout dei dati presenti sul foglio reale.

L' uso di questa formula invece dell' altra basata sulla funzione shinform non cambia l' approccio: in col H si calcola un "indice", si usa questo indice per riordinare l' elenco.
Quindi eventuali malfunzionamenti, sia da codice rosso che da codice bianco, vanno innanzitutto esaminati guardando i valori di questo indice, per determinare se esso viene calcolato correttamente o no; un numero positivo (ma inferiore a 1) indica che "il frutto" corrisponde", un numero inferiore a Zero indica la non corrispondenza.

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

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi wallace&gromit » 08/05/12 16:20

Ho qualche proposta:
la formula di Anthony effettivamente sostituisce egregiamente lo shinform.

Anche le modifiche nella macro del pulsante di selezione evitano la visualizzazione di errore
per avere un effetto migliore nell'elenco ho aggiunto un ordina decrescente in funzione del fatturato come prima mossa, in un secondo tempo si procede con l'ordinamento della "frutta".
Ecco il mio codice:
Codice: Seleziona tutto
Sub Caselladiselezione1_Cambia()
    Application.Calculation = xlCalculationManual
    Range("B20:H49").Select
    Selection.Sort Key1:=Range("F20"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
     Selection.Sort Key1:=Range("H20"), Order1:=xlDescending, Header:=xlGuess _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
                Range("D17").Select
    Application.Calculation = xlCalculationAutomatic
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 09/05/12 16:58

Ragazzi dato che, almeno io, sto facendo solo confusione, alla fine non ho capito come devo fare!

Per favore Anthony possiamo ricapitolare un attimo il tutto così vedo di risolvere questo problema!
Perchè ho inserito la nuova macro di Wallace ma ce ancora qualcosa che non va, ma non so cosa!
Se cortesemente puoi indicarmi tutti i passaggi passo passo mettiamo fine a questo problema!
Ti chiedo 1000 volte grazie sia a te che a Wallace!
Grazie ancora.
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Anthony47 » 09/05/12 23:20

Avevo spiegato come la funzione shinform e' stata probabilmente una inutile complicazione, e ho spiegato come si puo' usare in sostituzione la formula =--(MAIUSC(C20)=MAIUSC($D$17))-RIF.RIGA(C20)/100000; vedi qui:
viewtopic.php?f=26&t=95380&p=546756#p546653

Tale formula funziona con la prima macro postata da W&G qui: viewtopic.php?f=26&t=95380&p=546756#p546626

Il tutto e' riferito al tracciato dati che avevi indicato nel file Bozza_Pc_Facile_da_caricare_sul_forum.xlsm, quindi dovrai adattarla al tracciato record del tuo foglio B2:
-nella formula, invece di C20 devi usare la colonna in cui e' riportato in chiaro il "frutto" (o quello che realmente e') e la prima riga (forse 14) dei tuoi dati; mentre $D$17 va sostituito con la cella in cui scegli il tuo valore.
-nella macro devi variare l' area dei dati da ordinare, probabilmente B14:L23014

A scopo prudenziale io aggiungerei comunque nella macro di W&G le istruzioni Application.Calculation = xlCalculationManual / Application.Calculation = xlCalculationAutomatic, come avevo descritto qui: viewtopic.php?f=26&t=95380&start=20#p546653

W&G ha infine descritto un' altra macro (vedi viewtopic.php?f=26&t=95380&start=20#p546656 ) che credo volesse ordinare prima per "frutto prescelto" e poi per Totale fattura; ma non credo che funzioni: visto che l' indice non viene ricalcolato durante l' esecuzione della macro l' ordinamento finale sara' secondo il valore dell' indice e basta; cioe' in testa i frutti prescelti, poi gli altri, rispettando la sequenza con cui erano elencati inizialmente.
Insomma mi permetto di dire che la puoi ignorare.

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

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 10/05/12 08:33

Grande Anthony.
Ci sono riuscito.
E' rimasto un piccolo problema ma non fa niente.
cioè con questa funzione riesco ad ordinare tutte le 23000 righe tranne il primo rigo (mi sono già accertato che il primo rigo faccia parte dell'area di selezione nella macro di Wallace!)
Comunque non fa niente.
Grazie Mille, Questo Forum è la BOMBAA!
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 10/05/12 10:29

AIUTOOOO!!!
Perchè quando apro il file su un altro pc esce l'errore:

Errore di run time '1004':
Errore nel metodo sort per la classe range.


Che devo fare?
Grazie
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 10/05/12 10:33

Ho trovato l'errore!
Da questo errore quando le celle sono bloccate con la protezione!
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 10/05/12 10:34

Quindi come posso fare per far funzionare la macro se le celle sono bloccate?
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi wallace&gromit » 10/05/12 10:39

Ciao, mi riferisco ancora a quanto pubblicato ieri.

voglio solo puntualizzare che sulla mia copia del foglio di lavoro funziona tutto alla perfezione.
Premetto che, volendo vedere qualcosa di più sensato nell'evidenziazione del formato condizionale ho inserito come seconda condizione che il totale fatturato fosse >50.
Il risultato con il semplice ordina era un po' dispersivo.
Allora ho aggiunto nella macro un ordinamento che in un primo tempo ordina per totale fatturato ed in un secondo per frutto. Visto che parte dalla tabella ordinata per fatturato e non da quella originale in questo modo vedo un bell'allineamento con le celle evidenziate sempre in cima (l'effetto è quello voluto insomma).

Per quanto riguarda il fatto che a te, Sasyjoe, non ordina la prima riga potrebbe essere legato al fatto di avere o non avere una riga di intestazione (non dovrebbe, ma in qualche modo magari nella tua versione la prima riga è considerata così).
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 10/05/12 10:59

Wallace come posso risolvere questi due problemi?

La macro non va con le celle bloccate e sul primo rigo la macro non funziona!
Il rigo di intestazione c'è ma non è incluso nell'area della macro!!

Grazie
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Anthony47 » 10/05/12 11:39

Wallace come posso risolvere questi due problemi?
Posso intromettermi? :D :D

Per lavorare sul foglio protetto, aggiungi queste istruzioni in testa e in coda alla macro di ordinamento:
Codice: Seleziona tutto
Sub Caselladiselezione1_Cambia()
    ActiveSheet.Unprotect
'
'
'
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
    , AllowFormattingColumns:=True, AllowFormattingRows:=True
End Sub

Per la gestione della prima riga, modifica nella macro la voce xlGuess in xlNo

Per W&G: fai questa prova:
-ordina la tabella per banana
-modifica un paio di valori in col F sulle mele, creando cosi' una sequenza di valori non in ordine
-ordina per mela e dimmi se viene in ordine come dici.

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

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Sasyjoe » 10/05/12 12:37

Olèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèèè :lol: :aaah :idea: :evil: :diavolo: :P ;) 8) :x :cry: :( :-? :eeh: :neutral: :undecided: :!:


Ora funziona alla perfezione!
Scusate se vi ho fatto perdere tempo e grazie 10000000000000 a tutti!!!
A presto, Ciao!
Sasyjoe
Utente Senior
 
Post: 404
Iscritto il: 04/05/12 13:27

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi wallace&gromit » 10/05/12 12:43

Ops :oops:
Anthony47 ha scritto:Per W&G: fai questa prova:
-ordina la tabella per banana
-modifica un paio di valori in col F sulle mele, creando cosi' una sequenza di valori non in ordine
-ordina per mela e dimmi se viene in ordine come dici.
Hai ragione, non lo faceva.
Ma visto che sono un testone ecco la mia soluzione:
Codice: Seleziona tutto
Sub Caselladiselezione1_Cambia()
    Application.Calculation = xlCalculationManual
    Range("B20:H49").Select
    Selection.Sort Key1:=Range("F20"), Order1:=xlDescending, Header:=xlNo _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
    Application.Calculation = xlCalculationAutomatic
    Call SecondoOrdinamento
End Sub

Sub SecondoOrdinamento()
    Application.Calculation = xlCalculationManual
    Selection.Sort Key1:=Range("H20"), Order1:=xlDescending, Header:=xlNo _
        , OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
                Range("D17").Select
    Application.Calculation = xlCalculationAutomatic
End Sub
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: Excel - Devo usare Rif.Riga? Grazie!

Postdi Anthony47 » 10/05/12 13:17

Prima "sembrava" che funzionasse perche' i dati sul foglio di sasyjoe erano gia' ordinati, nell' ambito dello stesso frutto, per valore decrescente.

Ovviamente basterebbe mettere nella tua macro originale, quella coi i due ordinamenti, l' istruzione Calculate prima del secondo ordinamento.

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

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Excel - Devo usare Rif.Riga? Grazie!":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti