Condividi tramite

Aggiungere virgole su ogni rigo di una colonna excel

Anonimo
2017-08-10T11:16:45+00:00

Ho un foglio excel con una sola colona dove su ogni rigo sono presenti indirizzi email.  Vorrei inserire in ogni rigo una virgola, altrimenti non posso copiare le varie email in alcuni programmi di posta elettronica perchè darebbero errore in invio.

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

Risposta accettata dall'autore della domanda

  1. Anonimo
    2017-08-10T13:00:26+00:00

    Ciao Gianni,

    Benvenuto alla Community!

    Ho un foglio excel con una sola colona dove su ogni rigo sono presenti indirizzi email.  Vorrei inserire in ogni rigo una virgola, altrimenti non posso copiare le varie email in alcuni programmi di posta elettronica perchè darebbero errore in invio.

    Per ottenere gli indirizzi della colonna A, ognuno con una virgola allegata, nella cella B1, immetti la formula:

    =A1&","

          

    Comunque, se  tu volessi selezionare degli indirizzi, sia contigui che non contigui, e incollarli direttamente come i destinatari di una email, potresi sfruttare VBA nel seguente modo:

    • Alt+F11 per aprire l'editor di VBA
    • Alt+IM per inserire un nuovo modulo di codice
    • Nel nuovo modulo vuoto, incolla il seguente codice:

    '=========>>

    Option Explicit

    Option Compare Text

    Private DataObj As MSForms.DataObject

    '--------->>

    Public Sub Tester()

        Dim Rng As Range, rCell As Range

        Dim arrIn() As Variant

        Dim sIndirizziEmail As String

        Dim i As Long

        Set Rng = Selection

        ReDim arrIn(1 To Rng.Cells.Count)

        For Each rCell In Rng.Cells

            i = i + 1

            arrIn(i) = rCell.Value

        Next rCell

        sIndirizziEmail = Join(arrIn, ",")

        PutInClipboard (sIndirizziEmail)

    End Sub

    '--------->>

    Public Function PutInClipboard(S As String, _

                                   Optional FormatID As Variant) As Boolean

    '\ By Chip Pearson  www.cpearson.com/Excel/Clipboard.aspx

        On Error GoTo ErrH:

        If DataObj Is Nothing Then

            Set DataObj = New MSForms.DataObject

        End If

        If IsMissing(FormatID) = False Then

            Select Case VarType(FormatID)

            Case VbVarType.vbInteger, VbVarType.vbLong, VbVarType.vbString

                ' valid data type

            Case Else

                ' invalid data type for FormatID

                PutInClipboard = False

                Exit Function

            End Select

            DataObj.SetText S, FormatID

        Else

            DataObj.SetText S

        End If

        DataObj.PutInClipboard

        PutInClipboard = True

        Exit Function

    ErrH:

        PutInClipboard = False

        Exit Function

    End Function

    '<<========= 

    • Alt+Q per chiudere l'editor di VBA e tornare a Excel
    • Salva il file con l’estensione xlsm
    • Alt+F8 per aprire  la finestra di gestione delle macro
    • Seleziona Tester
    • Esegui

    Quindi, seleziona il programma di posta elettronica, ad esempio Outlook, e incolla direttamente gli indirizzi selezionati.

    A titolo di esempio, se dovessi selezionare il primo, secondo e quinto indirizzi mostrati qui sopra,  eseguire la macro Tester, aprire Outlook e quindi fare  una semplice operazione di incolla, in Outloik otterei qualacosa del genere:

         

    Potresti scaricare il mio file di prova Giannni20170810.xlsm

    Per esguire il codice, premi il pulsante:

    ===

    Regards,

    Norman

    La risposta è stata utile?

    2 persone hanno trovato utile questa risposta.
    0 commenti Nessun commento

1 risposta aggiuntiva

Ordina per: Più utili
  1. Anonimo
    2017-08-10T12:05:38+00:00

    Se fattibile basterebbe usare la funzione "Concatena".

    Esempio:

    =CONCATENA(A1;",")

    oppure

    =A1&","

    e poi trascinare la formula fino a dove necessario.

    La risposta è stata utile?

    1 persona ha trovato utile questa risposta.
    0 commenti Nessun commento