Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Claudio,
il problema nasce dal fatto che un software (di terze parti) processa un foglio di excel
utilizzando la colonna "A" cone chiave e la colonna "B" come valore.
ad oggi l'elenco delle chiavi della colonna A la scrivo tutta a mano,
ma vorrei costruirla nel seguente modo
A B C D E 1 =C1&" - "&D1&" - "&E1 12 P2 TRC_DX Y 2 =C2&" - "&D2&" - "&E2 15 P2 TRC_DX Z 3 =C3&" - "&D3&" - "&E3 34 P2 VFT_LF V dove nelle colonne C , D, E vado ad inserire la gerarchia padre-figlio-nipote...
il problema sta nel fatto che il software (di terzi) non sbroglia la formula,
mi servirebbe qualcosa che scrivesse nella colonna A il risultato del concatenamento delle celle.
come nell'esempio
A B C D E 1 P2 - TRC_DX - Y 12 P2 TRC_DX Y 2 P2 - TRC_DX - Z 15 P2 TRC_DX Z 3 P2 - VFT_LF - V 34 P2 VFT_LF V
- Fai clic dx sulla linguetta del foglio
- Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
- Incolla il seguente codice:
'=========>>
Option Explicit
'--------->>
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range, Rng2 As Range
Dim rRow As Range
Dim i As Long
Dim arrConcat As Variant
Dim sStr As String
Const mieColonne As String = "C:E"
On Error Resume Next
Set Rng = Intersect(Target, Me.Columns(mieColonne))
On Error GoTo XIT
Application.EnableEvents = False
If Not Rng Is Nothing Then
For Each rRow In Rng.Rows
Set Rng2 = Intersect(rRow.EntireRow, Me.Columns(mieColonne))
If Application.CountA(Rng2) Then
ReDim arrConcat(1 To 3)
For i = 1 To Rng2.Cells.Count
arrConcat(i) = Rng2.Cells(i).Value
Next i
sStr = Join(arrConcat, " - ")
Rng2.Cells(-1).Value = sStr
End If
Next rRow
End If
XIT:
Application.EnableEvents = True
End Sub
'<<=========
- Alt+Q per chiudere l'editor di VBA e tornare a Excel.
- Salva il file con l'estensione xlsm.
Ora, in risposta an una modifica aa vallore delle celle delle colonne C:E, il valore concatenato sarà immessa, come un valore, nella cella corrispondente della colonna A.
Potresti scaricare il mio file di prova Claudio20161028.xlsm a:
https://www.dropbox.com/s/19gh9dgg83kv4wc/Claudio20161028.xlsm?dl=0
===
Regards,
Norman