Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
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