Risultati da 1 a 7 di 7

Discussione: estrai elenco nomi con condizioni



  1. #1
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    423
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    638

    estrai elenco nomi con condizioni

    Un saluto a tutti voi,
    chiedo a voi esperti in Vba la soluzione che non riesco ad avere con le formule...
    nel file allegato mi ritrovo un riferimento circolare che non si riesce a risolvere
    motivo per cui vi chiedo un codice in VBA (Foglio sett_1,sett_2,ecc fino alla 54° cella B16:B44) che mi cerca un elenco di nomi univoco (nel foglio elenco_pazienti)
    a condizioni che il valore presente nella colonna L (in corrispondenza del nome preso in esame) sia minore al valore presente nella colonna J
    e quando questi due valori sono uguali si colora la cella dove è presente il nome del paziente segnalandomi la fine del trattamento e mi elimini il nome dall'elenco
    del foglio settimana successive...
    Nella speranza di aver spiegato bene la mia esigenza
    ringrazio anticipatamente coloro che vorranno dedicare del tempo.....
    Grazie
    File Allegati File Allegati
    Windows8.1 office 2010

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3224
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155
    Ciao Vincenzo
    se ho capito la tuo domanda potresti provare con la seguente macro (inserita nel Modulo di classe del Foglio "Elenco_Pazienti")

    Codice: 
    Private Sub Worksheet_Activate()
    Dim uR As Long, i As Long
        uR = Sheets("Elenco_Pazienti").Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To uR
            If Cells(i, 10).Value = Cells(i, 12).Value Then
                Cells(i, 2).Interior.ColorIndex = 3
            End If
        Next i
    End Sub
    Di primo acchito sembra non faccia nulla ma colora di Rosso il nome del paziente che ha completato il ciclo "quando selezioni" il Foglio Elenco_Pazienti.

    Prova e fai sapere perchè non sono ancora riuscito a trovare qualcosa per il seguito (cioè eliminare il nome del paziente nelle settimane successive a quella in cui ha completato il ciclo.

    Ciao,
    Mario

  3. #3
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    423
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    638
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Ciao Vincenzo
    se ho capito la tuo domanda potresti provare con la seguente macro (inserita nel Modulo di classe del Foglio "Elenco_Pazienti")

    Codice: 
    Private Sub Worksheet_Activate()
    Dim uR As Long, i As Long
        uR = Sheets("Elenco_Pazienti").Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To uR
            If Cells(i, 10).Value = Cells(i, 12).Value Then
                Cells(i, 2).Interior.ColorIndex = 3
            End If
        Next i
    End Sub
    Di primo acchito sembra non faccia nulla ma colora di Rosso il nome del paziente che ha completato il ciclo "quando selezioni" il Foglio Elenco_Pazienti.

    Prova e fai sapere perchè non sono ancora riuscito a trovare qualcosa per il seguito (cioè eliminare il nome del paziente nelle settimane successive a quella in cui ha completato il ciclo.

    Ciao,
    Mario
    Ciao Marius44,
    Grazie del tuo interessamento...
    Ho provato il codice che hai postato e funziona benissimo ( se possibile vorrei selezionare tutta la riga nel Foglio Elenco_pazienti)
    ma la cosa che mi preme di più è creare nei fogli sett_1,sett_2 fino a sett_54 (che sono le settimane dell'anno in corso) un codice VBA
    colonna B16:B44 che mi elenchi i nomi dei Pazienti che non hanno ancora terminato il trattamento e a condizioni che il valore presente nella colonna L Foglio elenco_pazienti
    sia minore al valore presente nella colonna J
    e quando questi due valori sono uguali si colora la cella dove è presente il nome del paziente segnalandomi la fine del trattamento e mi elimini il nome dall'elenco
    del foglio settimana successive...
    Grazie ancora
    Windows8.1 office 2010

  4. #4
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3224
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155
    Ciao Vincenzo
    ho notato solo adesso che tu hai la versione di Excel superiore alla mia (io 2007, tu 2010) che include la nuova (per me) funzione AGGREGA e, pertanto, creando una nuova scheda settimana (copia/incolla dalla tua) mi dà un bel NOME?.
    Ho aggirato l'ostacolo con la sottostante macro (da inserire in un Modulo standard ed associare ad un pulsante nel foglio della settimana che ti interessa) che fa il lavoro richiesto, cioè elenca tutti i pazienti che non hanno ancora completato il ciclo di terapia.
    ATTENTO, PERO' : utilizzando la macro vengono eliminate le formule nella colonna B (mentre quelle della colonna C eseguono il proprio lavoro).
    Codice: 
    Sub Settimana_Successiva()
    Dim uR As Long, i As Long, a As Long
        uR = Sheets("Elenco_Pazienti").Cells(Rows.Count, 2).End(xlUp).Row
        a = 16
        For i = 2 To uR
            If Sheets("Elenco_Pazienti").Cells(i, 10).Value > Sheets("Elenco_Pazienti").Cells(i, 12).Value Then
                ActiveSheet.Cells(a, 2) = Sheets("Elenco_Pazienti").Cells(i, 2).Value
                ActiveSheet.Cells(a, 3) = Sheets("Elenco_Pazienti").Cells(i, 9).Value
                a = a + 1
            End If
        Next i
    End Sub
    Fammi sapere. Ciao,
    Mario

  5. I seguenti utenti hanno dato un "Like"


  6. #5
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    423
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    638
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Ciao Vincenzo
    ho notato solo adesso che tu hai la versione di Excel superiore alla mia (io 2007, tu 2010) che include la nuova (per me) funzione AGGREGA e, pertanto, creando una nuova scheda settimana (copia/incolla dalla tua) mi dà un bel NOME?.
    Ho aggirato l'ostacolo con la sottostante macro (da inserire in un Modulo standard ed associare ad un pulsante nel foglio della settimana che ti interessa) che fa il lavoro richiesto, cioè elenca tutti i pazienti che non hanno ancora completato il ciclo di terapia.
    ATTENTO, PERO' : utilizzando la macro vengono eliminate le formule nella colonna B (mentre quelle della colonna C eseguono il proprio lavoro).
    Codice: 
    Sub Settimana_Successiva()
    Dim uR As Long, i As Long, a As Long
        uR = Sheets("Elenco_Pazienti").Cells(Rows.Count, 2).End(xlUp).Row
        a = 16
        For i = 2 To uR
            If Sheets("Elenco_Pazienti").Cells(i, 10).Value > Sheets("Elenco_Pazienti").Cells(i, 12).Value Then
                ActiveSheet.Cells(a, 2) = Sheets("Elenco_Pazienti").Cells(i, 2).Value
                ActiveSheet.Cells(a, 3) = Sheets("Elenco_Pazienti").Cells(i, 9).Value
                a = a + 1
            End If
        Next i
    End Sub
    Fammi sapere. Ciao,
    Mario
    Ciao Mario,
    Grazie x avermi tolto il mal di testa che mi veniva ogni volta che aprivo il file in questione.... -:)
    il tuo codice è perfetto era quello che cercavo in quanto la formula che avevo inserito, che doveva avere come condizione le ore effettuate (e non la data)
    mi dava un riferimento circolare.......
    Ti chiedo un'ultima cosa:
    la macro funziona sul foglio attivo?
    se anzichè attivare la macro dal pulsante la volessi attivare all'apertura del foglio cosa devo cambiare?
    tu cosa mi consigli di fare?
    se ci sono dei nominativi uguali cosa succede?
    se durante la settimana quando segno le ore e il paziente, nel fattempo raggiunge le ore stabilite, mi colora la cella nel foglio sett_1,2, ecc?
    N.B....se questa opzione è complicata lasciamo perdere......
    Ti ringrazio tanto e attendo tuoi consigli e chiarimenti....
    Windows8.1 office 2010

  7. #6
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3224
    Versione Office
    Excel2010
    Likes ricevuti
    628
    Likes dati
    155
    Ciao Vincenzo
    Grazie per avermi fatto fare la parte ... dell'Aspirina :176:
    Purtroppo non posso testarlo per i motivi che t’ho detto (versioni differenti) ma rispondo alle tue richieste.
    1) se vuoi colorare l’intera riga sostituisci la macro con questa (dovrebbe coloare fino alla colonna I – al caso cambia tu il riferimento alla colonna)
    Codice: 
    Private Sub Worksheet_Activate()
        Dim uR As Long, i As Long, intv As String
        uR = Sheets("Elenco_Pazienti").Cells(Rows.Count, 2).End(xlUp).Row
        For i = 2 To uR
            If Cells(i, 10).Value = Cells(i, 12).Value Then
                intv = "B" & i & ":I" & i
                'Cells(i, 2).Interior.ColorIndex = 3    <==  questa è da eliminare
                Range(intv).Interior.ColorIndex = 3
            End If
        Next i
    End Sub
    Nota le parti in rosso.
    2) per quanto attiene all’elencazione dei nomi per i fogli successivi potresti fare così:
    a) Foglio “Elenco_Pazienti” in P2 inserisci questa formula: =NUM.SETTIMANA(O2;1)+1 che ti dà il numero della settimana + 1;
    b) nella macro “Settimana_Successiva” dovresti nidificare nel primo ciclo un secondo che DALLA SETTIMANA DI CUI AL PUNTO a) fino alla fine e FINO ALLA SETTIMANA DI FINE TERAPIA ti inserisce il nominativo. Poiché, però, le righe nelle settimane cambiano non puoi utilizzare la “a” per identificare la riga dove scrivere, come avevo fatto io, ma ogni volta individua l’ultima riga piena e incrementala di 1.

    3) Nominativo “uguali” sono da escludere. Trova il modo di distinguerli.

    4) “SE durante la settimana …” – credo che sarebbe troppo complicato (almeno per me) ed meglio lasciare le cose come sono adesso, o meglio: come saranno.

    Scusa se ti dò solo degli spunti ma proprio non posso testare quanto t'ho detto sopra.
    Fammi sapere. Ciao,
    Mario

  8. #7
    L'avatar di Vincenzo Damiani
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Molfetta
    Età
    58
    Messaggi
    423
    Versione Office
    2010
    Likes ricevuti
    13
    Likes dati
    638
    Ciao Mario,
    I tuoi consigli e suggerimenti sono stati più che sufficienti a risolvere il mio problema primario e per questo ti ringrazio tanto.....
    Mi rendo conto, avvolte, che essere troppo perfezionisti non serve.....
    per cui dichiaro questa discussione conclusa....
    ancora grazie
    Windows8.1 office 2010

Discussioni Simili

  1. [Risolto] Nomi mancanti da elenco
    Di cirochim nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 07/01/17, 17:37
  2. estrai elenco iscritti
    Di pipp333 nel forum Domande su Excel in generale
    Risposte: 23
    Ultimo Messaggio: 10/09/16, 23:28
  3. Estrai Stringa
    Di Pacifico437 nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 31/07/16, 19:35
  4. Estrai-concatena
    Di BRAZ66 nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 18/07/16, 16:28
  5. funzione estrai nomi
    Di mb63 nel forum Domande su Excel VBA e MACRO
    Risposte: 12
    Ultimo Messaggio: 02/03/16, 14:32

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
  •