Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Unire due celle con una terza

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

Unire due celle con una terza

Postdi bash01 » 22/08/08 08:33

Salve a tutti e complimenti per il forum ;)


Allora il quesito è il seguente :

Ho tre colonne A - B - C dove ho nelle prime due A e B 30 celle con valori statici, quindi sempre gli stessi, mentre nella colonna C ho un solo valore dinamico. Ad esempio :
nella colonna A ho 1,2,3 e nella colonna B 4,5,6, in C la lettera A...vorrei unire il primo valore di A con ogni valore di B ed unire alla fine quello di C...

...in pratica verrebbe un risultato del genere :

14A
15A
61A
24A
25A
26A
34A
35A
36A

Spero di essermi spiegato bene, ecco mi servirebbe come posso fare, cioè che tipo di formula devo usare perchè non riesco a farlo. Anche tramite macro...in altre parole il primo valore della colonna A deve unirsi ad ogni valore della colonna B + una cella in C1, nel secondo ciclo il secondo valore di A deve unirsi a B + C1.

grazie :oops:
Avatar utente
bash01
Utente Junior
 
Post: 13
Iscritto il: 22/08/08 08:28

Sponsor
 

Re: Unire due celle con una terza

Postdi Tribuno » 22/08/08 21:28

Ciao

Puoi utilizzare, ad esempio in colonna D, nella cella D1 =CONCATENA (A1;B1;C1), poi trascini la formula per tutte le celle in colonna D dove vuoi il risultato, oppure utilizzare una macro in VBA con un ciclo for-next ed il simbolo & (non so se si legge bene ma è la E commerciale, sopra il numero 6), ad esempio
Codice: Seleziona tutto
Sub Unisci ()
     For i=1 to 30
          Cells(i,4) = Cells(i, 1) & Cells(i, 2) & Cells(i, 3)
     next i
End Sub
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24

Re: Unire due celle con una terza

Postdi Anthony47 » 22/08/08 23:50

Ciao bash e benvenuto nel forum.
Un benvenuto anche a Tribuno, spero che vorrai frequentarci con continuita': ho visto interessanti "contribuni" su altri siti, so che il forum ci guadagnerebbe.
Nel caso di bash01, la mia interpretazione e' che ci sono in col A, B e C degli elenchi di lunghezza (numero di celle) variabile di cui bisogna trovare le N combinazioni.
Per questo si potra' usare la seguente macro:
Codice: Seleziona tutto
Sub bash01()
ColOut = "F"   '<<<< Colonna di output
'
'Range(ColOut & ":" & ColOut).ClearContents    '<<< Scommentare se si vuole azzerare la colonna di uscita
For A = 2 To Range("A65536").End(xlUp).Row
For B = 2 To Range("B65536").End(xlUp).Row
For C = 2 To Range("C65536").End(xlUp).Row
Range(ColOut & Rows.Count).End(xlUp).Offset(1, 0) = _
  Range("A" & A).Value & Range("B" & B).Value & Range("C" & C).Value
Next C
Next B
Next A
End Sub

Uso: da excel, aprire l' editor delle macro con Alt-F11; poi Menu /Inserisci /Modulo; copiare il codice e incollarlo nel frame di dx. Modificare la prima istruzione marcata <<< per indicare la colonna del foglio su cui si vuole creare l' elenco delle combinazione. Se si vuole azzerare questa colonna prima di creare l' elenco, togliere l' apostrofo in testa alla seconda istruzione marcata <<<.
Tornare su excel, inserire in col A, B e C i dati da riga 2 in avanti e lanciare la macro. Se e' da eseguire spesso si puo' creare un pulsante a cui associare la macro o un tasto di scelta rapida.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13894
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Unire due celle con una terza

Postdi bash01 » 23/08/08 06:08

grazie per la risposta Anthony47 ma non funziona, ho fatto esattamente quello che hai detto ma quando lancio la macro non succede nulla...non mi dà neanche errore.

Ecco un esempio delle tre tabelle :

Immagine

In pratica il risultato dovrebbe essere questo :

0101AA
0102AA
0103AA
0104AA
0105AA
0106AA
0107AA
0108AA
0109AA

...

0201AA
0202AA
0203AA
0204AA
0205AA
0206AA
0207AA
0208AA
0209AA

