Cerca Verticale

Salve
Il mio problema è:
HO un foglio1 dove risiede un elenco di articoli:
tipo
colonna a = riga1 mele, riga2 pere, riga3 banane ecc.
colonna b = riga1 rosse, riga2 gialle,riga3 mature ecc....

sul foglio2 carico  ogni giorno i miei articoli con le mie qta
tipo
colonna a = riga1 mele, riga2 pere, riga3 banane, riga4 mele, riga5 pere, riga5 banane ecc. 
colonna b= vorrei che il risultato fosse in automatico cercando dall'elenco del foglio1
ho utilizzato questo codice 
ma mi funziona solo su una cella

Public Sub CercaVerticale()

With Worksheets("Foglio5")

.Range("h").FormulaLocal = "=CERCA.VERT($g;$A:$d;2;0)"
.Range("i").FormulaLocal = "=CERCA.VERT($g;$A:$d;3;0)"
.Range("j").FormulaLocal = "=CERCA.VERT($g;$A:$d;4;0)"

End With

End Sub

grazie anticipatamente 
G. Mastellone



 

Informazioni domanda


Ultimo aggiornamento febbraio 27, 2018 Visualizzazioni 211 Si applica a:
Risposta
Salve
Il mio problema è:
HO un foglio1 dove risiede un elenco di articoli:
tipo
colonna a = riga1 mele, riga2 pere, riga3 banane ecc.
colonna b = riga1 rosse, riga2 gialle,riga3 mature ecc....

sul foglio2 carico  ogni giorno i miei articoli con le mie qta
tipo
colonna a = riga1 mele, riga2 pere, riga3 banane, riga4 mele, riga5 pere, riga5 banane ecc. 
colonna b= vorrei che il risultato fosse in automatico cercando dall'elenco del foglio1
ho utilizzato questo codice 
ma mi funziona solo su una cella

Ciao Giovanni,
ci sono parecchie cose che non sono corrette nel codice e  mi meraviglio che possa funzionare anche solamente per una cella. In primo luogo, correggiamo la formula di base (verifica il corretto funzionamento direttamente sul foglio):

=CERCA.VERT(A1;Foglio1!$A$1:$B$100;2;0)

questa è la formula che dovresti utilizzare nella cella B1 del foglio2, adatta alle tue esigenze l'intervallo di ricerca. Può essere comodamente trascinata.

Detto ciò, non capisco la necessità di utilizzare il vba per inserire le formule nelle celle, a meno che non manchi un capitolo alla tua spiegazione.

Ad ogni buon conto, per utilizzare correttamente le formule in vba, è sempre meglio utilizzare la lingua e la sintassi inglese e digitarle utilizzando la proprietà .Formula. La mia precedente diventerebbe così:

=VLOOKUP(A1,Foglio1!$A$1:$B$100,2.0)

Continuando, anche il riferimento .Range("h") non è corretto, o utilizzi anche un indice di riga ad esempio così: .Range("h1") oppure il metodo .Columns(7) (sconsigliabile perché lavora su un intervallo estremamente grande e sicuramente esuberante per le tue esigenze).

Se, infine, hai dei problemi nella traduzione delle formule, puoi utilizzare la funzione allegata, il cui utilizzo mi pare del tutto intuitivo.

Andrea.
---
Function getFormula(cel As Range, Optional bLocal As Boolean = False) As String

  If cel.HasFormula Then
    getFormula = IIf(bLocal, cel.FormulaLocal, cel.formula)
  End If
End Function
---
Andrea

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.

Risposta
Salve
Il mio problema è:
HO un foglio1 dove risiede un elenco di articoli:
<cut>
G. Mastellone




Vedi qui:

E' un punto di partenza da STUDIARE ed ADATTARE al tuo contesto.

Se parole chiave tipo CurrentRegion non ti sono chiare, selezionale con il mouse e premi F1.


Buon lavoro.

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.