Home › Forum › Domande su Excel VBA e MACRO › [RISOLTO] Ordinamento Ambi dal più piccolo al più grande
Taggato: Ordinamento
-
AutorePost
-
-
Una buona sera a tutti mi sono appena iscritto vorrei trovare la soluzione al mio quesito, il mio problema e trovare 3 ambi concatenati in un intervallo e ordinarli dal più piccolo al più grande in poche parole piccolo 1 piccolo 2 piccolo 3 , i tre ambi da ricercare sono il primo X5 il secondo Y8 il terzo Z5 questi 3 ambi sono presenti nel intervallo L8:S8, vorrei ordinarli come esempio nel file allegato nel intervallo X13:Z13, spero di essermi spiegato.
http://www.filedropper.com/ordineambidalpipiccoloalpigrande
Saluti.
-
Questo topic è stato modificato 3 anni fa da
sid.
-
Questo topic è stato modificato 3 anni fa da
-
Se tu vuoi ordinare dal più piccolo, il risultato corretto è
45-46
45-47
45-48
Quei valori sono stringhe.
Se cerchi una soluzione con le formule, sono il meno indicato; se vuoi ti consiglio una soluzione con vba
-
Un esempio:
Sub ORDINA() Dim Appoggio As Variant, X As Variant, Y As Variant, v As Variant v = Array(Range("X5").Value, Range("Z5").Value, Range("Y8").Value) For X = LBound(v) To UBound(v) - 1 For Y = X + 1 To UBound(v) If v(X) > v(Y) Then Appoggio = v(X) v(X) = v(Y) v(Y) = Appoggio End If Next Y Next X With Application Range("X13:Z13") = .Transpose(.Transpose(v)) End With End Sub
-
Gli ambi X5 Y8 Z5 servono per fare il confronto con l intervallo L8:S8 ripropongo il file
http://www.filedropper.com/ordineambi_2
-
Questa risposta è stata modificata 3 anni fa da
Francis.
-
Questa risposta è stata modificata 3 anni fa da
-
Prova la macro cos’ rivista
Sub ORDINA() Dim j As Long, nIncr As Long Dim Appoggio As Variant, X As Variant, Y As Variant, v As Variant, mioArray() As Variant Dim ws1 As Worksheet Set ws1 = Sheets("Foglio1") ' nome tuo foglio v = ws1.Range("L8:S8").Value For j = LBound(v, 2) To UBound(v, 2) If Not v(1, j) = vbNullString Then ReDim Preserve mioArray(nIncr) mioArray(nIncr) = v(1, j) nIncr = nIncr + 1 End If Next j For X = LBound(mioArray) To UBound(mioArray) - 1 For Y = X + 1 To UBound(mioArray) If mioArray(X) < mioArray(Y) Then Appoggio = mioArray(X) mioArray(X) = mioArray(Y) mioArray(Y) = Appoggio End If Next Y Next X ' ReDim Preserve mioArray(2) With Application ws1.Range("X13:Z13") = .Transpose(.Transpose(mioArray)) End With Set ws1 = Nothing End Sub
-
Perdonami ma qualcosa non quadra
Mi hai detto che:
– devo prendere in considerazione gli ambi di L8:S8
– prendere i tre minori
– ordinarli dal più piccolo al più grande
é quello che fa la macro.Se invece dici che il confronto riguarda i tre ambi di X5,Z5,Y8, allora andava bene la macro precedente
-
Sid provo tutto con calma nel pomeriggio, ti informo.
Saluti
-
-
AutorePost
- Il topic ‘[RISOLTO] Ordinamento Ambi dal più piccolo al più grande’ è chiuso a nuove risposte.