Excel e gli applicativi Microsoft Office Creare agenda in excel (2016)

Login Registrati
Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
  • Autore
    Articoli
  • #17930 Score: 0 | Risposta

    Gret
    Partecipante

      Ciao a tutti,

      vorrei porvi un quesito..

      Sarebbe possibile creare un'agendina in una userform?

      In una userform ho un commandbutton e delle textbox; nelle textbox inserisco data (txt1) e testo (txt2), il commandbutton mi trasferisce i dati nel foglio attivo. 

      Se fosse possibile, vorrei inserire un'agenda in questa userform (attivabile da commandbutton) così che possa visionare all'occorrenza quando mi scade un dato valore (txt2).

      Esempio: txt1 inserisco 20/08/2019 e txt2 inserisco "appuntamento dal medico" >> in agenda, nello spazio del 20/08/2019 esce "appuntamento dal medico". Arriva il giorno, apro l'userform, clicco sul button che apre l'agenda e mi compare un messaggio che cita "hai un appuntamento per oggi".

      Avete qualche suggerimento su come procedere?  

      Vi ringrazio in anticipo per la disponibilità e buona continuazione

      #17933 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        Credo che non dovresti premere un pulsante per fare il controllo, dovresti lasciare che sia fatto in automatico all'attivazione dell'userform, nel suo evento Initialize quindi devi confrontare le date memorizzate nella colonna delle date del foglio Excel e mostrare l'avviso quando torva la data corrispondente a quella odierna.

        #17938 Score: 0 | Risposta

        Gret
        Partecipante

          Ho capito, ma non so come procedere sinceramente.  

          Daresti qualche suggerimento per andare avanti?

          Purtroppo c'è un ma...e sarebbe che sia la data e sia l'altro valore vengono trasferiti su un altro foglio (ho sbagliato a scrivere foglio attivo, scusami tanto)..

          Mi sentirei di chiederti una cosa: perchè non collegarlo a un pulsante? Sarebbe comodo visualizzare l'agenda al click..o no? Avresti qualche esempio tra le tue scartoffie, giusto per vedere come è strutturata la cosa?

          Scusa per le mie continue domande, ma la curiosità a volte prevale  

          #17940 Score: 1 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            Gret ha scritto:

            perchè non collegarlo a un pulsante? Sarebbe comodo

            No no era tanto per pensare ad alta voce. Sei tu che disegni l'interfaccia e sei tu che sai meglio di chiunque altro come deve essere guidato l'utente. E' che a volte si danno suggerimenti alternativi solo dettati dall'esperienza 🙂

            Gret ha scritto:

            vengono trasferiti su un altro foglio

            Non è un problema purchè sia raggiungibile (cioè sia sempre nota e certa la locazione del file).

            Gret ha scritto:

            Daresti qualche suggerimento per andare avanti?

            Tra poco devo scappare e non è giusto verso di te buttare giù codice affrettato... ma il succo è (alla pressione del pulsante, quindi), fai un Find sulla colonna che contiene le date per cercare la data odierna, se la trovi mostri l'avviso, altrimenti prosegui normalmente.

            Qualcosa del genere, dove in colonna D ci sono le date:

            dim f as range
            set f = range("D:D").find(date, lookat:=xlwhole)
            if not (f is nothing) then     'data trovata!
                msgbox "Attenzione, oggi hai un impegno!"
            else
                msgbox "Benvenuto nel programma! Per oggi nessun impegno programmato!"
            end if

            Se le date sono su un workbook esterno puoi aprirlo in modo nascosto, controllarne il range qualificandolo per esteso, tipo:

            set f = workbooks("c:\...\datafile.xlsx").worksheets("foglio1").range("D:D").find(date, lookat:=xlwhole)

            Come vedi tutto molto grezzo, bisognerebbe avere qualcosa su cui lavorare 🙂

            #17941 Score: 0 | Risposta

            Gret
            Partecipante

              Ciao,

              Come vedi tutto molto grezzo, bisognerebbe avere qualcosa su cui lavorare

              hai ragione, scusami ho la testa tra le nuvole (causa ferie in arrivo ). Ho provato la tua soluzione ed è moooolto buona (buono a sapersi il metodo Find, così non costruisco l'userform e non appesantisco il file). Si può implementare ulteriormente il codice? Nel senso che si mi appare il messaggio, ma vorrei che mi apparisse anche il valore accanto.

              Nel file, colonna B ci sono le date, in A ci stanno vari valori. Vorrei che uscisse oltre al messaggio "Attenzione, oggi hai un impegno!" (data trovata) anche il valore accanto "Appuntamento8" (nel file è evidenziato, ma non deve uscire evidenziato, ma solo il messaggio)

              Allego file e grazie mille per tutto l'aiuto!

              Allegati:
              You must be logged in to view attached files.
              #17945 Score: 1 | Risposta

              Marius44
              Moderatore
                58 pts

                Ciao

                Indegnamente sostituisco Vecchio frac (che saluto caramente)

                Aggiungi quello che ti ho segnato nella macro associata a CommandButton3

                `Private Sub CommandButton3_Click()
                Dim f As Range
                Set f = Range("B:B").Find(Date, lookat:=xlWhole)
                If Not (f Is Nothing) Then     'data trovata!
                    r = f.Row                  'aggiunta
                    MsgBox "Attenzione, oggi hai un impegno!" & vbLf & Cells(r, 1)   'modifica
                Else
                    MsgBox "Benvenuto nel programma! Per oggi nessun impegno programmato!"
                End If
                End Sub`

                Fai sapere. Ciao,

                Mario

                #17947 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  Marius44 ha scritto:

                  Indegnamente sostituisco Vecchio frac

                  ma dai

                  Accanto all'indicazione di Supermario aggiungo che si può utilizzare Offset applicato all'oggetto "f" che rappresenta la cella in cui è stata trovata la data odierna. Se tale cella è in colonna B, l'istruzione f.Offset(, -1) restituisce il valore della cella a sinistra di quella trovata. Così, intendo, risparmio la variabile r (sai che risparmio   )

                  #17954 Score: 0 | Risposta

                  Gret
                  Partecipante

                    Buongiorno a tutti,

                    Marius44 la soluzione che hai proposto è la migliore in quanto rispecchia alla grande le mie esigenze. Grazie mille   Vecchio Frac grazie mille anche a te per il codice e l'alternativa per l'uso per una cartella esterna  

                    Come sempre siete gentilissimi e posso solo augurarvi buone vacanze e buon lavoro (per chi come me aspetta le ferie )

                    Saluti a tutti  

                    #17955 Score: 0 | Risposta

                    Gret
                    Partecipante

                      Come non detto... se provo a inserire il codice per poter trovare una data da un file esterno mi esce un messaggio "Subscript out of range" e mi evidenzia questa parte:

                      Set f = Workbooks("C:\Users\pippo\OneDrive\Desktop\FileEsterno.xlsx").Worksheets("Sheet1").Range("C:C").Find(Date, lookat:=xlWhole)

                      Eppure il file esterno è aperto  

                      #17956 Score: 1 | Risposta

                      vecchio frac
                      Senior Moderator
                        272 pts

                        Gret ha scritto:

                        Eppure il file esterno è aperto

                        Se il file esterno è aperto ti basta il nome.

                        L'assegnazione a una variabile Workbook si fa per aprirlo e tenerne un riferimento in memoria. Tipo:

                        dim wb as workbook
                        dim f as range
                        
                        set wb = workbooks.Open("c:\users\pippo\desktop\fileesterno.xlsx")
                        set f = wb.worksheets("foglio1").range("B:B").find("cosa sto cercando?", lookat:=xlwhole)
                        if not f is nothing then    'se trovato...
                            msgbox f.offset(, 3)    '...visualizza il contenuto della cella in colonna E, stessa riga
                        end if
                        #17957 Score: 0 | Risposta

                        Gret
                        Partecipante

                          Mi stava prendendo un colpo..   Ho modificato in questo modo e ora va che è una meraviglia.  

                          Set wb = Workbooks("FileEsterno.xlsx")

                          Il resto l'ho lasciato invariato.

                          Grazie mille e buona continuazione. 🙂

                          #17958 Score: 0 | Risposta

                          Gret
                          Partecipante

                            Sto avendo problemi uno dopo l'altro. Sto impazzendo.

                            Gentilmente dareste un'occhiata a questi due file? La motivazione è che mi prende i valori del foglio attivo e non della cartella esterna. Ho specificato tutte le variabili ma niente.

                            Il file da cui cercare è "Test1".

                            Scusatemi tanto per il disturbo   e grazie a chi risponderà.

                             

                            Allegati:
                            You must be logged in to view attached files.
                            #17961 Score: 0 | Risposta

                            Gret
                            Partecipante

                              Nel file "Test1-1" dovete aggiungere queste righe:

                              Dim wb As Workbook
                              Set wb = Workbooks("Test2.xlsm")
                              Set f = wb.Worksheets("Sheet1").Range("B:B").Find(Date, lookat:=xlWhole)

                               

                              #17969 Score: 0 | Risposta

                              Gret
                              Partecipante

                                Alla fine ho risolto aggiungendo questo alle celle:

                                wb.Worksheets("Sheet1")

                                Scusate ancora..

                                #17970 Score: 0 | Risposta

                                vecchio frac
                                Senior Moderator
                                  272 pts

                                  Mi spiace non ho potuto seguire gli ultimi sviluppi. Ma se hai risolto sono contento, bravo   

                                Login Registrati
                                Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
                                Rispondi a: Creare agenda in excel (2016)
                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                Le tue informazioni: