Per inserire una macro
apri il foglio di excel deve contenere il Foglio1 con i dati e il Foglio2 completamente vuoto
e dal Menu > Strumenti > macro > Visual Basic Editor
una volta dentro vai sul Menu > Inserisci > Modulo
Incolli l'intero codice postato
Chiudi il vba
rendi attivo il foglio1 (foglio dei dati visibile)
premi F8 appare il nome della macro "CreaElenco"
la selezione e premi il tasto esegui
Per togliere gli spazi usa questa macro (modifica della precedente)
- Codice: Seleziona tutto
Sub CreaElenco()
Righe2 = Sheets("Foglio2").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Foglio2").Range("A1:F" & Righe2).ClearContents
Righe = Sheets("Foglio1").Range("A2").CurrentRegion.Rows.Count
Sheets("Foglio2").Range("A1").FormulaR1C1 = "NOME"
Sheets("Foglio2").Range("B1").FormulaR1C1 = "COGNOME"
For RR1 = 2 To Righe + 1
Nome = UCase(Trim(Sheets("Foglio1").Cells(RR1, 1).Value))
Cognome = UCase(Trim(Sheets("Foglio1").Cells(RR1, 2).Value))
If Cognome = "" Then
Cognome = Trim(UCase(Mid(Nome, InStr(Nome, " ") + 1, Len(Nome))))
Nome = Trim(UCase(Mid(Nome, 1, InStr(Nome, " ") - 1)))
End If
Sheets("Foglio2").Cells(RR1, 1).Value = Nome
Sheets("Foglio2").Cells(RR1, 2).Value = Cognome
Next RR1
Range("A1").Select
End Sub
per quanto riguarda i nomi doppi avrai il primo nome nella colonna A e il secondo nome nella colonna B insieme al cognome
del resto può anche accadere che ci sia un cognome composta da due parole come De Paperis.
Ciao