Pagina 1 di 3 123 UltimaUltima
Risultati da 1 a 30 di 68

Discussione: If e elseif



  1. #1
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    If e elseif

    Buonasera a tutti nel file che allego in C1 c è una tendina con tre voci "ferie" "rip" "p/r" ho fatto un codice affinché quando scrivo in c1 una di queste tre opzioni nelle celle adiacenti D1,D2,C2...prendono il valore di C1 ma funziona soltanto con ferie".....dove sbaglio?
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("C1") = "FERIE" Then
    Range([D1:D2], [C2]) = Range("c1")
    ElseIf ("C1") = "RIP" Then
    Range([D1:D2], [C2]) = Range("C1")
    ElseIf ("C1") = "P/R" Then
    Range([D1:D2], [C2]) = Range("C1")
    End If
    End Sub
    File Allegati File Allegati

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Ciao, non so se ho capito bene, prova così:
    Codice: 
    
    
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
        If Not Intersect(Target, Range("C1")) Is Nothing Then
            If Target <> "" Then
                Range("D1") = Range("C1")
                Range("D2") = Range("C1")
                Range("C2") = Range("C1")
        End If: End If
    Application.EnableEvents = True
    End Sub
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    ciao Ges....hai capito perfettamente...io l ho scritta in quel modo cercando spunto in rete e mi sembrava giusto.....permettimi: perché non funziona??

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Non funziona perchè hai dato tre condizioni diverse per il medesimo risultato!

    Cioè hai detto che sia SE C1 è uguale a FERIE, che se è uguale a RIP che se è uguale a P/R il range specificato deve essere uguale a C1 ... e questo confligge!!!

    Infatti, funziona solo per FERIE perchè è la prima condizione, se provi a mettere l'altra come prima condizione vedrai che funzionerà quella.

    Avresti potuto sistemare così:
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        If Range("C1") <> "" Then
             Range([D1:D2], [C2]) = Range("c1")
        End If
    End Sub
    Ma c'è un problema: l'evento SelectionChange!

    Vuol dire che ogni volta che cambi selezione in qualsiasi parte del foglio si scatena l'evento richiesto, inoltre, quando cambi la tendina non succede nulla ma devi prima selezionare un'altra cella.

    Col metodo Change e le istruzioni del mio codice postato sopra ( If Not Intersect(Target, Range("C1")) Is Nothing Then), invece, solo quando cambi la tendina si scatena l'evento e anche se selezioni qualsiasi cella del foglio non succede nulla.

    Spero di aver chiarito.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    813
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53

    Re: If e elseif

    Non funzionava perché hai omesso i due "Range" nelle due condizioni "ElseIf", così: "ElseIf Range("C1") = "RIP" Then"

    e poi, nel tuo caso, non ci stava il "Worksheet_SelectionChange" bensì "Worksheet_Change" per gestire l'eventuale cambio di contenuto della cella C1 invece che alla sola selezione della stessa

    e serve pure in controllo con "Application.EnableEvents" per evitare il ripetersi dell'evento ad ogni aggiornamento delle altre celle.

    Se imposti con il mouse o il tasto F9 un punto di interruzione all'altezza della prima riga di codice (compare un pallino marrone a sinistra) quando proverai la macro ti si apre in Debug che ti permetterà di verificare con il tasto F8 l'esecuzione passo-passo della macro.


    ---
    Oppss, eppure questa volta avevo pigiato il Refresh per verificare se c'erano ulteriori risposte ...
    Ultima modifica fatta da:rollis13; 27/06/16 alle 01:31

  6. #6
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    L'esempio che ho postato nella tendina ho messo solo quei tre valori ma nel file che utilizzerò i saranno anche altri imput (orari) con la macro che mi hai proposto qualsiasi valore inserisco nella cella di riferimento me li trascrive nelle altre tre....le celle da prendere in considerazione saranno tante e con select case o singoli if lo so fare (esce fuori un codice kilometrico) allego il file ho messo il codice solo per la prima riga (in giallo) mi chiedevo se si puo scrivere in maniera più corta password 123

    ----------Post unito in automatico----------

    vi ringrazio entrambi delle spiegazioni.....ora studio
    File Allegati File Allegati

  7. #7

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Non funzionava perché hai omesso i due "Range" nella due condizioni "ElseIf", così: "ElseIf Range("C1") = "RIP" Then"

    e poi, nel tuo caso, non ci stava il "Worksheet_SelectionChange" bensì "Worksheet_Change" per gestire l'eventuale cambio di contenuto della cella C1 invece che alla sola selezione della stessa

    e serve pure in controllo con "Application.EnableEvents" per evitare il ripetersi dell'evento ad ogni aggiornamento delle altre celle.

    Se imposti con il mouse o il tasto F9 un punto di interruzione all'altezza della prima riga di codice (compare un pallino marrone a sinistra) quando proverai la macro ti si apre in Debug che ti permetterà di verificare con il tasto F8 l'esecuzione passo-passo della macro.


    ---
    Oppss, eppure questa volta avevo pigiato il Refresh per verificare se c'erano ulteriori risposte ...
    Ciao, Rollis, hai fatto bene a intervenire hai spiegato correttamente perchè non funzionava il codice di Danilo, a me era sfuggito la mancanza di "Range".

    ----------Post unito in automatico----------

    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    L'esempio che ho postato nella tendina ho messo solo quei tre valori ma nel file che utilizzerò i saranno anche altri imput (orari) con la macro che mi hai proposto qualsiasi valore inserisco nella cella di riferimento me li trascrive nelle altre tre....le celle da prendere in considerazione saranno tante e con select case o singoli if lo so fare (esce fuori un codice kilometrico) allego il file ho messo il codice solo per la prima riga (in giallo) mi chiedevo se si puo scrivere in maniera più corta password 123
    @Danilo, non so se è un mio problema o meno (forse excel per Mac) ma anche se metto la password corretta (123) mi dice che è errata, dovresti postare il file senza password.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  8. #8
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    tutto sbloccato....
    File Allegati File Allegati

  9. #9

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Ok, ormai ho copiato il tuo foglio su un altro foglio.
    Ecco la mia soluzione:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
        If Not Intersect(Target, Range("C7:P28")) Is Nothing Then
            If Target = "FERIE" Or Target = "RIP" Or Target = "P/R" Then
                Target.Offset(0, 1) = Target
                Target.Offset(1, 0) = Target
                Target.Offset(1, 1) = Target
        End If: End If
    Application.EnableEvents = True
    End Sub
    ----------Post unito in automatico----------

    Copiato il codice sul tuo file.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  10. #10
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    sei eccezionale.....hai visto che codice mi usciva a me?....da maratona......quando hai voglia e tempo me lo commenti?....con sette righe hai fatto quello che io avrei fatto i 4 ore davanti al pc.....grazie ancora tutti questi lavoretti che sto facendo in gran parte sono merito tuo e di tanti altre eccezionali persone di questo forum.....Danilo

  11. #11

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    .......quando hai voglia e tempo me lo commenti?....
    Lo faccio subito.
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range) ' Imposto come evento Change
    Application.EnableEvents = False ' disattivo gli eventi evitando di entrare in un ciclo che genera Overflow
        If Not Intersect(Target, Range("C7:P28")) Is Nothing Then 'Il metodo Intersect serve a verificare se un oggetto range interseca un intervallo specificato; letteralmente "Se non si interseca (Target, Range("C7:P28") è niente allora .."
            If Target = "FERIE" Or Target = "RIP" Or Target = "P/R" Then ' se il range di riferimento (target) è uguale a "FERIE" o "RIP" o "P/R" allora 
                Target.Offset(0, 1) = Target ' la cella a destra è uguale a quella di riferimento 
                Target.Offset(1, 0) = Target ' la cella sotto è uguale a quella di riferimento 
                Target.Offset(1, 1) = Target ' la cella sotto a destra è  uguale a quella di riferimento 
        End If: End If
    Application.EnableEvents = True 'ripristino gli eventi prima disattivati
    End Sub
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  12. I seguenti utenti hanno dato un "Like"


  13. #12
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    grazie....infinite buonanotte

  14. #13

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Di nulla.
    Notte ... vado a dormire anch'io.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  15. #14
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    Ciao Ges.....sempre in merito al foglio di lavoro di questa discussione se rip o ferie o p/r lo inserisco dalla tendina funziona correttamente mentre se lo inserisco tramite la userform non va....l'inserimento tramite userform non dovrebbe comunque scatenare l' evento e lanciare la sub???
    File Allegati File Allegati

  16. #15
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: If e elseif

    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    Buonasera a tutti nel file che allego in C1 c è una tendina con tre voci "ferie" "rip" "p/r" ho fatto un codice affinché quando scrivo in c1 una di queste tre opzioni nelle celle adiacenti D1,D2,C2...prendono il valore di C1 ma funziona soltanto con ferie".....dove sbaglio?
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Range("C1") = "FERIE" Then
    Range([D1:D2], [C2]) = Range("c1")
    ElseIf ("C1") = "RIP" Then
    Range([D1:D2], [C2]) = Range("C1")
    ElseIf ("C1") = "P/R" Then
    Range([D1:D2], [C2]) = Range("C1")
    End If
    End Sub

    ma non funziona mettere in C2, D2 e D1: =C1 ?

  17. #16

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Ciao Danilo,
    non so perchè il tuo ultimo file non mi funziona, mi dice che non trova una libreria? Non vorrei che fosse un problema del mio excel per Mac, se qualcuno con windows vuole provare a scaricarlo e aprirlo mi potrebbe dare una conferma o smentita.
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  18. #17
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    813
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53

    Re: If e elseif

    Col mio 2010 64bit ho realizzato che non funziona il Calendario ma già si sa che è un'impresa gestire correttamente lavori fatti con versioni a 32bit su Office a 64bit.

  19. #18
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    ciao Ges sinceramente non saprei....ora lo riallego ....il fatto di avere le 4 celle piene in caso di rip ..(etc) inserendo con userform l ho accrucchiato con un if nel codice della userform....ma testando gli inserimenti mi sono reso conto di aver fatto un errore che non riesco a capire.....nel codice ho messo i valori solo per il primo nominativo (giallo) in pratica quando inserisco da userform IN1=C5 OUT1=D6 IN2=C6 OUT2=D6....(questo nel caso che si debbano riempire tutte e 4 le celle) ma se inserisco esempio un 21:00 /3:00 (registra) e poi un 14:00/21:00 (registra) mi cancella il 21:00/3:00 e ci mette 14:00/21:00 so che lo sbaglio sta nel wend/while ma non riesco a trovare una soluzione
    Codice: 
    Private Sub CommandButton1_Click()
    Select Case ComboBox1
            Case "MARIO STECCHI"
        Column = 3
        
        While Cells(5, Column) <> ""
            Column = Column + 1
        Wend
         Cells(5, Column) = TextBox1.Text
         Cells(5, Column + 1) = TextBox2.Text
         Cells(6, Column) = TextBox3.Text
         Cells(6, Column + 1) = TextBox4.Text
         
        If TextBox1 = "FERIE" Or TextBox1 = "RIP" Or TextBox1 = "P/R" Then
         Cells(5, Column) = TextBox1.Text
         Cells(5, Column) = TextBox1.Text
        End If
         
         End Select
        
         For i = 1 To 4
         Me.Controls("TextBox" & i).Value = ""
         Next
         TextBox1.SetFocus
    End Sub
    File Allegati File Allegati

  20. #19

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Danilo, nulla, forse hai degli Activex nel foglio che sono incompatibili con excel per Mac, non mi fa fare neanche delle prove.
    Guarda tu stesso https://youtu.be/oxoOdrP_fzQ
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  21. #20
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    ora sono in ufficio appena arrivo a casa modifico completamente il foglio in maniera che sia visibile(almeno credo)....e tolgo il superfluo per cercare di vedere cosa si può fare....il codice però è solo per il primo nominativo "mario stecchi"....cmq appena arrivo a casa ti posto un esempio (più leggero ...il problema è wile/whend..... devo trovare un altro modo)

  22. #21
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: If e elseif

    Ciao a tutti
    A me funziona tutto
    >>>wend/while ma non riesco a trovare una soluzione
    Basta mettere un'altra combobox con Lun,Mar,mer ecc ecc

    Se apro l'userform1 e metto solo un RIP in "IN 1"
    1) Premesso che Il tasto registra non dovrebbe funzionare, se la combobox1 fosse vuota
    2) Quel Column = Column + 1, ti porta a scrivere in colonna S se sono tutte piene
    3) Attualmente il codice appena esegue Cells(xy, Column) = TextBox1.Text, subito si attiva il Worksheet_Change che scrive correttamaente le 4 celle, dopo ritorna sul codice Sub CommandButton1_Click ed esegue Cells(xy, Column + 1) = TextBox2.Text
    che azzera/scrive tale cella ed automaticamente sballa tutto il progetto perchè interviene nuovamente il Worksheet_Change.
    Suggerimento aggiungi queste righe e trova altra soluzione per wend/while
    Codice: 
    Private Sub CommandButton1_Click()
    Application.EnableEvents = False
    If ComboBox1.Value = "" Then
    MsgBox " Nessun nome "
    Else
    Tuo codice
    tuo codice
         TextBox1.SetFocus
    End If
    Application.EnableEvents = True
    End Sub
    Ps il Private Sub Worksheet_Change(ByVal Target As Range)
    Non dovredde essere C5----> If Not Intersect(Target, Range("C5:P28")) Is Nothing Then

  23. #22
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    grazie raffaele....ora studio e provo a utilizzare i tuoi suggerimenti.....allego un file ridotto all 'osso .....i blocchi di celle colorate corrispondono ai 7 giorni della settimana C5= IN1 D5=OUT1 C6=IN2 D6=OUT2 ...etc ora inserendo dati dall userform se inserisco tutti quattro i campi il codice fa il suo lavoro e riempe le 4 celle ma se inserisco ad esempio un IN2 (20.00) e un OUT2 (1:00) lo inserisce nella riga 6 e se poi metto IN1 e OUT cancella i dati precedentemente inseriti sostituendoli con quelli per ultimi inseriti (giustamente perché trovando la cella vuota il codice a il suo lavoro)...allora che metodo devo usare per ottenere quello che voglio?
    File Allegati File Allegati

  24. #23
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    813
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53

    Re: If e elseif

    Non ho analizzato l'intero thread ma nell'ultimo file esempio che hai allegato se metti una condizione al riempimento delle celle non dovresti aver problemi di cancellazione dei dati inseriti in precedenza, così:
    Codice: 
         If Cells(5, column) = "" Then Cells(5, column) = TextBox1.Text
         If Cells(5, column + 1) = "" Then Cells(5, column + 1) = TextBox2.Text
         If Cells(6, column) = "" Then Cells(6, column) = TextBox3.Text
         If Cells(6, column + 1) = "" Then Cells(6, column + 1) = TextBox4.Text

  25. #24

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Un saluto a Rollis e Raffaele, che hanno partecipato al thread.
    Ohhh .. finalmente posso leggere il file allegato senza problemi.

    Guardando il file originale io utilizzerei a questo punto una soluzione alternativa che propongo di seguito:

    Questo codice per inserire il testo uguale nella combobox3,4,5 uguale alla combobox2
    Codice: 
    Private Sub ComboBox2_Change()
        If ComboBox2 = "RIP" Or ComboBox2 = "FERIE" Or ComboBox2 = "P/R" Then
            ComboBox3 = ComboBox2
            ComboBox4 = ComboBox2
            ComboBox5 = ComboBox2
        End If
    End Sub
    Questo codice per inserire i dati nel foglio
    Codice: 
    Private Sub CommandButton1_Click()
        For y = 6 To 15
            If ComboBox1 = Cells(y, 2) Then
                uCol = Cells(y, Cells.Columns.Count).End(xlToLeft).Column + 1
                    Cells(y, uCol) = ComboBox2
                    Cells(y, uCol).Offset(0, 1) = ComboBox3
                    Cells(y, uCol).Offset(1, 0) = ComboBox4
                    Cells(y, uCol).Offset(1, 1) = ComboBox5
            End If
        Next
    End Sub
    Questo codice per popolare le combobox
    Codice: 
    Private Sub UserForm_Initialize()
        For y = 28 To 32
            ComboBox1.AddItem Range("A" & y)
        Next
        For x = 18 To 25
            ComboBox2.AddItem Format(Cells(x, 1), "hh:mm")
            ComboBox3.AddItem Format(Cells(x, 2), "hh:mm")
            ComboBox4.AddItem Format(Cells(x, 3), "hh:mm")
            ComboBox5.AddItem Format(Cells(x, 4), "hh:mm")
        Next
    End Sub
    Ho adattato il file in base al progetto originario.

    Ho sostituto le textbox con le combobox popolate come da codice sopra.

    Le celle per popolare le combobox le ho posizionate provvisoriamente nello stesso foglio colorandole di grigio ma possono essere sistemate in qualsiasi altra parte in modalità nascosta.

    Allego file, dimmi Danilo che ne pensi.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  26. #25
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: If e elseif

    Per errore visualizzavo l'allegato del post6
    Comunque mi sembra valido anche per gli altri se aggiungi combobox1 e combobox2
    Visto l'allegato di ges, pensavo che desideravi scrivere in un giorno preciso. Forse ho capito male il tutto
    Codice modificato
    Codice: 
    Private Sub CommandButton1_Click()
    Application.EnableEvents = False
    If ComboBox1.Value = "" Or ComboBox2 = "" Then
        MsgBox "Nessun nome oppure nessun giorno scelto "
    Else
        Select Case ComboBox2
        Case "LUNEDI"
            Column = 3
        Case "MARTEDI"
            Column = 5
        Case "MERCOLEDI"
            Column = 7
        Case "GIOVEDI"
            Column = 9
        Case "VENERDI"
            Column = 11
        Case "SABATO"
            Column = 13
        Case "DOMENICA"
            Column = 15
        End Select
    Select Case ComboBox1
            Case "MARIO STECCHI"
         Cells(5, Column) = TextBox1.Text
         Cells(5, Column + 1) = TextBox2.Text
         Cells(6, Column) = TextBox3.Text
         Cells(6, Column + 1) = TextBox4.Text
          Case "STEFANO CEA"
         Cells(7, Column) = TextBox1.Text
         Cells(7, Column + 1) = TextBox2.Text
         Cells(8, Column) = TextBox3.Text
         Cells(8, Column + 1) = TextBox4.Text
          Case "ALESSANDRA NASTASE"
         Cells(9, Column) = TextBox1.Text
         Cells(9, Column + 1) = TextBox2.Text
         Cells(10, Column) = TextBox3.Text
         Cells(10, Column + 1) = TextBox4.Text
         Case "PAMELA PELOSINI"
         Cells(11, Column) = TextBox1.Text
         Cells(11, Column + 1) = TextBox2.Text
         Cells(12, Column) = TextBox3.Text
         Cells(12, Column + 1) = TextBox4.Text
         Case "STEFANO PINTI"
         Cells(13, Column) = TextBox1.Text
         Cells(13, Column + 1) = TextBox2.Text
         Cells(14, Column) = TextBox3.Text
         Cells(14, Column + 1) = TextBox4.Text
         Case "RAMONA NERVI"
         Cells(15, Column) = TextBox1.Text
         Cells(15, Column + 1) = TextBox2.Text
         Cells(16, Column) = TextBox3.Text
         Cells(16, Column + 1) = TextBox4.Text
          Case "RITA NASONI"
         Cells(17, Column) = TextBox1.Text
         Cells(17, Column + 1) = TextBox2.Text
         Cells(18, Column) = TextBox3.Text
         Cells(18, Column + 1) = TextBox4.Text
          Case "SIMONE SPUNTICCIA"
         Cells(23, Column) = TextBox1.Text
         Cells(23, Column + 1) = TextBox2.Text
         Cells(24, Column) = TextBox3.Text
         Cells(24, Column + 1) = TextBox4.Text
          Case "DANILO FIORINI"
         Cells(25, Column) = TextBox1.Text
         Cells(25, Column + 1) = TextBox2.Text
         Cells(26, Column) = TextBox3.Text
         Cells(26, Column + 1) = TextBox4.Text
          Case "VINCENZO ANNESE"
         Cells(27, Column) = TextBox1.Text
         Cells(27, Column + 1) = TextBox2.Text
         Cells(28, Column) = TextBox3.Text
         Cells(28, Column + 1) = TextBox4.Text
         End Select
         For i = 1 To 4
         Me.Controls("TextBox" & i).Value = ""
         Next
         TextBox1.SetFocus
    End If
    Application.EnableEvents = True
    End Sub
    Ps
    >>>cancella i dati precedentemente inseriti
    Naturale che lo faccia, oppure devi fare una condizione in ogni riga per NON farlo scrivere
    EX Cells(5, Column) = TextBox1.Text
    If Cells(5, Column) = "" Then Cells(5, Column) = TextBox1.Text
    File Allegati File Allegati
    Ultima modifica fatta da:Raffaele_53; 29/06/16 alle 02:56

  27. #26
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    ragazzi che dire.....grazie del vostro impegno e della vostra competenza che mettete a disposizione di chi come me si affaccia in questo mondo senza averlo mai studiato ma con tanta passione....(altrimenti non vi farei impazzire fino notte fonda)
    @raffele....ottimo lavoro e ottime spiegazioni.....
    @rollis grazie anche te sempre ottimi suggerimenti...già mi hai aiutato altre volte...
    @ges hai centrato come sempre l'obiettivo....

  28. #27
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    @GES...ho inserito il tuo codice nel file originale ma non riporta i dati....sulla base del file che hai postato ho ricostruito la struttura dello schema iniziale ho capito che il problema sono le colonne alla fine dove deve fare la somma delle ore ma io non riesco a modificare il tuo codice perché non conosco ancora il metodo che hai usato allego il file originale con il tuo codice inserito e quello postato da te su cui stavo ricostruendo il tutto.....
    File Allegati File Allegati

  29. #28
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: If e elseif

    Una domanda (già fatta)
    Tu hai bisogno di scrivere in un giorno della settimana preciso? Utile se per errore o variazione c'è già scritto altro?
    Hai provato il mio allegato, certo migliorabile.

  30. #29

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7132
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1299

    Re: If e elseif

    Ciao Danilo,
    il problema è l'ultima colonna piena che viene individuata dal codice e prende in considerazione le colonne alla fine.

    Vedendo il tuo nuovo file in cui ci sono i giorni della settimana però ho pensato di sfruttarli e fare questa modifica:

    Codice: 
    Private Sub CommandButton1_Click()
        For y = 6 To 29
        For x = 3 To 16
            If ComboBox1 = Cells(y, 2) And ComboBox6 = Cells(5, x) Then
                    Cells(y, x) = ComboBox2
                    Cells(y, x).Offset(0, 1) = ComboBox3
                    Cells(y, x).Offset(1, 0) = ComboBox4
                    Cells(y, x).Offset(1, 1) = ComboBox5
            End If
        Next: Next
         For i = 2 To 5
         Me.Controls("ComboBox" & i).Value = ""
         Next
         ComboBox2.SetFocus
    End Sub
    In pratica nella Userform ho previsto che si possa scegliere il giorno della settimana in cui inserire i dati.
    Dimmi che te ne pare.

    P.S.- Ho potuto lavorare solo su uno dei due file da te allegati (cioè questo) perchè l'altro - come già sai - il Mac non me lo fa leggere.
    File Allegati File Allegati
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  31. #30
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1170
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    571

    Re: If e elseif

    ciao Ges avrei preferito l inserimento sequenziale(evitando il passaggio di inserire il giorno) ma è perfetto anche cosi però ho notato un problema:se inserisco gli orari manualmente la formula in Q (che fa la somma) funziona se inserisco da userform non va'....

    ----------Post unito in automatico----------

    Ciao Raffaele ero andato in fondo alla discussione e non ti avevo letto quello che deve fare il foglio è semplicemente
    un inserimento di turni per tutta la settimana per cui l'idea iniziale che avevo avuto era un ciclo wend...ma ho problemi quando incontra celle vuote la tua soluzione ti avevo gia detto che è ottima e utilizzabile fin da subito....

Discussioni Simili

  1. Risposte: 23
    Ultimo Messaggio: 10/07/16, 22:10

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
  •