MaxSe



  • "Max.Se"
    di Carletto (utente non iscritto) data: 21/03/2016 16:31:10

    Ciao a tutti,
    scusate ma non sapevo come intitolare la mia discussione.
    Il problema è il seguente: avrei bisogno di un codice per ricercare l'indirizzo di una cella che contenga il valore massimo relativo ad alcuni parametri preimpostati.
    Nell'esempio allegato riesco a spiegarmi decisamente meglio :)
    Ringrazio chiunque possa darmi una mano



  • di patel data: 21/03/2016 17:12:19

    non capisco, si i dati di input sono riga e colonna avrai come risultato un solo valore, non il massimo





  • di Carletto (utente non iscritto) data: 21/03/2016 17:22:32

    Ciao patel,
    no i dati in input non corrispondono subito a un valore univoco.
    Ad esempio, sulla terza riga ho due valori associati a "Prova2".
    Mi serve capire quale in quale di queste celle è contenuto il massimo.
    Spero di essere stato chiaro, se così non fosse dimmelo pure.
    Grazie!



  • di Carletto (utente non iscritto) data: 21/03/2016 17:23:27

    Non fornisco infatti una colonna, ma un campo intestazione che può essere ripetuto diverse volte



  • di patel data: 21/03/2016 18:58:50

    il file reale ha molte colonne ? potresti allegare un esempio più realistico ?





  • di Albatros54 data: 22/03/2016 17:29:10

    Ho buttato giu ,queste righe di codice, il codice fa riferimento alla struttura del file che hai allegato.Adattalo alle tue esigenze.
     
    Option Base 1
    Sub MatriceValoreMassimo()
        Dim tabella As Range
        Dim Rng As Range
        Dim lRiga As Integer
        Dim priga As Integer
        Dim matrice()
        Dim sh As Worksheet
        Dim sh1 As Worksheet
        Application.ScreenUpdating = False
        Set sh = ThisWorkbook.Worksheets("Sheet1")
        Set sh1 = ThisWorkbook.Worksheets("Sheet2")
        With sh
            lRiga = .Range("A" & Rows.Count).End(xlUp).Row
            Set Rng = Range("a1:f1")
            numerocelle = 0
            For Each cl In Rng
                a = Cells(2, 7)
                If cl = Cells(2, 7) Then
                    cl.Select
                    numerocelle = numerocelle + 1
                End If
            Next
        End With
        ReDim matrice(1 To numerocelle, 1 To 2)
        a = Cells(2, 8)
        l = 1
        For Each cl In Rng
            If cl = Cells(2, 7) Then
                cl.Select
                matrice(l, 1) = ActiveCell.Offset(a - 1, 0)
                matrice(l, 2) = ActiveCell.Offset(a - 1, 0).Address
                sh1.Activate
                Cells(l, 1) = matrice(l, 1)
                Cells(l, 2) = matrice(l, 2)
                sh.Activate
                l = l + 1
            End If
        Next
        Application.ScreenUpdating = True
        MsgBox UBound(matrice)
        Cells(2, 9) = WorksheetFunction.Max(matrice)
        MsgBox WorksheetFunction.Max(matrice)
        Cells(2, 9) = WorksheetFunction.Max(matrice)
        priga = sh1.Range("A" & Rows.Count).End(xlUp).Row
        Set tabella = sh1.Range("a2", "b" & priga)
        MsgBox WorksheetFunction.VLookup((sh.Range("i2")), Range("tabella"), 2, False)
        Cells(3, 9) = WorksheetFunction.VLookup(Range("I2"), Range("tabella"), 2, False)
    End Sub
    
    






  • di Carletto (utente non iscritto) data: 23/03/2016 17:48:11

    Albatros 54 grazieee!
    tutto come richiesto, perfetto!
    Buona serata!