unire celle excel con macro

Anonimo
2013-09-10T16:47:58+00:00

salve, avrei bisogno di un piccolo aiuto,

io ho due fogli excel dello stesso file, in questi due fogli ho una colonna con gli stessi valori con il nome Codice Sia e con accanto delle infomazioni diverse per ogni foglio, vorrei unire entrabi le informazioni dei due fogli senza copiarle a mano in quanto sono molte righe

vi lascio un esempio per farvi capire cosa vi serve

es

foglio a                                                       foglio b

Codice sia                                                     codice sia

abc123   telefono 000111                               abc123    via amerigo 

cerco un modo per trovarmi in questa situazione

codice sia

abc123  telefono 000111  via amerigo

il fattore aggregante deve essere il codice sia

come posso fare??

saluti

roberto

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2013-09-11T00:01:43+00:00

    Ok domani provo...eventualmente c'è anche qualche modo di fare la stessa cosa senza usare le macro??

    Grazie mille

    Non ho capito se hai una sola colonna in ogni foglio oppure due.

    Una colonna:

    Dividi la colonna del FoglioB tramite Dati-->Testo in colonne lasciando abc123/abc124 ecc. in una colonna.

    Nella cella B2 del FoglioA

    =A2 & " " &  SE(VAL.ERRORE(CERCA.VERT(SINISTRA(A2;6);Foglio2!A2:B26;2;0));"";CERCA.VERT(SINISTRA(A2;6);Foglio2!A2:B26;2;0))

    Espandi poi verso il basso.

    Due colonne:

    Nella cella C2 del FoglioA

    =SE(VAL.ERRORE(CERCA.VERT(A2;FoglioB!A2:B26;2;0));"";CERCA.VERT(A2;FoglioB!A2:B26;2;0))

    ed espandi verso il basso.

    NOTA. A2:B26 vanno modificati con i riferimenti alla tua tabella.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2013-09-10T19:07:09+00:00

    Ok domani provo...eventualmente c'è anche qualche modo di fare la stessa cosa senza usare le macro??

    Grazie mille

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2013-09-10T17:28:59+00:00

    salve, avrei bisogno di un piccolo aiuto,

    ...

    Ciao Roberto,

    prova con il codice allegato, dopo aver modificato le righe evidenziate.

    Andrea.


    Sub CopiaValoriPerRighe()

    Dim wsSource As Worksheet, wsTarget As Worksheet

    Dim rCell As Range, rFound As Range

    Dim lSourceLastCol As Long, lTargetLastCol As Long

    '---------- modificare nome dei fogli (wsTarget = foglio destinazione)

    With ThisWorkbook

    Set wsSource = .Worksheets("FoglioB")

    Set wsTarget = .Worksheets("FoglioA")

    End With

    For Each rCell In Range(wsSource.Cells(2, "A"), wsSource.Cells(Rows.Count, "A").End(xlUp))

    If Len(rCell.Value) Then

    Set rFound = wsTarget.Columns(1).Find(rCell.Value, , xlValues, xlWhole, xlByRows, xlNext, False)

    If Not rFound Is Nothing Then

    lSourceLastCol = wsSource.Cells(rCell.Row, Columns.Count).End(xlToLeft).Column

    lTargetLastCol = wsTarget.Cells(rFound.Row, Columns.Count).End(xlToLeft).Column + 1

    Range(wsSource.Cells(rFound.Row, "A"), wsSource.Cells(rFound.Row, lSourceLastCol)).Copy _

    wsTarget.Cells(rCell.Row, lTargetLastCol)

    End If

    End If

    Next

    '---------- clean up

    Set rCell = Nothing:  Set rFound = Nothing

    Set wsSource = Nothing: Set wsTarget = Nothing

    End Sub


    La risposta è stata utile?

    0 commenti Nessun commento