Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Trasformare indirizzo (testo da concatena) in formula

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 15/10/17 16:18

Ciao,
ho creato un file "indice" dove ci sono tutti i nomi dei clienti
per ogni singolo cliente ho creato una scheda dove sono presenti dati anagrafici e molto altro
vorrei popolare il file "indice" con i dati più importanti delle singole schede "clienti"
ad esempio nell'indice inserisco una colonna "totale acquisti effettuati" e, tramite la funzione concatena, creo il percorso per ottenere il dato del "cliente 1", attinto dalla scheda "cliente 1".
=CONCATENA("'G:\SCHEDE CLIENTI\[";B1;".xlsx]SCHEDA PAGAMENTI'!$E$13"), dove B1 è il nome del cliente 1.
Non riesco a trasformare il risultato da formato testo a formula che mi dia il dato presente nella scheda "cliente 1"
Grazie in anticipo per la vostra consueta disponibilità!
Uso Excel 2016
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Sponsor
 

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi Anthony47 » 15/10/17 22:54

Fai cosi':
-apri il file del Cliente1
-scrivi sul file Indice la formula che ti serve (sara' un "collegamento" al file /foglio di Cliente1)
-chiudi il file Cliente1
Nota come la formula si e' trasformata in qualcosa tipo
='C:\Percorso\[NomeFileCliente1.xlsx]NomeFoglio'!$E$13

Usando Concatena ricrea la stringa della formula (escluso l' Uguale), es in H1

Poi userai la formula
Codice: Seleziona tutto
=Indiretto(H1)


Tuttavia per funzionare questa formula richiede che il file NomeFileCliente1 sia aperto, e immagino questo non puoi garantirlo (per tutti i clienti...)

Comunque se puoi creare queste stringhe in una colonna (es la H) allora e' abbastanza facile inserirle come formule in un'altra colonna, utilizzando una macro da sviluppare.

Quindi sviluppa la colonna H col contenuto come ti ho detto (bastano una decina di righe); poi pubblica il file e ci aggiungeremo la macro.

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16798
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 16/10/17 10:15

Grazie Anthony, gentilissimo e superveloce come sempre.
nelle varie colonne, avevo già creato, col metodo che suggerisci tu, tutti i "link" alle caselle esterne dei singoli file (meno il passaggio con "indiretto", che ho provato, ma col risultato di avere tanti rif
se esiste un metodo (o una macro, come suggerisci tu) è possibile averla?
Ricreare un file con i nomi (che dovrei mascherare) e le singole schede sarebbe abbastanza lungo.
Grazie come sempre
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi Anthony47 » 16/10/17 23:56

Ottieni #RIF! Perche' il file indirizzato tramite Indiretto dovrebbe risultare "Aperto"

Visto che non sei in grado dipubblicare un file, allora facciamo cosi':
-fai in modo che nella colonna si crei una stringa pari alla formula che vuoi utilizzare (quindi non solo il riferimento al File /Foglio /Intervallo)
-poi usa questa macro:
Codice: Seleziona tutto
Sub Text2Form()
Dim StrStart, FormStart As String, I As Long
'
StrStart = "K2"         '<<< La posizione dove cominciano le stringhe delle formule
FormStart = "C2"        '<<< La posizione dove inserire le formule
'
For I = Range(StrStart).Row - 1 To Range(StrStart).Offset(10000, 0).End(xlUp).Row
    If Range(StrStart).Offset(I, 0) <> "" Then
        Range(FormStart).Offset(I, 0).FormulaLocal = Range(StrStart).Offset(I, 0).Value
    End If
Next I
End Sub
Le righe marcate <<< sono da modificare come da commento

Ad esempio:
In S2 inserisco il link al file
Codice: Seleziona tutto
'C:\Users\UTENTE_1\Dropbox\SHARED\[LBox_Demo_DA.xlsm]Foglio1'!$A$1:$B$1000
NB: Il primo Apice deve gia' far parte della stringa visibile

In K2 uso questa formula
Codice: Seleziona tutto
="=Cerca.Vert(D" &RIF.RIGA(A2)&";"&$S$2&";2;0)"


Ottengo quindi la stringa della formula:
Codice: Seleziona tutto
=Cerca.Vert(D2;'C:\Users\UTENTE_1\Dropbox\SHARED\[LBox_Demo_DA.xlsm]Foglio1'!$A$1:$B$1000;2;0)


Copio K2 verso il basso ottenendo altre formule analoghe

La macro si occupera' di leggere le stringhe di colonna K e inserirle come formula nella colonna indicata.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16798
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 17/10/17 18:22

Grazie Anthony. Provato. Ma quando lancio la macro mi va in debug..... probabilmente sbaglio qualcosa.
Ma la soluzione sarebbe in ogni caso poco percorribile, perchè le colonne da popolare sono molte (più di 20).
Io stavo cercando una formula che lavorasse esattamente al contrario di formula.testo, ma all'evidenza non esiste.
Grazie comunque per il tempo che mi hai dedicato.
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi Anthony47 » 18/10/17 00:35

Una macro non avrebbe difficolta' a popolare 20 colonne; tra l'altro in genere le formule di una colonna si scrive la prima e si copia verso il basso, non so se il tuo caso e' piu' complesso.
Rimane sempre la necessita' di creare una stringa che possa essere esattamente usata come formula.

Immagino che l' errore ce l'hai sulla riga
Codice: Seleziona tutto
Range(FormStart).Offset(I, 0).FormulaLocal = Range(StrStart).Offset(I, 0).Value

Puoi condividere la stringa che quell'istruzione non riesce a inserire come formula?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16798
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 18/10/17 07:15

Grazie Anthony.
Allego il file esempio e una cattura del messaggio di debug.
La tua pazienza con un neofita come me non ha limiti.
A presto
https://www.dropbox.com/s/c3mityfy272mp ... .xlsm?dl=0
https://www.dropbox.com/s/ld40qjbyb9bvf ... g.JPG?dl=0
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi Anthony47 » 18/10/17 22:23

Tu crei una prima stringa in C2 e sottostanti, che comprendono un "=" iniziale, come se volesse essere gia' una formula; poi pero' usi questa stringa in K2 e sottostanti per creare una formula piu' complessa, dove pero' la componente prelavata da C2 dovrebbe essere priva di = iniziale. Se leggi bene il contenuto di K2 ti accorgi infatti che quella non e' la sintassi corretta per la formula che vorresti compilare.
"=Cerca.Vert(D2;='C:\Users\Utente\Dropbox\Vercelli\SCHEDE CLIENTI\SCHEDE CLIENTI ATTIVI\[rita.xlsx]SCHEDA PAGAMENTI'!$E$13;1;0)"
Modifica quindi la formula di C2 per eliminare l'uguale e ti dovrebbe funzionare.

Spero che la formula che hai creato sia solo dimostrativa, perche' un Cerca.Vert che cerca in una sola cella e' un po' sciupato.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16798
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 19/10/17 09:53

Scusa Anthony, ma la formula cerca.vert, se non sbaglio, l'hai suggerita tu (non ne capivo il motivo). la formula dovrebbe riportare dei valori assoluti indicati nella cella definita nella formula, ad esempio [Antonella.xlsx]SCHEDA PAGAMENTI'!$E$13
Scusa se ti faccio perdere troppo tempo e grazie per la pazienza!
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 19/10/17 10:23

Risolto Anthony: ho sostituto la formula in k2 con un semplicissimo ="="&B3, e lanciando la macro da te suggerita, funziona tutto (tranne la prima riga dove non viene creata la formula)
Grazie!
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi Anthony47 » 19/10/17 14:00

Ad esempio:
In S2 inserisco il link al file
[cede] 'C:\Users\UTENTE_1\Dropbox\SHARED\[LBox_Demo_DA.xlsm]Foglio1'!$A$1:$B$1000[/code]
NB: Il primo Apice deve gia' far parte della stringa visibile

[. . . . .]

Ma io avevo fatto un ESEMPIO...

Se la stringa in B2 e' gia' la formula che ti serve, allora devi solo modificare, nel codice della macro, il contenuto della StrStart: non StrStart = "K2" ma
StrStart = "B2"

Se, usando K2, la prima riga non viene correttamente inserita e' forse perche' in K2 hai inserito il collegamento a B3?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16798
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi mau52 » 22/10/17 12:15

Grazie mille Anthony!
allora creo una macro per ogni colonna dove cambiano solo origine (strStart) e destinazione (FormStart). Poi le lancio tutte insieme.
Sono un po' duro di comprendonio. Scusa.
Ciao
mau52
Newbie
 
Post: 9
Iscritto il: 08/10/17 17:37

Re: Trasformare indirizzo (testo da concatena) in formula

Postdi Anthony47 » 22/10/17 17:27

Quello che hai intenzione di fare e' un buon sistema con cui anche un principiante puo' risolvere un problema.

Una volta che hai N macro diverse, le puoi richiamare da una unica "supermacro" del tipo
Codice: Seleziona tutto
Sub Complessivo()
Call Macro1
Call Macro2
'etc etc
End Sub
In questo modo ti basta mandare in esecuzione la Sub Complessivo per eseguire tutte le macro

Col tempo imparerai poi a inserire il codice all'interno di un ciclo per eseguirlo per ogni coppia di strStart / FormStart
Ma come si sa l'Ottimo e' nemico del Buono

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 16798
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Trasformare indirizzo (testo da concatena) in formula":


Chi c’è in linea

Visitano il forum: Nessuno e 19 ospiti