....ecc.ecc.ecc.

forse ho sbagliato io qualcosa?


grazie di cuore ;)
Avatar utente
bash01
Utente Junior
 
Post: 13
Iscritto il: 22/08/08 08:28

Re: Unire due celle con una terza

Postdi bash01 » 23/08/08 06:11

Tribuno ha scritto:Ciao

Puoi utilizzare, ad esempio in colonna D, nella cella D1 =CONCATENA (A1;B1;C1), poi trascini la formula per tutte le celle in colonna D dove vuoi il risultato, oppure utilizzare una macro in VBA con un ciclo for-next ed il simbolo & (non so se si legge bene ma è la E commerciale, sopra il numero 6), ad esempio
Codice: Seleziona tutto
Sub Unisci ()
     For i=1 to 30
          Cells(i,4) = Cells(i, 1) & Cells(i, 2) & Cells(i, 3)
     next i
End Sub


si questa soluzione è diversa da ciò che chiedo infatti restituisce una stringa pari per riga diversa dall'esempio che ho fatto nel post precedente...il problema stà appunto nel concatenate il primo valore della colonna A con tutto il resto, poi il secondo, poi il terzo e cosi via...


saluti
Avatar utente
bash01
Utente Junior
 
Post: 13
Iscritto il: 22/08/08 08:28

Re: Unire due celle con una terza

Postdi bash01 » 23/08/08 06:44

Anthony47 ha scritto:Ciao bash e benvenuto nel forum.
Un benvenuto anche a Tribuno, spero che vorrai frequentarci con continuita': ho visto interessanti "contribuni" su altri siti, so che il forum ci guadagnerebbe.
Nel caso di bash01, la mia interpretazione e' che ci sono in col A, B e C degli elenchi di lunghezza (numero di celle) variabile di cui bisogna trovare le N combinazioni.
Per questo si potra' usare la seguente macro:
Codice: Seleziona tutto
Sub bash01()
ColOut = "F"   '<<<< Colonna di output
'
'Range(ColOut & ":" & ColOut).ClearContents    '<<< Scommentare se si vuole azzerare la colonna di uscita
For A = 2 To Range("A65536").End(xlUp).Row
For B = 2 To Range("B65536").End(xlUp).Row
For C = 2 To Range("C65536").End(xlUp).Row
Range(ColOut & Rows.Count).End(xlUp).Offset(1, 0) = _
  Range("A" & A).Value & Range("B" & B).Value & Range("C" & C).Value
Next C
Next B
Next A
End Sub

Uso: da excel, aprire l' editor delle macro con Alt-F11; poi Menu /Inserisci /Modulo; copiare il codice e incollarlo nel frame di dx. Modificare la prima istruzione marcata <<< per indicare la colonna del foglio su cui si vuole creare l' elenco delle combinazione. Se si vuole azzerare questa colonna prima di creare l' elenco, togliere l' apostrofo in testa alla seconda istruzione marcata <<<.
Tornare su excel, inserire in col A, B e C i dati da riga 2 in avanti e lanciare la macro. Se e' da eseguire spesso si puo' creare un pulsante a cui associare la macro o un tasto di scelta rapida.

Ciao.


Scusami funziona, avevo inserito i dati da riga 1 :lol:

GRAZIE sei veramente bravo! :)
Avatar utente
bash01
Utente Junior
 
Post: 13
Iscritto il: 22/08/08 08:28

Re: Unire due celle con una terza

Postdi Tribuno » 23/08/08 23:14

Scusate, ma avevo letto troppo in fretta e in modo non approfondito :oops: il quesito posto da bash01 . Mai fermarsi all'apparenza, bisogna sempre leggere tra le righe ed anche oltre per trovare la soluzione ad un problema. Mea culpa.

Mi associo ai complimenti ad Anthony47, veramente bravo, in grado di trovare una soluzione ad ogni problema.

Ciao
Tribuno
Avatar utente
Tribuno
Utente Senior
 
Post: 181
Iscritto il: 22/08/08 19:24


Torna a Applicazioni Office Windows


Topic correlati a "Unire due celle con una terza":


Chi c’è in linea

Visitano il forum: Maury170419 e 10 ospiti