Consigli VGA e Form



  • Consigli VGA e Form
    di stefans992 data: 20/04/2016 12:17:40

    Buongiorno ragazzi ho bisogno di creare un file in base ad alcune esigenze che adesso andrò ad esporre, ma siccome sono ormai più di 8 anni che non apro VGA volevo qualche dritta su come gestire al meglio il mio lavoro.
    Il mio lavoro sarà impostato su 2 fogli di lavoro:
    -nel primo dovrò inserire una lista di persone con i dati personali che a me interessano e quindi avevo pensato di creare un form con tutti i textbox corrispondenti e andare a inserire una sotto l'altra le persone con i relativi dati
    -nel secondo foglio invece le cose si complicano:
    1 vorrei che la compilazione anche stavolta avenisse tramite form
    2 -la prima scelta nel secondo form vorrei che fosse presa tra tutti i nomi inseriti nella prima colonna del primo foglio(se possibile sennò posso inserire manualmente)
    -nel secondo form devo anche inserire delle date e delle ore e farci delle operazioni e andare a scrivere i risultati in altre celle quindi consigli sulle variabili data e ora presi direttamente dalle text box ovviamente
    -alla fine di ogni inserimento mi piacerebbe che riordinasse le righe della pagina in ordine cronologico in base alla data scritta suddetta.

    spero di non chiedere la luna. Ovviamente nn cerco qualcuno che mi faccia il lavoro ma solo delle dritte. Grazie mille in anticipo
    p.s. sono nuovo nel forum spero di aver scritto nella sezione giusta



  • di Cucù data: 20/04/2016 13:09:37

    Non chiedi la luna, ma ti conviene postare un file su cui lavorare altrimenti specifica che tipo di dritte hai bisgno... se usavi vba 8 anni fa non dovrebbe esserti difficile... Programmare è come andare in bicicletta ... una volta imparato poi non ci si dimentica più_
    Un saluto a te e alla community tutta...
    Cucù



  • di stefans992 data: 20/04/2016 13:44:41

    Allora il primo form è formato sostanzialmente da text box dove inserire dei dati di studenti e serve per creare una pagina che mi faccia tipo da database dei miei studenti. quindi ho inserito un bottone che al click inserisca nella nuova riga i dati inseriti(trovi cosa accade al click sotto).
    Mentre il problema maggiore mi si pone quando vado a fare il secondo form.
    La prima cosa che chiedo è se esiste una funzione che mi faccia tipo come da filtro della prima colonna(dove sono appunto inseriti i nomi degi studenti) e mi permetta di selezionarne uno e di inserire invece quello studente in una nuova riga del socondo foglio. Inoltre nelle altre texbox voglio inserire la data e l'ora di inizio e fine di un appuntamento e la tariffa oraria e fare in modo che cliccando ok succedano le seguenti cose:
    1 mi venga scritto in una colonna apposita(ma sulla stessa riga) la differenza in ore tra la fine e l'inizio della lezione
    2 mi venga fatto il prodotto tra tariffa oraria e la differenza in ore e scritto nell'apposita cella
    3 vengano riordinati tutti gli appuntamenti in ordine prima di data e poi di ora.

    Quindi mi si creano i seguenti problemi:
    1 è possibile creare nel form un menù a tendina che va a prendere i nomi degli studenti segnati nel primo foglio?
    2 Come gestisco separatamente le informazioni delle variabili Date che contengono sia data che ora?
    3 Come faccio a ordinare come voglio i miei dati?

    Grazie mille in anticipo per l'aiuto
     
    Private Sub OK_Click()
    Sheets(1).Select
    Dim iRow As Integer
    iRow = 2
    While Cells(iRow, 1).Value <> ""
    iRow = iRow + 1
    Wend
    
    Cells(iRow, 1) = STUDENTE
    Cells(iRow, 2) = SCUOLA
    Cells(iRow, 3) = CLASSE
    Cells(iRow, 4) = SEZIONE
    Cells(iRow, 5) = NUMERO
    Cells(iRow, 6) = EMAIL
    
    
    End Sub
    



  • di alfrimpa data: 20/04/2016 15:40:51

    Ciao Stefans

    Come richiesto da Cucu (che saluto) devi allegare un tuo file di esempio su cui poter lavorare.

    Alfredo





  • di stefans992 data: 20/04/2016 15:42:41

    Fatto! è ancora molto scabro perchè avevo appena iniziato a lavorarci



  • di alfrimpa data: 20/04/2016 16:06:40

    Ciao Stefans

    Onestamente dal tuo file non ho capito molto perché non vedo congruenza tra le intestazioni dei fogli ed i campi inseriti nelle userform; vovresti specificare per le due form qual è il foglio di riferimento.

    Comunque con il codice che vedi sotto all'attivazione di una userform la combobox ivi presente si alimenta dei nominativi presenti da A2 sino ad An.

    Cerca di spiegare meglio.

    Alfredo
     
    Private Sub UserForm_Initialize()
    Dim i As Integer
    Dim ur As Long
    ur = Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To ur
        Me.ComboBox1.AddItem Range("a" & i).Value
    Next i
    End Sub
    






  • di stefans992 data: 20/04/2016 16:37:23

    Allora ci sono 2 Form:
    -quello chiamato NuovoStudente va bene così com'è mi serve solo come pagina di riassunto di tutti gli studenti con i loro dati.
    -I problemi mi sorgono con quello chiamato NuovaLezione. Come puoi vedere accanto a nome ho inserito la combobox con il comando che mi hai dato tu. Adesso prendo i file delle varie textbox e li inserisco nelle caselle
    dove mi servono(come puoi vedere) Adesso iniziano i miei problemi veri, ovvero fare le operazioni volute con i dati in ingresso che sono le seguenti:
    nella colonna TOTALE ORE voglio che venga rappresenzata la differenza in ore delle colonne ora INIZIO e ORA FINE( esempio se ora inizio è 9:00 e ora fine è 10:30 vorrei che in TOTALE ORE venga 1,5) quindi ho problema a fargli capire che i valori in ingresso sono ore e quello in uscita è un numero.
    Una volta fatto ciò vorrei che una volta inserito il nuovo appuntamento me lo vada a posizionare nella riga giusta nel senso che riodini tutta la pagina partendo dalla data e ora meno recenti alle più recenti(e qui non so prorio da che parte iniziare).

    Una volta completati i due form, andrò a scrivere 2 macro, rispettivamente all'attivazione del primo form o del secondo , che andrò a collegare a un bottone ciascuna da premere se dovessi aggiungere un nuovo studente o una nuova lezione.

    Spero che adesso il progetto completo si capisca meglio



  • di stefans992 data: 21/04/2016 10:56:43

    Allora spulciando tra i miei ricordi ho trovato il comando Format. Quindi con i seguenti comandi dovrei risolvere il fatto di fargli riconoscere il formato ora e data come voglio. Rimane quindi il problema di riordinare tutti gli appuntantamenti.
     
    Format(DATA,"gg/mm")
    Format(ORAINIZIO, "Hh:Nn")