Risultati da 1 a 12 di 12

Discussione: listbox con date scadute



  1. #1
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    listbox con date scadute

    Ciao a tutti.
    https://www.dropbox.com/s/dupk8e4afm...5%2B.xlsm?dl=0

    Descrivo quello che vorrei e poi quello che ho fatto.
    Vorrei che:
    1) all'apertura del file, una macro facesse la verifica dei dipendenti che non hanno ancora effettuato i corsi obbligatori rispetto alle condizioni sottoelencate e con una message box mi desse l'alert e contestualmente me ne proponesse l'elenco ( nominativo e data scaduta). In alternativa, se la messagebox non può contenere una listbox, permettermi dal msgbox di aprire una userform con l'elenco.

    -> quello che ho fatto è:
    1a) esclusivamente creare la msgbox ma non sono ingrado di fargli fare il controllo, nè di indirizzarla alla userform
    2a) creare una maschera della userform con immagine e listbox...vuota!!

    La data inizio attività e scadenza della stessa sono presenti nel foglio 0_nuovo assunto
    mentre le condizioni perchè non si attivi l'allarme sono nel foglio 1_FormazioneSicurezza e precisamente nella colonne da C ad F dove quelli obbligatori sono il Generale (colonna C) e Specifica ( una tra le colonne D-E-F).

    Grazie in anticipo
    Gene

  2. #2
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1115
    Versione Office
    2010
    Likes ricevuti
    143
    Likes dati
    1

    Re: listbox con date scadute

    hai allegato un file con colonne nascoste, non ci ho capito niente.

  3. #3
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155

    Re: listbox con date scadute

    Ciao Gene
    L’unico controllo che vedo è riferito alla cella BC1
    If Range("BC1").Value = 1 Then

    Ma quell’1 come e quando dovrebbe essere scritto? Perché non fare il controllo sul Foglio interessato? Forse dai Fogli Formazione Sicurezza o Aggiornamenti?

    Mi sembra di averti già detto che per fare un (buon) programma devi:
    - mettere nero su bianco quello che vuoi fare;
    - trasformare quello che hai scritto in codice;
    - intervenire su eventuali (ve ne saranno di sicuro);
    - testare quanto fatto.

    Altra cosa. Nel MsgBox non è il caso di inserire una ListBox (non si può) ma puoi inserire un elencazione di ciò che risponde a dei criteri con le rispettive date. Se hai proprio bisogno di una ListBox allora e meglio utilizzare una UserForm e metter dentro tutti i Controls che vuoi.

    Aspettiamo, patel (ciao) ed io, tue nuove.
    Ciao,
    Mario

  4. #4
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: listbox con date scadute

    Ciao a tutti.
    Premesso che forse è meglio ignorare quel poco (MSGBOX & Co.) che ho fatto perchè ho l'impressione che generi solo confusione come da indicazione di Patel.

    Provo a spiegarmi meglio, ripartendo da zero.
    Le necessità sono tutte nel foglio 1_Formazione Sicurezza infatti i corsi svolti nelle colonne C-D-E-F devono sottostare ad obblighi di legge (svolgimento entro 60 gg dalla data di inizio lavoro) quindi:
    1) la macro deve verificare se la cella C e una tra le celle D o E o F sono non vuote (presenza del testo:22/06/10_04 o similare).
    2) Nel caso che lo fossero si apre una MSGBOX che mi avverte dello scaduto con "un elencazione di ciò che risponde a dei criteri con le rispettive date" (Mario dixit)
    3) contemporaneamente nello stesso messaggio propone "VUOI APRIRE IL DETTAGLIO ?
    4) Se clicco SI apre il foglio 1_Formazione Sicurezza.
    5) Nel caso clicci su NO chiude esclusivamente la MSGBOX.
    6) Opzional: se tutte le righe rispettano le indicazioni di legge la MSGBOX segnala "NON CI SONO ADEMPIMENTI NON RISPETTATI"


    Gene

  5. #5
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1115
    Versione Office
    2010
    Likes ricevuti
    143
    Likes dati
    1

    Re: listbox con date scadute

    a che serve questa macro che fa riferimento ad un foglio senza date e con colonne nascoste ?
    Codice: 
    Private Sub Workbook_Open()
    
    Sheets("Dashboard").Select
    Range("A1:AX21").Select
    ActiveWindow.Zoom = True
    Range("A1").Select
    If Range("BC1").Value = 1 Then
    GoTo Fine
    Else
    Dim Risposta As VbMsgBoxResult
    Risposta = MsgBox("ATTENZIONE: Ci sono dipendenti con corsi scaduti" & Chr(13) & "Vuoi proseguire?", vbYesNo)
    If Risposta = vbNo Then
    MsgBox "Scegliere OK per chiudere il file", , ""
    ActiveWorkbook.Close
    'ActiveWindow.Close
    'Range("BC1").Value = 1
    Else
    'MsgBox "Per proseguire clicca su OK.", , ""
    End If
    Fine:
    End If
    
    End Sub

  6. #6
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: listbox con date scadute

    Ciao Patel,
    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    Ciao a tutti.
    Premesso che forse è meglio ignorare quel poco (MSGBOX & Co.) che ho fatto perchè ho l'impressione che generi solo confusione come da indicazione di Patel.
    come scrivevo lascia perdere quel poco che ho fatto come VBA. Sono dei tentativi di autonomia andati male....

    Gene

  7. #7
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155

    Re: listbox con date scadute

    Ciao Gene
    mi fai lavorare anche a Ferragosto
    Prova a sostituire la tua macro con questa (sempre in WorkBook_Open
    Codice: 
    Option Explicit
    
    
    Private Sub Workbook_Open()
    Dim ur As Long, i As Long, testo1 As String, testo As String, risp As Integer
    Sheets("Dashboard").Select
    With Sheets("1_formazione Sicurezza")
        ur = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = 7 To ur
            If .Cells(i, 3) <> "" And (.Cells(i, 4) <> "" Or .Cells(i, 5) <> "" Or .Cells(i, 6) <> "") Then
                testo1 = .Cells(i, 1) & " - " & .Cells(i, 3) & vbLf
                testo = testo & testo1
            End If
        Next i
    End With
    If testo <> "" Then
        risp = MsgBox("ATTENZIONE!" & vbLf & "Ci sono dipendenti con corsi scaduti" & vbLf & vbLf & _
            testo & vbLf & "Vuoi aprire il dettaglio?", 4 + vbInformation, "Domanda")
            If risp = 6 Then
                Sheets("1_formazione Sicurezza").Select
            End If
    End If
    End Sub
    Ovviamente, se ho capito bene, esclude Super Daniele perchè le celle D, E e F sono vuote.

    Fai sapere. Ciao,
    Mario

  8. #8
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    72
    Messaggi
    1115
    Versione Office
    2010
    Likes ricevuti
    143
    Likes dati
    1

    Re: listbox con date scadute

    Citazione Originariamente Scritto da G.Bove Visualizza Messaggio
    Ciao Patel,

    come scrivevo lascia perdere quel poco che ho fatto come VBA. Sono dei tentativi di autonomia andati male....

    Gene
    posso capire tentativi andati male, ma almeno indicare il foglio giusto ..., a me sembra piuttosto che non ci provi nemmeno a tentare

  9. #9
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: listbox con date scadute

    Ciao Mario,
    funziona alla grande devo solo invertire le condizioni infatti solo Super Daniele non ha adempiuto all'obbligo avendo fatto solo un corso su due obbligatori.

    Provo a capire e a correggere in autonomia.

    Grazie e Buon Ferragosto a tutti.

    Gene
    PS Come già detto quando sei in zona Brianza hai una cena pagata .

  10. #10
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: listbox con date scadute

    Ciao Mario,
    con le mie misere conoscenze non ci arrivo.
    Dettaglio il ragionamento che faccio sulla tua macro per invertire il principio di funzionamento e mi dici dove sbaglio:
    Codice: 
    Option Explicit 
    
    Private Sub Workbook_Open()
    Dim ur As Long, i As Long, testo1 As String, testo As String, risp As Integer
    Sheets("Dashboard").Select
    With Sheets("1_formazione Sicurezza")
        ur = .Cells(Rows.Count, 1).End(xlUp).Row
    Qui hai definito le condizioni quindi NON cambio nulla.

    Codice: 
    For i = 7 To ur
            If .Cells(i, 3) <> "" And (.Cells(i, 4) <> "" Or .Cells(i, 5) <> "" Or .Cells(i, 6) <> "") Then
                testo1 = .Cells(i, 1) & " - " & .Cells(i, 3) & vbLf
                testo = testo & testo1
            End If
    Qui definisci la regola da applicare e gli dici di verificare che le celle 3-4-5-6 siano diverse da Vuote.
    Quindi è qui che ho provato ad agire modificando il <> con = [per fargli tenere conto di quelle vuote]

    Codice: 
    Next i
    End With
    If testo <> "" Then
        risp = MsgBox("ATTENZIONE!" & vbLf & "Ci sono dipendenti con corsi scaduti" & vbLf & vbLf & _
            testo & vbLf & "Vuoi aprire il dettaglio?", 4 + vbInformation, "Domanda")
            If risp = 6 Then
                Sheets("1_formazione Sicurezza").Select
            End If
    End If
    End Sub
    Qui chiudi dandogli indicazioni per la MSGBOX e quindi NON tocco nulla (.... in realtà ho fatto anche una prova a sostituire <> con = dopo If testo)

    Ovviamente non ha funzionato

    Gene

  11. #11
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3222
    Versione Office
    Excel2010
    Likes ricevuti
    627
    Likes dati
    155

    Re: listbox con date scadute

    Ciao Gene

    Secondo punto da te indicato. Sempre se ho capito bene, dovresti cambiare quella parte di codice come appresso:
    Codice: 
    For i = 7 To ur
            If .Cells(i, 3) <> "" And (.Cells(i, 4) = "" And .Cells(i, 5) = "" And .Cells(i, 6) = "") Then
                testo1 = .Cells(i, 1) & " - " & .Cells(i, 3) & vbLf
                testo = testo & testo1
            End If
        Next i
    Prova e fai sapere. Ciao,
    Mario

  12. #12
    L'avatar di G.Bove
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Milano
    Età
    51
    Messaggi
    870
    Versione Office
    2010
    Likes ricevuti
    24
    Likes dati
    186

    Re: listbox con date scadute

    [RISOLTO]
    Ciao Mario,
    sei più preciso della carabina di Niccolò Campriani .
    Grazie ancora
    Gene

Discussioni Simili

  1. ControlFormat in Listbox
    Di Textomb nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 03/01/17, 11:02
  2. Come popolare una ListBox
    Di aurelio125 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 11/11/16, 01:24
  3. [Risolto] Listbox-Combobox
    Di marc63 nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 26/10/16, 23:44
  4. [Risolto] Ripulire ListBox
    Di giugar nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 17/10/16, 11:29
  5. hiperlink listbox
    Di nessi nel forum Domande su Excel VBA e MACRO
    Risposte: 10
    Ultimo Messaggio: 30/04/16, 14:09

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •