Risultati da 1 a 21 di 21

Discussione: UDF disponibile su tutte le cartelle di lavoro



  1. #1
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    UDF disponibile su tutte le cartelle di lavoro

    Ciao a tutti
    Questo bellissimo codice VBA che l'ho ricavato da una recente discussione, creato da TextTomb (che ringrazio e saluto) vorrei sapere se questa UDF può essere disponibile per tutte le cartelle di lavoro

    Codice: 
    Public Function EstraiNomi(Ats As Range, Rng As Range) As StringDim cllNms As New Collection
    Dim ElencoNomi As String
    Dim cell As Range
    On Error Resume Next
        For Each cell In Rng
            If cell.Value = Ats Then
                cllNms.Add cell.Offset(, 1).Value, Key:=cell.Offset(, 1).Value
                ElencoNomi = ElencoNomi & cllNms.Item(cllNms.Count) & "; "
            End If
        Next
    On Error GoTo 0
    EstraiNomi = Left(ElencoNomi, Len(ElencoNomi) - 2) End Function
    Attualmente Questa funzione =EstraiNomi() è solo disponibile nella cartella di lavoro dove ho inserito il codice, ma sono proprio curioso di sapere se con qualche pezzo di codice si possa rendere disponibile in qualsiasi cartella di lavoro di Excel
    Grazie a tutti
    Ultima modifica fatta da:Gerardo Zuccalà; 22/11/15 alle 23:37

  2. #2
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Ciao a tutti
    Questo bellissimo codice VBA che l'ho ricavato da una recente discussione, creato da TextTomb (che ringrazio e saluto) vorrei sapere se questa UDF può essere disponibile per tutte le cartelle di lavoro

    Codice: 
    Public Function EstraiNomi(Ats As Range, Rng As Range) As StringDim cllNms As New Collection
    Dim ElencoNomi As String
    Dim cell As Range
    On Error Resume Next
        For Each cell In Rng
            If cell.Value = Ats Then
                cllNms.Add cell.Offset(, 1).Value, Key:=cell.Offset(, 1).Value
                ElencoNomi = ElencoNomi & cllNms.Item(cllNms.Count) & "; "
            End If
        Next
    On Error GoTo 0
    EstraiNomi = Left(ElencoNomi, Len(ElencoNomi) - 2) End Function
    Attualmente Questa funzione =EstaiNomi() è solo disponibile nella cartella di lavoro ho inserito il codice, ma sono proprio curioso di sapere se con qualche pezzo di codice si possa rendere disponibile in qualsiasi cartella di lavoro di Excel
    Grazie a tutti
    così com'è la devi inserire in un modulo e l'avrai a disposizione su tutti i fogli.
    P.S.
    ti ha poi detto quali sono le variabili da inserire () ?

    :999:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  3. #3
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    così com'è la devi inserire in un modulo e l'avrai a disposizione su tutti i fogli.
    P.S.
    ti ha poi detto quali sono le variabili da inserire () ?
    Ciao Baloon_50 grazie per la tua risposta ma io la vorrei disponibile per tutte le cartelle di lavoro di excel (per tutti i file di excel)
    Grazie

    [EDIT]

    PS in questa immagine puoi vedere che nel mio computer sono disponibili altra UDF che nel tempo sono finite li ma non mi ricordo come abbiano fatto, di fatto adesso sono disponibili in qualsiasi cartella di lavoro di excel


  4. #4
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Ciao Baloon_50 grazie per la tua risposta ma io la vorrei disponibile per tutte le cartelle di lavoro di excel (per tutti i file di excel)
    Grazie
    Se ricordi qualche tempo fa non mi ricordo chi ti ha parlato di Personal.xlsb che è il file dove puoi mettere tutte le macro che vuoi e lo devi salvare in
    C:\Users\tuonome\AppData\Roaming\Microsoft\Excel\XLSTART
    quando apri excel si auto carica questo file dove ci sono le varie routine ( se non lo vuoi vedere visualizza ---> nascondi).
    Non so se va bene anche con le funzioni bisognerebbe provare.

    Ho fatto una verifica veloce ma non funziona - funziona solo nella cartella aperta

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  5. #5
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Si si mi ricordo e oltretutto mi avevi fatto vedere anche come eseguire una macro che l'abbiamo inserita nella "Ribbon" cosi da essere disponibile per tutti i file ( ma questa è un'altra storia)

    Ma io faccio questa domanda perchè nel mio computer ci sono diverse funzioni create con il VBA( come puoi vedere nell'immagine sopra) che sono sempre a disposizione in Excel, ed io non ho mai fatto delle forzature salvandole in qualche personal File come mi hai scritto tu (C:\Users\tuonome\AppData\Roaming\Microsoft\Excel\XLSTART) ma semplicememte copiando la function in un nuovo modulo, e poi per magia diventa disponibile per tutti i file
    Credo che questo sia dovuto a quache semplice "istruzione " che è stata inserita nel codice, alrimenti non si spiega perchè io alcune funzioni le ho disponibili per tutti i file di excel.
    Grazie a tutti ed un saluto

  6. #6
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Si si mi ricordo e oltretutto mi avevi fatto vedere anche come eseguire una macro che l'abbiamo inserita nella "Ribbon" cosi da essere disponibile per tutti i file ( ma questa è un'altra storia)

    Ma io faccio questa domanda perchè nel mio computer ci sono diverse funzioni create con il VBA( come puoi vedere nell'immagine sopra) che sono sempre a disposizione in Excel, ed io non ho mai fatto delle forzature salvandole in qualche personal File come mi hai scritto tu (C:\Users\tuonome\AppData\Roaming\Microsoft\Excel\XLSTART) ma semplicememte copiando la function in un nuovo modulo, e poi per magia diventa disponibile per tutti i file
    Credo che questo sia dovuto a quache semplice "istruzione " che è stata inserita nel codice, alrimenti non si spiega perchè io alcune funzioni le ho disponibili per tutti i file di excel.
    Grazie a tutti ed un saluto
    Prova a postarmi una di quelle funzioni che gli do un'occhiata - magari trovo il meccanismo anche se mi è venuta una piccola idea

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  7. #7
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    Prova a postarmi una di quelle funzioni che gli do un'occhiata - magari trovo il meccanismo anche se mi è venuta una piccola idea
    Baloon_50 non saprei come prendere i codici di quelle funzioni, credo che siano memorizzate nel computer
    ti spiego come sono arrivate li, tempo fa bazzicavo su forum americani e d tanto in tanto ricavavo questi codici che li inserivo in un modulo nuovo e da quel giorno sono sempre attivi su tutti i file di excel oltretutto non saprei neanche come eliminrle, proprio perchè non so in che punto dell'computer sono memorizzate. bohh

  8. #8
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Baloon_50 no so come prendere i codici di quelle funzioni, credo che siano memorizzate nel computer
    ti spiego come sono arrivate li, tempo fa bazzicavo su forum americani e d tanto in tanto ricavavo questi codici che li inserivo in un modulo nuovo e da quel giorno sono sempre attivi su tutti i file di excel oltretutto non saprei neanche come eliminrle, proprio perchè non so in che punto dell'computer sono memorizzate. bohh
    Vabbè spero che qualcun altro abbia la soluzione che cerchi :280:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  9. #9
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Grazie lo stesso Baloon_50
    comunque l'unica operazione che facevo era solo copiare ed incollare il codice e da quel momento era disponibile su qualsiasi cartella di lavoro di excel, per cui visto che non ho fatto nient'alro che copiare ed incollare il codice, ci deve essere qualche istruzione nel codice che rende la function attiva su tutti i file...se qualcuno sa come aggirare il problema grazie in anticipo.

  10. #10
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Grazie lo stesso Baloon_50
    comunque l'unica operazione che facevo era solo copiare ed incollare il codice e da quel momento era disponibile su qualsiasi cartella di lavoro di excel, per cui visto che non ho fatto nient'alro che copiare ed incollare il codice, ci deve essere qualche istruzione nel codice che rende la function attiva su tutti i file...se qualcuno sa come aggirare il problema grazie in anticipo.
    Prova a vedere questo articolo della microsoft

    https://support.microsoft.com/it-it/kb/151490

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  11. #11
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    813
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53
    Sull'argomento questi sono i miei appunti a cui per ora mi sono sempre attenuto e non mi pare che siano tanto distanti quanto detto finora per cui non apportano novità:
    Per utilizzare una UDF in più di una cartella di lavoro, bisogna salvare le funzioni come Componente Aggiuntivo personalizzato. Basta fare "Salva come nome..." del file di Excel che contiene la funzione VBA e scegliere "Salva come:" file di Componente Aggiuntivo (.XLA per Excel 2003 o .XLAM per Excel 2007+). Con Windows 10 il file ora finisce nella cartella C:\Users\nomeutente\AppData\Roaming\Microsoft\AddIns .
    Una volta riaperto Excel caricare il Componente Aggiuntivo (Strumenti > Componenti Aggiuntivi... per Excel 2003 o Sviluppo > Componenti Aggiuntivi per Excel 2010+).

  12. I seguenti utenti hanno dato un "Like"


  13. #12
    L'avatar di mb63
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Torino
    Età
    54
    Messaggi
    484
    Versione Office
    2007/10/13 w10
    Likes ricevuti
    18
    Likes dati
    94
    Grazie Gerardo e Rollis per il suggerimento molto interessante


    p.s Gerardo mi potresti spiegare meglio il funzionamento della sub a cui fai riferimento all'inizio = come funziona


    Rigrazie
    Ultima modifica fatta da:mb63; 23/11/15 alle 15:42 Motivo: errore ortografico

  14. #13
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Sull'argomento questi sono i miei appunti a cui per ora mi sono sempre attenuto e non mi pare che siano tanto distanti quanto detto finora per cui non apportano novità:
    Per utilizzare una UDF in più di una cartella di lavoro, bisogna salvare le funzioni come Componente Aggiuntivo personalizzato. Basta fare "Salva come nome..." del file di Excel che contiene la funzione VBA e scegliere "Salva come:" file di Componente Aggiuntivo (.XLA per Excel 2003 o .XLAM per Excel 2007+). Con Windows 10 il file ora finisce nella cartella C:\Users\nomeutente\AppData\Roaming\Microsoft\AddIns .
    Una volta riaperto Excel caricare il Componente Aggiuntivo (Strumenti > Componenti Aggiuntivi... per Excel 2003 o Sviluppo > Componenti Aggiuntivi per Excel 2010+).

    Yeessss!!! Yeessss!!!Yeessss!!! Rollis13
    Woowww! Esattamente quello che volevo ottenere, adesso questa funzione è attiva in tutte le cartelle di lavoro di Excel, sapevo che esisteva un modo ma non sapevo quale, questa procedura che mi hai appena segnalato la custodisco gelosamente tra le mie procedure,
    Rollis13 adesso hai capito perchè dopo il primo giorno che ti ho conosciuto ti abbaimo dato subito la targhetta "Esperto" e forse meriti di più ma ovviamente il rank tiene conto anche dalla partecipazione al forum
    Intanto Grazie

  15. #14
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Ciao mb63
    grazie per la domanda tuttavia per quel poco che conosco di VBA posso dirti ben poco perchè questa "funzione" l'ho copiata da un'altra discussione ed è la soluzione di TextTomb (che saluto e ringrazio), e io l'ho usata solo come esempio, per rendere attiva questa funzione su tutti i file di Excel, perchè inizialmente questa funzione era attiva solo nel file in cui era stato messo il codice.
    mb63 l'unica cosa che posso dirti che questa non'è una Sub (Routine, macro, o procedura che dir si voglia) come hai scritto tu nella domanda, ma questa è una funzione, infatti noterai che il codice non inizia con "Sub" ma con "Private function".
    Le funzioni create con il VBA si utilizzano allo stesso Modo di una funzione normale di Excel, come ad esempio SOMMA.SE, SCARTO, CERCA.VERT e prima si mette il segno ugale e poi il nome della funzione es.=EstariNomi()
    Ciao mb63

  16. #15
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio
    Ciao mb63
    grazie per la domanda tuttavia per quel poco che conosco di VBA posso dirti ben poco perchè questa "funzione" l'ho copiata da un'altra discussione ed è la soluzione di TextTomb (che saluto e ringrazio), e io l'ho usata solo come esempio, per rendere attiva questa funzione su tutti i file di Excel, perchè inizialmente questa funzione era attiva solo nel file in cui era stato messo il codice.
    mb63 l'unica cosa che posso dirti che questa non'è una Sub (Routine, macro, o procedura che dir si voglia) come hai scritto tu nella domanda, ma questa è una funzione, infatti noterai che il codice non inizia con "Sub" ma con "Private function".
    Le funzioni create con il VBA si utilizzano allo stesso Modo di una funzione normale di Excel, come ad esempio SOMMA.SE, SCARTO, CERCA.VERT e prima si mette il segno ugale e poi il nome della funzione es.=EstariNomi()
    Ciao mb63
    Rispondo io per MB63 perchè ti avevo fatto all'incirca la stessa domanda :
    Quali sono i parametri da mettere tra () ?

    ciao.

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  17. #16
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    in attesa...questo era il thread relativo a quella UDF...
    http://www.forumexcel.it/forum/6-dom...ght=estrainomi
    ciao
    ale

  18. #17
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da Baloon_50 Visualizza Messaggio
    Rispondo io per MB63 perchè ti avevo fatto all'incirca la stessa domanda :
    Quali sono i parametri da mettere tra () ?

    ciao.
    Ciao Baloon_50
    Credevo che volessi spiegare il codice, invece vuoi spiegare l'utilizzo della funzione che è abbastanza semplice ma è da conoscere perche questa funzione non'è come le altre funzioni convenzionale di excel che ti mettono lo screen-tip (suggerimenti argomenti).

    Comunque ci sono due Argomenti =EstraiNomi(criterio;intervallo criteri) e la funzione mi restituisce i nomi che sono nell'intervallo subito a destra dell'intervallo dei criteri ovviamente il risultato è tutto in una cella
    Ti allego file con codice
    Ciao a tutti

  19. #18
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3339
    Versione Office
    2013 PC
    Likes ricevuti
    483
    Likes dati
    49
    Grazie Gerardo
    :261:

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  20. #19
    L'avatar di Alessandro
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Roma
    Età
    45
    Messaggi
    851
    Versione Office
    2010 64 bit
    Likes ricevuti
    113
    Likes dati
    61
    c'è un ma...rispetto alle funzioni standard, al variare di una cella la funzione rimane invariata...e nemmeno con l'F9 varia...ma si deve entrar dentro e dare invio di nuovo...
    rimane cmq un ottima soluzione...davvero ottima
    ciao
    ale

  21. #20
    L'avatar di mb63
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Torino
    Età
    54
    Messaggi
    484
    Versione Office
    2007/10/13 w10
    Likes ricevuti
    18
    Likes dati
    94
    1.0000000 di grazie

    adesso ho capito come funziona la udf

    sapevo dove andarla a salvare per renderla utilizzabile su tutti i fogli ma non avevo capito l' impiego adesso tutto ok

    alla prossima

  22. #21
    L'avatar di mb63
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Torino
    Età
    54
    Messaggi
    484
    Versione Office
    2007/10/13 w10
    Likes ricevuti
    18
    Likes dati
    94
    Grazie anche ad Alessandro per il link

Discussioni Simili

  1. Sproteggere tutte le cartelle excel in unico comando
    Di KARLO16 nel forum Domande su Excel in generale
    Risposte: 12
    Ultimo Messaggio: 04/07/17, 09:12
  2. Collegamento tra due cartelle di lavoro
    Di fragher nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 02/09/16, 15:09
  3. Risposte: 0
    Ultimo Messaggio: 15/06/16, 18:10
  4. Problema Collegamento Cartelle Di Lavoro
    Di MarcoBr1 nel forum Domande su Excel in generale
    Risposte: 9
    Ultimo Messaggio: 18/12/15, 15:49
  5. Macro (codice VBA) attiva per tutte le cartelle di lavoro (file)
    Di Gerardo Zuccalà nel forum Domande su Excel VBA e MACRO
    Risposte: 19
    Ultimo Messaggio: 21/10/15, 14:14

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •