Tag: excel VBA

  • Creare una Maschera di Inserimento Dati in Excel

    Creare una Maschera di Inserimento Dati in Excel

    Un tutorial pratico e completo per semplificare la raccolta di dati anagrafici in Excel tramite l’uso delle macro VBA

    [xyz-ips snippet=”maschera”]


    Argomenti trattati

    • Come creare una mascherina semplice per l’inserimento dati
    • Scrivere una macro per trasferire i dati in una tabella
    • Inserire pulsanti con macro associate
    • Resettare i campi dopo l’inserimento
    • Controllare eventuali duplicati tramite email

    Livello di difficoltà: Base-intermedio
    Tempo di lettura: Circa 7 minuti


    Introduzione

    Quando si raccolgono informazioni da utenti, clienti o collaboratori, una maschera di inserimento è uno degli strumenti più utili da creare in Excel. Permette di inserire dati in modo ordinato, evitando errori, duplicazioni o confusione. In questo tutorial imparerai a realizzare una maschera semplice per l’inserimento di dati anagrafici, completa di pulsanti per salvare i dati, cancellarli e controllare se sono già presenti in una tabella.

    Non serve essere esperti di programmazione: spiegherò passo dopo passo tutto quello che ti serve per realizzare un modulo funzionale, efficace e pronto all’uso, sfruttando semplici macro VBA.


    Svolgimento

    1. Struttura della maschera

    Apri Excel e crea un nuovo file. Rinomina il primo foglio in Foglio1. Qui inserirai i campi della mascherina di input, disposti in verticale nella colonna C:

    RigaCampo
    2Nome
    3Cognome
    4Area Interesse
    5Telefono
    6Mail
    7Note

    Nel foglio Foglio2 prepara l’intestazione dei dati a partire dalla riga 1, nelle colonne da A a F:

    ColonnaCampo
    ANome
    BCognome
    CArea Interesse
    DTelefono
    EMail
    FNote

    Puoi digitare i titoli a mano oppure copiarli direttamente dalla maschera.

    2. Abilitare le macro

    Per usare il codice VBA, salva il file in formato .xlsm (Cartella di lavoro con attivazione macro). Poi premi ALT + F11 per aprire l’Editor di Visual Basic. Dal menu, vai su Inserisci > Modulo.

    3. Macro 1 – AggiungiDati

    Questa macro legge i dati inseriti nella mascherina e li trasferisce nella prima riga libera del Foglio2.

    Sub AggiungiDati()
    Dim wsInput As Worksheet
    Dim wsDest As Worksheet
    Dim rigaLibera As Long

    Set wsInput = ThisWorkbook.Sheets("Foglio1")
    Set wsDest = ThisWorkbook.Sheets("Foglio2")

    rigaLibera = wsDest.Cells(wsDest.Rows.Count, 1).End(xlUp).Row
    If rigaLibera < 2 Then rigaLibera = 1
    rigaLibera = rigaLibera + 1

    wsDest.Cells(rigaLibera, 1).Value = wsInput.Cells(2, 3).Value
    wsDest.Cells(rigaLibera, 2).Value = wsInput.Cells(3, 3).Value
    wsDest.Cells(rigaLibera, 3).Value = wsInput.Cells(4, 3).Value
    wsDest.Cells(rigaLibera, 4).Value = wsInput.Cells(5, 3).Value
    wsDest.Cells(rigaLibera, 5).Value = wsInput.Cells(6, 3).Value
    wsDest.Cells(rigaLibera, 6).Value = wsInput.Cells(7, 3).Value
    End Sub

    4. Macro 2 – ResetCampi

    Serve a svuotare tutti i campi della maschera, così puoi subito inserire un nuovo nominativo.

    Sub ResetCampi()
    Dim wsInput As Worksheet
    Set wsInput = ThisWorkbook.Sheets("Foglio1")

    Dim i As Integer
    For i = 2 To 7
    wsInput.Cells(i, 3).Value = ""
    Next i
    End Sub

    5. Macro 3 – ControllaDuplicati

    Controlla se la mail che stai per inserire è già presente nella tabella. Se sì, ti porta direttamente alla riga esistente. Se non la trova, ti avvisa.

    Sub ControllaDuplicati()
    Dim wsInput As Worksheet
    Dim wsDest As Worksheet
    Dim mailDaControllare As String
    Dim cella As Range
    Dim trovato As Boolean

    Set wsInput = ThisWorkbook.Sheets("Foglio1")
    Set wsDest = ThisWorkbook.Sheets("Foglio2")

    mailDaControllare = Trim(wsInput.Cells(6, 3).Value)

    If mailDaControllare = "" Then
    MsgBox "Inserisci una mail da controllare.", vbExclamation
    Exit Sub
    End If

    trovato = False
    For Each cella In wsDest.Range("E2:E" & wsDest.Cells(wsDest.Rows.Count, "E").End(xlUp).Row)
    If Trim(cella.Value) = mailDaControllare Then
    trovato = True
    Application.Goto cella, True
    MsgBox "Mail già presente nella riga " & cella.Row, vbInformation
    Exit Sub
    End If
    Next cella

    If Not trovato Then
    MsgBox "Dato non presente.", vbInformation
    End If
    End Sub

    6. Inserire i pulsanti

    Torna su Foglio1, clicca su Inserisci > Forme > Rettangolo e disegna tre pulsanti:

    • Aggiungi
    • Reset
    • Controlla Mail

    Fai clic destro su ogni rettangolo > Assegna macro e collega ciascuno alla macro corrispondente.

    7. Test finale

    1. Scrivi i dati nella maschera
    2. Clicca su “Controlla Mail” per vedere se esiste già
    3. Clicca su “Aggiungi” per salvarli
    4. Clicca su “Reset” per svuotare i campi

    [xyz-ips snippet=”maschera”]


    Creare una Maschera di Inserimento Dati: conclusioni

    Abbiamo realizzato una maschera di inserimento anagrafico completamente funzionale in Excel. Grazie a poche righe di codice VBA, ora sei in grado di raccogliere dati in modo ordinato, veloce e senza duplicazioni.

    Questa procedura è perfetta per moduli clienti, elenchi iscritti, raccolte dati in azienda o per la gestione di piccole anagrafiche. Con semplici personalizzazioni, puoi adattarla a qualsiasi tipo di tabella o esigenza.

    Se vuoi vedere tutto questo in azione, puoi guardare il video tutorial collegato a questo articolo o scaricare il file di esempio dal mio sito.

    Per qualsiasi domanda o personalizzazione, puoi scrivermi: sarò felice di aiutarti a fare un passo avanti nella tua carriera digitale.

    Se il tutorial Creare una Maschera di Inserimento Dati ti è stato utile, puoi supportarmi lasciandomi una recensione a 5 stelle (5, perchè per Google meno di 5 viene considerata recensione negativa):

    Clicca qui per lasciarmi una recensione

    Guarda il VideoTutorial Creare una Maschera di Inserimento Dati

  • Excel: come Creare un Pulsante per Inviare Email Personalizzate

    Excel: come Creare un Pulsante per Inviare Email Personalizzate

    Tutorial Excel: creare un pulsante per inviare delle email

    [xyz-ips snippet=”085″]

    👇 Scorri in basso per copiare il codice VBA 👇

    Excel: come Creare un Pulsante per Inviare Email Personalizzate

    • 00:00 – introduzione
    • 00:20 – Impostazione Iniziale
    • 00:45 – creare un menù a tendina
    • 01:05 – formattazione condizionale
    • 01:30 – codice VBA
    • 02:15 – creazione pulsante
    • 02:26 – test funzionamento esercizio
    • 02:36 – come scaricare il modello del preventivo

    Come Creare un Pulsante per Inviare Email Personalizzate

    [Introduzione] 0:00 Se stai cercando un modo per automatizzare l’invio di email personalizzate tramite Excel, sei nel posto giusto! In questo breve tutorial, ti mostrerò come creare un pulsante che ti permetterà di spedire un’email personalizzata con un solo click. Continua a seguirmi per imparare questa utile funzionalità di Excel.

    Per prima cosa, assicuriamoci di essere sulla stessa pagina. Poiché utilizzeremo del codice VBA (Visual Basic for Applications), è importante salvare il file nel formato giusto. Vai su “File,” seleziona “Salva con Nome,” e scegli “Cartella di Lavoro con Attivazione Macro.” Assegna un nome al tuo file e assicurati di avere l’estensione “.xlsm.”

    [Creare un Menù a Tendina] 0:52

    Ora, creiamo un elenco a discesa che ci permetterà di selezionare se la consegna è stata effettuata o meno. Vai su “Dati,” seleziona “Convalida,” e scegli “Elenco da Origine.” Seleziona le celle che contengono “Sì” e “No” (generalmente E1 ed E2) e conferma. Questo ci permetterà di segnare se l’utente ha consegnato l’esame o meno.

    [Formattazione Condizionale] 1:27

    Per una maggiore chiarezza, possiamo utilizzare la formattazione condizionale. Crea una nuova regola di formattazione condizionale per evidenziare in rosso chi deve ancora consegnare l’esame. Utilizza la formula: =C2="No" per formattare in rosso le celle in cui è segnato “No.”

    [Invio delle Email e creazione del codice VBA] 2:08

    Ora entriamo nel cuore del nostro tutorial: creare il codice VBA per automatizzare l’invio delle email. Puoi trovare il codice completo sul mio sito [inserire il tuo URL]. Copia il codice e incollalo in un nuovo modulo VBA.

    Per far funzionare il codice correttamente, assicurati di modificare il nome del foglio di lavoro. In particolare, sostituisci “esame” con il nome del tuo foglio, se diverso. Modifica anche il testo dell’email secondo le tue esigenze, ad esempio, l’oggetto dell’email e il messaggio stesso.

    Torna al tuo foglio Excel e inserisci un pulsante tramite “Inserisci.” Quindi, assegna al pulsante la macro che abbiamo appena creato: “Invia Email a Chi Non Ha Ancora Inviato.”

    [Risultato] 4:19

    Ora, quando cliccherai su questo pulsante, Excel invierà automaticamente un’email personalizzata agli utenti che non hanno ancora consegnato l’esame. Puoi vedere il messaggio di conferma e il destinatario nell’interfaccia di Excel.

    Se questo tutorial ti è stato utile, sostieni il mio lavoro lasciando un like e iscrivendoti al mio canale 🙏

    Tutorial Excel: il codice VBA per creare un pulsante che invii delle email di sollecito a un elenco di utenti

    Copia il seguente codice e incollalo nell’Editor VBA della tua cartella Excel:

    Sub InviaEmailNO()
        Dim OutApp As Object
        Dim OutMail As Object
        Dim Rng As Range
        Dim Cell As Range
        Dim NomiInviati As String ' Stringa per memorizzare i nomi inviati
        Dim CorrispondenzaTrovata As Boolean ' Variabile di controllo
        
        ' Inizializza la stringa dei nomi inviati
        NomiInviati = ""
        
        ' Inizializza la variabile di controllo
        CorrispondenzaTrovata = False
        
        ' Crea un'applicazione Outlook
        Set OutApp = CreateObject("Outlook.Application")
        
        ' Imposta il foglio di lavoro e l'intervallo di celle
        Set Rng = ThisWorkbook.Sheets("NomeDelTuoFoglio").Range("A1:C" & Cells(Rows.Count, "A").End(xlUp).Row)
        
        ' Loop attraverso le righe dell'intervallo
        For Each Cell In Rng.Rows
            If Cell.Cells(1, 3).Value = ThisWorkbook.Sheets("NomeDelTuoFoglio").Range("E2").Value Then
                ' Crea un nuovo messaggio email
                Set OutMail = OutApp.CreateItem(0)
                
                ' Configura il destinatario (indirizzo email dalla colonna B)
                OutMail.To = Cell.Cells(1, 2).Value
                
                ' Oggetto del messaggio (personalizzalo a tuo piacimento)
                OutMail.Subject = "Oggetto dell'email"
                
                ' Messaggio personalizzato nel corpo dell'email
                Dim Nome As String
                Dim Scadenza As String
                
                Nome = Cell.Cells(1, 1).Value ' Contenuto dalla colonna A
                Scadenza = ThisWorkbook.Sheets("NomeDelTuoFoglio").Range("G1").Value ' Contenuto di G1
                
                OutMail.Body = "Gentile " & Nome & ", " & vbCrLf & _
                              "Le ricordo che l'esame va consegnato entro e non oltre il " & Scadenza & "." & vbCrLf & vbCrLf & _
                              ""
                
                ' Invia l'email
                OutMail.Send
                
                ' Aggiungi il nome dalla colonna A alla stringa dei nomi inviati
                NomiInviati = NomiInviati & Nome & ", "
                
                ' Imposta la variabile di controllo su True
                CorrispondenzaTrovata = True
                
                ' Libera la memoria dall'oggetto email
                Set OutMail = Nothing
            End If
        Next Cell
        
        ' Chiudi l'applicazione Outlook
        Set OutApp = Nothing
        
        ' Se non è stata trovata alcuna corrispondenza, mostra un messaggio
        If Not CorrispondenzaTrovata Then
            MsgBox "Niente da sollecitare", vbInformation
        Else
            ' Rimuovi l'eventuale virgola finale dalla stringa dei nomi inviati
            NomiInviati = Left(NomiInviati, Len(NomiInviati) - 2)
        
            ' Visualizza il pop-up con i nomi inviati
            MsgBox "Email inviata a: " & NomiInviati
        End If
    End Sub
    

    [xyz-ips snippet=”085″]

    [xyz-ips snippet=”085″]

    Facebook, Instagram, YouTube, Tik Tok, LinkedIn !

    facebook graficaeformazioneInstagram graficaeformazioneyoutube graficaeformazioneLinkedin graficaeformazionetwitter graficaeformazione