assegnare variabile vba tramite cercavert
Hai un problema con Excel? 
assegnare variabile vba tramite cerca.vert
di ritz75 (utente non iscritto) data: 02/05/2016 20:23:43
Buonasera a tutti.
Vi scrivo per un aiuto. Cercherò di essere il più chiaro possibile pur sapendo che ciò che sto cercando di fare non è semplicissimo (almeno per me che non sono un esperto VBA) nè da fare nè da spiegare e non so nemmeno se sia possibile....
Devo scrivere il valore/stringa "pippo" in una cella (ad esempio in cella B5 del foglio xls allegato) tramite una macro (chiaramente semplifico una parte di una macro più complessa che sono riuscito a compilare, parte sulla quale mi sto arenando).
Per identificare la cella in cui scrivere il valore "pippo" voglio fare riferimento al comando .cells(riga, colonna).... nel caso di cella B5.... .cells(5, 2)
Supponiamo che r = riga e c = colonna..... Ora provo a descrivere la complicazione (per non definirla peggio)....
Vorrei definire la variabile r come cerca.verticale (o funzione vba simile) del valore X in un elenco. Allo stesso modo per la variabile c come cerca.verticale del valore X in un elenco. Come potete verificare dalla tabella seguente, X descrive le coordinate di riga e colonna in cui andrò a scrivere pippo (allego il file se può servire (la tabella si trova in G1:I4)
valore riga colonna
X 5 2
Y 6 2
Z 7 2
In pratica per poter scrivere in B5 la parola "pippo" vorrei sottoporre un codice del genere (scusate ma lo scrivo in excel visto che VBA non mi è ancora familiarissimo...):
r = cerca.vert("X";G1:I4;2;0) <-- definizione della variabile che in VBA è fatta con vlookup( al posto di cerca.vert
c = cerca.vert("X";G1:I4;3;0) <-- definizione della variabile che in VBA è fatta con vlookup( al posto di cerca.vert
.cells(r, c).select
In questo modo se volessi scrivere pippo in B6 anzichè in B6 mi basterebbe sostituire nel cerca.vert alla X la Y senza dover andare a ridefinire le celle in cui pescare i riferimenti di riga e colonna.
E' complicato da spiegare lo so....e mi scuso se ci ho messo anche del mio nel non essere sufficientemente chiaro.
Per sintetizzare... la definizione del valore da assegnare ad una variabile che poi verrà utilizzata come riferimenti di cella in una macro, può essere effettuata tramite un cerca verticale da un elenco debitamente preparato? Se si quale è l'istruzione corretta?
Purtroppo non sono minimamente in grado di sottoporvi un mio codice scritto perchè non trovo modo per definire la variabile in maniera funzionante.... vi allego l'excel per esemplificare quanto ho cercato di descrivere.
Grazie per i contributi
di Mister_x (utente non iscritto) data: 03/05/2016 00:37:58
ciao
spiegazione ???????
comunque approccio di sub() per capire il problema
da inserire nel modulo del foglio
in base ai tuoi dati , di cui non ho capito niente
ciao
Option Explicit
Sub assegnaVal()
Dim i As Long
For i = 2 To 4
If Cells(i, "G") = "X" Then
Cells(Cells(i, "H").Value, Cells(i, "I").Value) = "Pippo"
End If
If Cells(i, "G") = "Y" Then
Cells(Cells(i, "H").Value, Cells(i, "I").Value) = "Pluto"
End If
If Cells(i, "G") = "Z" Then
Cells(Cells(i, "H").Value, Cells(i, "I").Value) = "Paperino"
End If
Next i
End Sub
|
Vuoi Approfondire?