nomi celle automatico



  • nomi celle automatico
    di mizio (utente non iscritto) data: 19/09/2017 15:41:24

    Come posso fare per definire in automatico i nomi alle celle andando a leggere il contenuto da altre celle?
    esempio
    il contenuto di A1 è pippo1, il nome della cella B1 sarà pippo1
    il contenuto di A2 è pluto2, il nome della cella B2 sarà pluto2
    il contenuto di A3 è paperino, il nome della cella B2 sarà paperino
    e così via fino a A1000
    ci vuole una macro o basta una funzione?
    qualcuno riuscirebbe ad aiutarmi ?
    ciao



  • di Marius44 data: 19/09/2017 16:48:12

    Ciao
    Se vuoi assegnare dei Nomi definiti alle celle indicate utilizza questa macro.

    Fai sapere. Ciao,
    Mario
     
    Option Explicit
    
    Sub NomiDefiniti()
    Dim i As Long
        For i = 1 To 3
            ActiveWorkbook.Names.Add Name:=Cells(i, 1).Value, RefersTo:=Cells(i, 2)
        Next i
    End Sub



  • di mizio (utente non iscritto) data: 20/09/2017 08:43:10

    grazie Mario
    funziona perfettamente in un foglio di lavoro con i nomi di pippo1 pluto2 paperino,
    ma quando vado ad applicarlo ai miei codici reali che sono degli alfanumerici dei più svariati tipi che possono arrivare ad una quindicina di caratteri compresi a volte anche il punto ed il trattino,
    la macro mi restituisce:
    " errore run tume '1004'
    la sintassi di questo nome non è corretta ...."



  • di Marius44 data: 20/09/2017 09:31:50

    Ciao
    se i tuoi valori arrivano anche a 15 caratteri poco male, la "stringa" li prende tutti.
    Il problema sorge nell'assegnare il "nome definito" che NON accetta caratteri speciali. A questo punto credo che l'unica sia quella di cambiare i caratteri speciali del tuo codice in altri ammessi e poi darli in pasto alla macro.

    Ciao,
    Mario



  • di mizio (utente non iscritto) data: 20/09/2017 09:52:24

    però se vado a definirli manualmente i caratteri speciali puntino e trattino li prende .... non c'è proprio altro modo ?



  • di mizio (utente non iscritto) data: 20/09/2017 11:34:44

    mi correggo nella definizione manuale il trattino non lo prende e lo sostituisce con underscore !!!!
    i codici di partenza sono quelli del gestionale e non posso cambiarli .... poi in un'altra cella d'appoggio potrei momentaneamente cambiarli per arrivare a definire il nome cella ma il richiamo finale preferirei che avvenisse con il codice di partenza



  • di Vecchio Frac data: 20/09/2017 11:43:00

    Sì, ma c'è poco da fare.
    La sintassi per i nomi definiti non si può cambiare.

    Dalla Guida:
    Caratteri validi: Il primo carattere di un nome deve essere una lettera, un carattere di sottolineatura (_) o una barra rovesciata (). I caratteri rimanenti del nome possono essere lettere, numeri, punti e caratteri di sottolineatura.

    Nota: Non è possibile utilizzare le lettere maiuscole e minuscole "C", "c", "R" e "r" come nome definito, in quanto sono tutte utilizzate come sintassi abbreviata per la selezione di una riga o di una colonna per la cella selezionata quando vengono immesse in una casella di testo Nome o Vai a.

    I riferimenti di cella non sono ammessi: non è possibile definire un nome uguale a un riferimento di cella, ad esempio Z$100 o R1C1.

    Gli spazi: Gli spazi non sono ammessi all'interno di un nome. Utilizzare il carattere di sottolineatura (_) e il punto (.) come separatori, ad esempio Tasse_Vendite o Primo.Trimestre.

    Lunghezza del nome: Un nome può contenere un massimo di 255 caratteri.

    Distinzione tra maiuscole e minuscole: I nomi possono contenere lettere maiuscole e minuscole. In Excel non viene applicata la distinzione tra caratteri maiuscoli e minuscoli nei nomi. Se ad esempio si crea il nome Vendite e quindi si crea un altro nome VENDITE nella stessa cartella di lavoro, viene richiesto di scegliere un nome univoco.






  • di mizio (utente non iscritto) data: 20/09/2017 12:56:27

    grazie Mario, me ne sono reso conto, comunque la tua macro mi è ancora utile
    e sto provando con delle altre strade ad arrivare al mio obiettivo
    secondo te c'è modo di fare la seguente cosa
    per esempio:
    ho il nome cella pippo_1 a cui corrisponde il valore 2,
    la mia cella A1 ha il contenuto pippo-1,
    la cella B1 deve riconoscere il trattino (ovunque esso sia) nella cella A1 e richiamare il valore del nome cella pippo_1 cioè 2;
    cioè in B1 la formula: se in A1 c'è il trattino allora prendi il contenuto di A1 sostituisci il trattino con l'uderscore, riconoscine il nuovo testo come nome cella e restituiscimi il valore .... e poi la formula trascinarla in tutte le celle B* per fare la stessa cosa con altri contenuti




  • di Marius44 data: 20/09/2017 14:32:10

    Ciao a tutti
    Un grazie di cuore a Vecchio Frac per il gradito e sapiente intervento.

    Veniamo al tuo ultimo post. Non mi è molto chiaro il procedimento ma, forse, ho capito cosa vorresti fare.
    La risposta è: si potrebbe fare! Occorre, però, "vedere" il tuo file, capirne la struttura e trovare la soluzione più adatta con VBA.

    Ciao,
    Mario



  • di mizio (utente non iscritto) data: 20/09/2017 14:47:32

    https://dropfile.to/Ns0VGE5
    grazie a tutti voi



  • di Marius44 data: 20/09/2017 16:21:22

    Ciao
    Mi spiace ma non riesco (le formule non sono il mio forte ) a far leggere alla formula il nome definito con l'underscore e fargli capire che deve cercare con il meno.

    Forse qualcuno che si intende di formule.
    Ciao,
    mario



  • di mizio (utente non iscritto) data: 20/09/2017 16:28:19

    grazie lo stesso Mario ciao



  • di mizio (utente non iscritto) data: 20/09/2017 16:44:56

    torno sul solito esempio
    ho definito nome cella pippo_1 con valore 2
    in A1 ho il contenuto pippo-1
    in un altra cella B1 con =RIMPIAZZA(A1;RICERCA("-";A1);1;"_") si ottiene pippo_1
    fin qui ci riesco
    ma vorrei che nella cella B1 venisse fuori direttamente 100, non pippo_1;
    ma non so come o se si può concatenare la formula sopra, che sia con delle funzioni o in una vba, per ottenere il valore del nome cella