Sviluppare funzionalita su Microsoft Office con VBA selezionare un elenco di email da un foglio Excel

LoginRegistrati
Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
  • Autore
    Articoli
  • #29711 Risposta

    mflauto
    Partecipante

      Buongiorno a tutti, avrei bisogno di un piccolo aiuto per creare un set di istruzioni che mi permettano di selezionare da un foglio chiamato: "Inviti" dalla colonna: "A" i destinatari o gruppi di destinatari a cui voglio inviare un'invito ad una riunione tramite Outlook, se metto una "X" nella colonna: "C" mi deve selezionare l'invito e poi con un pulsante (già creato da me deve posizionare tutti gli indirizzi separati dal punto e virgola, nella cella: "A2" del foglio: "Rubrica", il resto l'ho già creato.

      In allegato il file di esempio.

      Grazie come sempre per l'aiuto. Massimiliano

      Allegati:
      You must be logged in to view attached files.
      #29713 Risposta
      PMC77
      PMC77
      Partecipante
        9 pts

        Ciao @mflauto

        Mi sembra strano che tu riesca a creare la macro di invio mail e non a fare un semplice ciclo su una colonna per crearti un elenco di destinatari da inserire nel secondo foglio….

        Detto questo se guardi nell'altra sezione del forum uno dei miei ultimi messaggi in risposta a RafBor c'è un ciclo che con pochi aggiustamenti potrebbe fare al caso tuo!

        Buona giornata!

        Paolo

        #29714 Risposta

        mflauto
        Partecipante

          Buongiorno Paolo,

          ho da poco intrapreso la strada della programmazione, però con un pò di reverse engineering si riesce a fare quasi tutto! grazie per il suggerimento.

          Option Explicit
          Sub aggiornaScadenze_VF()
          Dim v As Variant
          Dim OutApp As Object
          Dim fdrCalendar As Object
          Dim ItemAppt As Object
          Dim i As Long, j As Long
          Dim bFound As Boolean
          
              Set OutApp = CreateObject("Outlook.Application")
              Set fdrCalendar = OutApp.GetNamespace("MAPI").GetDefaultFolder(9)    '9 = olFolderCalendar
          
              OutApp.Session.Logon
              Sheets("ElencoEventi").Select
              For Each v In Range("A1").CurrentRegion.Rows
                  If v.Row > 1 Then
                      If Trim(v.Cells(3)) = "" Then
                          MsgBox "il documento " & v.Cells(1) & " non ha una data scadenza", vbInformation, "campo obbligatorio"
                      Else
                          '---- check
                          For Each ItemAppt In fdrCalendar.Items
                              If ItemAppt.Subject = v.Cells(1) Then
                                  bFound = True
                                  'trovato subject uguale: verifico se il corpo è uguale, se diverso lo aggiorno
                                  'If ItemAppt.Body <> v.Cells(2) Then ItemAppt.Body = v.Cells(2)
                                 If ItemAppt.Body <> Trim(WorksheetFunction.Clean(v.Cells(2))) Then ItemAppt.Body = v.Cells(2)
                                  'data di scadenza non uguale all'appuntamento già inserito:
                                  'cancella appuntamento esistente e lo reinserisce in nuova posizione
                                  If ItemAppt.Start <> v.Cells(3) Then
                                      ItemAppt.Delete
                                      Call CreateItem(OutApp, v)
                                      j = j + 1
                                  End If
                              End If
                          Next
                          '--------------------
                          If Not bFound Then
                              Call CreateItem(OutApp, v)
                              i = i + 1
                              bFound = False
                          End If
                      End If
                  End If
              Next
              
              Set OutApp = Nothing
              MsgBox "Ho inserito " & i & " scadenze, ho modificato " & j & " scadenze"
          End Sub
          
          Private Sub CreateItem(olApp As Object, v As Variant)
          Dim OutCalendar As Object
          Dim RCP As Range
          Set OutCalendar = olApp.CreateItem(1)  'nuovo appuntamento
          Set RCP = Worksheets("Rubrica").Range("A2")
              With OutCalendar
                  .AllDayEvent = True
                  .Start = v.Cells(4).Value     'data & ora delle riunione
                  .End = v.Cells(5).Value          'data & ora delle fine riunione
                  .Subject = v.Cells(1)       'oggetto dell'evento
                  .Location = v.Cells(3)         ' luogo dell'evento
                  .Body = v.Cells(2)          'corpo del documento
                 ' .ReminderMinutesBeforeStart = 50
                  .ReminderSet = True
                  .Recipients.Add RCP
                  .MeetingStatus = 1      ' 1 = olMeeting
                  .Recipients.ResolveAll
                '  .send
                  .display
                  .Save
              End With
              Set OutCalendar = Nothing
              Set RCP = Nothing
           End Sub
          
        LoginRegistrati
        Stai vedendo 3 articoli - dal 1 a 3 (di 3 totali)
        Rispondi a: selezionare un elenco di email da un foglio Excel
        Gli allegati sono permessi solo ad utenti REGISTRATI
        Le tue informazioni:



        vecchio frac - 2750 risposte

        albatros54
        albatros54 - 1052 risposte

        patel
        patel - 1045 risposte

        Marius44
        Marius44 - 943 risposte

        Luca73
        Luca73 - 757 risposte