Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Excel: concatenare il contenuto di più celle

    Ciao a tutti,



    ho creato una macro per la gestione di un mini archivio ed ho bisogno di concatenare il contenuto di più celle, in un unica cella (inserendo anche un bel separatore...chiedo troppo???);

    mi spiego meglio con un esempio pratico:

    ho <n> celle, ciascuna delle quali contiene un numero;
    ho bisogno di inserire il contenuto di queste <n> celle in un unica cella (es. A1).

    P.S. i dati che devo trattare sono solo numeri

    Avevo pensato alla funzione "CONCATENATE" in Visual Basic, ma ho qualche problema con la lunghezza (esistono dei liminti?) perchè devo arrivare fino a 31 (num. max di giorni per un mese);

    di seguito un pezzo della mia "Sub":

    Sheets("TOTALI PER FATTURE").Select
    Range("E2").Select
    Selection.ClearContents
    ActiveCell.FormulaR1C1 = _
    "=CONCATENATE(AZZURRO!R[1]C,AZZURRO!R[-1]C[5],AZZURRO!R[2]C,AZZURRO!R[-1]C[5])"
    Range("E2").Select

    dove il riferimento "R[<n>]C", contiene il mio numerello
    ed il riferimento "R[-1]C[5]" contiene il carattere ";" (punto e virgola) per il mio separatore.

    che ne pensate?
    avete alternative?


    Grazie 1000,
    Ciao ciao

  2. #2
    Utente di HTML.it L'avatar di tippolo
    Registrato dal
    Dec 2005
    Messaggi
    103
    usa l'operatore "&" per concatenare

    es.
    codice:
    =A1&B1&C1
    Non hai ancora firmato la petizione per VB? Clicca questo link:
    http://www.classicvb.org/petition/?lang=it

  3. #3
    Ciao tippolo,

    purtroppo ho scoperto che la funzione CONCATENA può concatenare un massimo di 30 stringhe.
    Non adatta quindi alla mia circostanza (31 giorni....+ i punti e virgola....quante stringhe sono??? decisamente troppe).

    ci vuole qualcos'altro.... :-(

    ciao,
    toni

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    E se usi 2 volte CONCATENATE con 15 elementi ciascuna, cosa succede?

    CONCATENATE(cel1,cel2,cel3, ...)
    +
    CONCATENATE(cel15,cel16,cel17,...)


    Ciao

  5. #5
    Ciao gibra,

    ho provato...beh succede che me lo sovrascrive.
    Nel senso che la cella di destinazione è la stessa....e quindi viene "pizzicata" l'ultima istruzione di CONCATENATE...

    forse sto sbagliando?

    ecco il codice:

    Selection.ClearContents
    ActiveCell.FormulaR1C1 = _ "=CONCATENATE(AZZURRO!R[1]C,AZZURRO!R[-1]C[5],AZZURRO!R[2]C,AZZURRO!R[-1]C[5],AZZURRO!R[3]C,AZZURRO!R[-1]C[5],AZZURRO!R[4]C,AZZURRO!R[-1]C[5],AZZURRO!R[5]C,AZZURRO!R[-1]C[5],AZZURRO!R[6]C,AZZURRO!R[-1]C[5],AZZURRO!R[7]C,AZZURRO!R[-1]C[5],AZZURRO!R[8]C,AZZURRO!R[-1]C[5],AZZURRO!R[9]C,AZZURRO!R[-1]C[5],AZZURRO!R[10]C,AZZURRO!R[-1]C[5],AZZURRO!R[11]C,AZZURRO!R[-1]C[5],AZZURRO!R[12]C,AZZURRO!R[-1]C[5],AZZURRO!R[13]C,AZZURRO!R[-1]C[5],AZZURRO!R[14]C,AZZURRO!R[-1]C[5],AZZURRO!R[15]C,AZZURRO!R[-1]C[5])"
    Range("E2").Select
    ActiveCell.FormulaR1C1 = _ "=CONCATENATE(AZZURRO!R[16]C,AZZURRO!R[-1]C[5],AZZURRO!R[17]C,AZZURRO!R[-1]C[5],AZZURRO!R[18]C,AZZURRO!R[-1]C[5],AZZURRO!R[19]C,AZZURRO!R[-1]C[5],AZZURRO!R[20]C,AZZURRO!R[-1]C[5],AZZURRO!R[21]C,AZZURRO!R[-1]C[5],AZZURRO!R[22]C,AZZURRO!R[-1]C[5],AZZURRO!R[23]C,AZZURRO!R[-1]C[5],AZZURRO!R[24]C,AZZURRO!R[-1]C[5],AZZURRO!R[26]C,AZZURRO!R[-1]C[5],AZZURRO!R[27]C,AZZURRO!R[-1]C[5],AZZURRO!R[28]C,AZZURRO!R[-1]C[5],AZZURRO!R[29]C,AZZURRO!R[-1]C[5],AZZURRO!R[30]C,AZZURRO!R[-1]C[5],AZZURRO!R[31]C,AZZURRO!R[-1]C[5])"

    grazie

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ma scusa, ragiona un pochino .

    se fai
    ActiveCell.FormulaR1C1 = bbbb

    e poi
    ActiveCell.FormulaR1C1= aaaa

    è logico che la seconda assegnazione sovrascriva la prima.

    Io ti indicato, ma non so se funziona, di sommare 2 CONCATENATE!

    ActiveCell.FormulaR1C1=CONCATENATE(cel1,cel2,cel3, ...) + CONCATENATE(cel15,cel16,cel17,...)

    Ciao

  7. #7
    purtroppo non va...il compilatore diventa una iena

  8. #8
    Utente di HTML.it L'avatar di tippolo
    Registrato dal
    Dec 2005
    Messaggi
    103
    Allora...
    la funzione CONCATENA supporta fino a 30 voci.
    Tu utilizzi 2 volte tale funzione usando l'operatore "&" e non come ha detto gibra l'operatore "+" in quanto stai lavorando con dei valori numerici ed excel, giustamente interpreta l'operatore "+" come se tu volessi sommare i 2 risultati

    Questa è la formula da inserire in una cella SENZA usare il VBA:
    codice:
    =CONCATENA(A2;A3;A4;A5;A6;A7;A8;A9;A10;A11;A12;A13;A14;A15;A16;A17;A18;A19;A20;A21;A22;A23;A24;A25;A26;A27;A28;A29;A30;A31)&CONCATENA(B2;B3;B4;B5;B6;B7;B8;B9;B10;B11;B12;B13)

    l'ho provata nella cella A1 e funziona perfettamente
    Non hai ancora firmato la petizione per VB? Clicca questo link:
    http://www.classicvb.org/petition/?lang=it

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da toninho83
    purtroppo non va...il compilatore diventa una iena
    Devi imparare prima a comunicare in maniera corretta , poi a programmare.

    Tutti i messaggi in cui si scrive:
    - no va
    - non funziona
    - non succede niente
    ecc. ecc. ecc. ecc.

    non servono a niente, non significano niente, nessuno li capisce,
    quindi sono completamente inutili .
    Della serie: "Meccanico, l'auto non parte...!"

    Perchè se
    - non spieghi cosa hai fatto,
    - non spieghi come l'hai fatto,
    - non spieghi dove l'hai fatto
    - non spieghi che errore ti da
    - non indichi in quale linea di codice te lo da
    - non mostri il codice

    Noi come facciamo a capire? Con la sfera di cristallo?

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.