Formula "cerca" in vba

Anonimo
2018-04-12T17:08:27+00:00

Salve a tutti,come potete vedere dall'immagine ,ho 2 fogli:"elenco" e "calcoli".Su "calcoli" come potete vedere nella barra delle funzioni,c'è una formula che trova il numero di riferimento sul foglio"elenco" e mi da il valore della cella "c12" (del foglio "elenco"),stessa cosa per le altre celle.La mia domanda è se è possibile scrivere la stessa formula su vba.Grazie in anticipo del vostro aiuto!

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2018-04-13T07:14:16+00:00

Ciao Lorenzo,

come potete vedere dall'immagine ,ho 2 fogli:"elenco" e "calcoli".Su "calcoli" come potete vedere nella barra delle funzioni,c'è una formula che trova il numero di riferimento sul foglio"elenco" e mi da il valore della cella "c12" (del foglio "elenco"),stessa cosa per le altre celle.La mia domanda è se è possibile scrivere la stessa formula su vba.

Prova qualcosa del genere:

  • Alt+F11 per aprire l'editor di VBA
  • Alt+IM per inserire un nuovo modulo di codice
  • Nel nuovo modulo vuoto, incolla il seguente codice:

'=========>>

Option Explicit

'--------->>

Public Sub Tester()

    Dim WB As Workbook

    Dim SH_Elenco As Worksheet, SH_Calcoli As Worksheet

    Dim rngElenco As Range, rngCalcoli As Range

    Dim sAdd As String, sAdd2 As String, sAdd3 As String

    Dim iRow As Long, jRow As Long

    Const sFoglioElenco As String = "Elenco"

    Const sFoglioCalcoli As String = "Calcoli"

    Set WB = ThisWorkbook

    With WB

        Set SH_Elenco = .Sheets(sFoglioElenco)

        Set SH_Calcoli = .Sheets(sFoglioCalcoli)

    End With

    With SH_Elenco

        iRow = .Cells(1, "A").End(xlDown).Row

        Set rngElenco = .Range("A2:A" & iRow)

    End With

    With rngElenco

        sAdd = SH_Elenco.Name & "!" & .Address

        sAdd2 = SH_Elenco.Name & "!" & .Offset(0, 2).Address

    End With

    With SH_Calcoli

        jRow = .Cells(1, "A").End(xlDown).Row

        Set rngCalcoli = .Range("B2:B" & jRow)

        sAdd3 = rngCalcoli.Cells(1, 0).Address(0, 0)

    End With

    rngCalcoli.Formula = "=LOOKUP(" _

                         & sAdd3 & "," _

                         & sAdd _

                         & "," & sAdd2 & ")"

End Sub

'<<========= 

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel
  • Salva il file con l’estensione xlsm
  • Alt+F8 per aprire  la finestra di gestione delle macro
  • Seleziona Tester
  • Esegui

Potresti scaricare il mio file di prova Lorenzo20180413.xlsm

===

Regards,

Norman

La risposta è stata utile?

0 commenti Nessun commento

0 risposte aggiuntive

Ordina per: Più utili