Foglio per controllo mezzi



  • Foglio per controllo mezzi
    di Andrea (utente non iscritto) data: 17/06/2014 11:02:39

    Buongiorno ragazzi,
    ho bisogno di una grossa mano Premetto anche che di VBA non ci capisco un tubo
    Giornalmente inserisco i chilometri iniziali e finali e i litri di gasolio di tutti i mezzi dell'azienda presso la quale sto facendo un tirocinio.
    I mezzi sono una trentina e ho creato 30 fogli di lavoro, ognuno chiamato con la targa del mezzo.
    La mia idea era di creare un altro foglio dove, inserendo il giorno e il mese mi inserisca i data relativi ai km e lt direttamente nel foglio corretto.
    Questo per evitare di dovermi spostare sempre da un foglio all'altro e cercare il rigo giusto.
    Allego un esempio per essere più chiaro.
    Grazie in anticipo a tutti!



  • di lepat (utente non iscritto) data: 17/06/2014 12:28:30

    sarebbe meglio mettere 30 iperlink che ti permettono di selezionare il foglio giusto ed inserire i dati direttamente



  • di Andrea (utente non iscritto) data: 17/06/2014 12:44:50

    Si è vero, onestamente ho già provato questa soluzione ma non ho trovato grossi vantaggi.
    La comodità di quello che chiedevo io è che nel foglio generale di inserimento dei dati, avrei riprodotto esattamente il foglio cartaceo che mi viene consegnato riducendo in questo modo i tempi di inserimento.
    Presumo che la mia richiesta sia troppo complicata da soddisfare per questo forse è meglio se lascio stare
    Grazie comunque



  • di lepat (utente non iscritto) data: 18/06/2014 10:41:12

    prova questa macro, da quello che ho capito inserisci i dati solo nelle righe 3 e 4, nel tuo esempio ne hai messe diverse, digita il numero del mese e non il nome
     
    Sub a()
    With Sheets(1)
      nomefoglio = .Range("A4")
      kmi = .Range("B4")
      kmf = .Range("C4")
      lt = .Range("d4")
      nomefoglio = .Range("A4")
      gg = .Range("F3")
      mm = .Range("G3")
    End With
    Sheets(nomefoglio).Select
    col = mm * 5 - 2
    riga = gg + 4
    Cells(riga, col) = kmi
    Cells(riga, col + 1) = kmf
    Cells(riga, col + 3) = lt
    End Sub
    



  • di Andrea (utente non iscritto) data: 18/06/2014 11:59:51

    Ciao, innanzitutto grazie,
    ho provato ad inserire il codice che mi hai postato e mi da l'errore run time'9' indice non incluso nell'intervallo.
    Credo che il problema stia in quel Sheets(nomefoglio).Select
    al posto di nomefoglio cosa devo scriverci? il nome del foglio dove inserisco i dati?



  • di Andrea (utente non iscritto) data: 18/06/2014 12:04:41

    Perchè inserendo il nome del foglio in cui inserisco i dati ("foglio1") facendo il debug mi evidenzia la riga col = mm * 5 - 2 con il messaggio "tipo non corrispondente"



  • di lepat (utente non iscritto) data: 18/06/2014 13:32:16

    in A4 devi inserire il nome del foglio corretto e non con qualche spazio in più



  • di Andrea (utente non iscritto) data: 18/06/2014 16:28:41

    Ho corretto il nome, non mi ero accorto di aver inserito uno spazio in più.
    Però nell'esecuzione della macro mi evidenzia in giallo la scritta col = mm * 5 - 2 dandomi come errore tipo non corrispondente



  • di Andrea (utente non iscritto) data: 18/06/2014 16:42:18

    Sono riuscito a capire dove sbagliavo
    L'unico dubbio che mi rimane è che ora la macro mi ricopia solo i dati relativi alla prima targa, come posso fare per estendere questa funzione anche alle altre AA 001 AA - AA 002 AA ecc?



  • di lepat (utente non iscritto) data: 18/06/2014 17:45:42

    prova così
     
    Sub a()
    With Sheets(1)
      LR = .Cells(.Rows.Count, "A").End(xlUp).Row
      gg = .Range("F3")
      mm = .Range("G3")
      For r = 4 To LR
        nomefoglio = .Range("A" & r)
        kmi = .Range("B" & r)
        kmf = .Range("C" & r)
        lt = .Range("d" & r)
        Set sh = Sheets(nomefoglio)
        col = mm * 5 - 2
        riga = gg + 4
        sh.Cells(riga, col) = kmi
        sh.Cells(riga, col + 1) = kmf
        sh.Cells(riga, col + 3) = lt
      Next
    End With
    End Sub
    



  • di Andrea (utente non iscritto) data: 18/06/2014 18:28:33

    Ho incollato l'ultimo codice che mi hai dato ma quando eseguo la macro sembra che non faccia niente. Non mi riporta i valori e non mi da nessun messaggio di errore.
    Ho risolto per il momento modificando il primo codice per tutte e 30 le celle e va fin troppo bene
    L'ultima cosa che vorrei sapere è se è possibile creare una macro che faccia il procedimento inverso, come se volessi rivedere ad esempio i dati che ho inserito il 1 maggio.
    Spero di nn chiedere troppo, se ti è di troppo fastidio lascia stare mi hai aiutato già un sacco così!
    Grazie mille lepat!



  • di lepat (utente non iscritto) data: 18/06/2014 18:47:57

    quando qualcosa non funziona allega il file modificato specificando il nome, come faccio a sapere quali modifiche hai fatto tu ?