Moderatori: Anthony47, Flash30005
Private Sub Worksheet_Activate()
Set area = ActiveSheet.UsedRange
X = area.Columns.Count
For Colonna = 1 To X
Range(Cells(1, Colonna), Cells(1, Colonna).End(xlDown)).Select
Selection.Sort Key1:=Cells(1, Colonna), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Next
End Sub
Se ad esempio la tua matrice è A1:Z20 e vuoi i primi 100 valori nelle celle AA1:AA100, scrivi in AA1 la formula =GRANDE($A$1:$Z$20;RIF.RIGA()) e poi la copi fino a AA100.mikecodadilupo ha scritto:per matrici 20*20 di cui mi serve ordinare 100 valori mi occorre di sicuro VBA.....non posso mettermi a scrivere per ogni cella la relativa funzione....o almeno credo che esista un metodo più veloce...
archimede ha scritto:Se ad esempio la tua matrice è A1:Z20 e vuoi i primi 100 valori nelle celle AA1:AA100, scrivi in AA1 la formula =GRANDE($A$1:$Z$20;RIF.RIGA()) e poi la copi fino a AA100.mikecodadilupo ha scritto:per matrici 20*20 di cui mi serve ordinare 100 valori mi occorre di sicuro VBA.....non posso mettermi a scrivere per ogni cella la relativa funzione....o almeno credo che esista un metodo più veloce...
Private Sub CommandButton1_Click()
Range("n1").Select
ActiveCell.Formula = "=LARGE(A1:F10,ROW())"
Range("n1:n/Z/").Select
Selection.FormulaArray = "=LARGE(A1:F10,ROW())"
End Sub
cassioli ha scritto:archimede ha scritto:Se ad esempio la tua matrice è A1:Z20 e vuoi i primi 100 valori nelle celle AA1:AA100, scrivi in AA1 la formula =GRANDE($A$1:$Z$20;RIF.RIGA()) e poi la copi fino a AA100.mikecodadilupo ha scritto:per matrici 20*20 di cui mi serve ordinare 100 valori mi occorre di sicuro VBA.....non posso mettermi a scrivere per ogni cella la relativa funzione....o almeno credo che esista un metodo più veloce...
Forte...![]()
E se invece ho la matrice qui sotto, e voglio riordinarne una copia in base al punteggio?
Germania 6
Polonia 7
Ecuador 1
Costa Rica 2
Si puo' fare senza VBA?
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;1);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;2);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;3);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;4);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=A$1/RIF.RIGA()mikecodadilupo ha scritto:io ho nelle celle A1:L1, venti numeri che so....A1=1000, B1=480, C1=660, ecc...
io vorrei adesso che nelle celle della riga 2 vengano riportati i valori delle corrispettive celle superiori divisi per due.....cioè A2=500, B2=240, C2=330, ec...
vorrei che nella riga 3 ci fossero i valori delle celle della prima riga ma divise per tre, cioè A3=333,33 B3=160, C3=220 ecc
Private Sub CommandButton1_Click()
Set area = ActiveSheet.UsedRange 'Definisci il numero di colonne della matrice
X = area.Columns.Count 'Definisci il numero di righe della matrice
Y = area.Rows.Count
Dim massimo_valore As Single 'Effettua i vari rapporti per ogni riga
For colonna = 0 To X - 1
Range("A1").Offset(1, colonna).Select
ActiveCell.FormulaR1C1 = "=R[-1]C/ROW()"
Range("A2:A10").Offset(1, colonna).Select
Selection.FormulaArray = "=R[-1]C/ROW()"
Next
'Assegna il 20° valore più grande ad una cella
Range("A20").Value = "=large(A1:J11,20)"
massimo_valore = Range("A20").Value
Range("a1").Select
'Colora di rosso le celle conteneti i valori dal 1° al 20°
For riga = 0 To Y - 8
For colonna = 0 To X - 1
If ActiveCell.Value >= massimo_valore Then
ActiveCell.Interior.Color = vbRed
Else
ActiveCell.Interior.Color = vbWhite
End If
ActiveCell.Offset(0, 1).Select
Next
Cells(ActiveCell.Row + 1, 1).Select
Next
End Sub
Range("A20").Value = "=large(A1:J11,20)"
massimo_valore = Range("A20").Value
Dai il focus alla cella A1, seleziona tutta la matrice quindi Formato --> Formattazione Condizionale --> La formula è --> =RANGO(A1;$A$1:$J$11)<=20mikecodadilupo ha scritto:vorrei inoltre che dalla prima riga alla decima riga vengano selezionati in Rosso i venti numeri più grandi di tutta la matrice A1:L10.
mikecodadilupo ha scritto:grazie tante...con la funzione RANGO tutto si semplifica alla grande...mi sorge un ultimo dubbio....
se in A1 ho 1000 e in A2,A3,A4,ecc... volgio la sua metà, il suo terzo, il suo quarto....uso tranquillamente
=A1/rif.riga()
e lo copio su tutte le celle che mi interessano...
ma se il mio numero di partenza lo avessi ad esempio nella cella C8....posso usare ancora rif.riga() in C9 per ottenere la metà di C8???? o in C10 per ottenere 1/3 di C8???
e se si...in che modo???
E se invece ho la matrice qui sotto, e voglio riordinarne una copia in base al punteggio?
Germania 6
Polonia 7
Ecuador 1
Costa Rica 2
Si puo' fare senza VBA?
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;1);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;2);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;3);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;4);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
E se invece ho la matrice qui sotto, e voglio riordinarne una copia in base al punteggio?
cassioli ha scritto:cassioli ha scritto:archimede ha scritto:Se ad esempio la tua matrice è A1:Z20 e vuoi i primi 100 valori nelle celle AA1:AA100, scrivi in AA1 la formula =GRANDE($A$1:$Z$20;RIF.RIGA()) e poi la copi fino a AA100.mikecodadilupo ha scritto:per matrici 20*20 di cui mi serve ordinare 100 valori mi occorre di sicuro VBA.....non posso mettermi a scrivere per ogni cella la relativa funzione....o almeno credo che esista un metodo più veloce...
Forte...![]()
E se invece ho la matrice qui sotto, e voglio riordinarne una copia in base al punteggio?
Germania 6
Polonia 7
Ecuador 1
Costa Rica 2
Si puo' fare senza VBA?
Ah, trovato... ma che cribbio di formula!!!![]()
- Codice: Seleziona tutto
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;1);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;2);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;3);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
=SCEGLI(CONFRONTA(GRANDE($H$5:$H$8;4);$H$5:$H$8;0);$B$5;$B$6;$B$7;$B$8)
I nomi sono in b5-b8 e i punti in h5-h8.
Torna a Applicazioni Office Windows
Ordinare colonne sulla stessa riga se stesso contenuto Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 9 |
Inserire dati filtrati da 2 file ad un terzo file Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 14 |
Supporto per sviluppo macro VBA Ordinare per data Autore: Carletto Ribolla |
Forum: Applicazioni Office Windows Risposte: 3 |
Inserire add.in nella barra di avvio veloce in excel 2003 Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 4 |
Excel: problema con date se devo unirle a testi Autore: valle1975 |
Forum: Applicazioni Office Windows Risposte: 5 |
Visitano il forum: Nessuno e 9 ospiti