Operazione da automatizzare



  • Operazione da automatizzare
    di G.matteo (utente non iscritto) data: 28/08/2009

    Ciao a tutti,
    cerco di essere breve e preciso:
    ho bisogno due comandi automatici/pulsanti che ogni volta che li premo compiano queste operazioni,la prima:
    i4=h4-p5
    fino a qui tutto è semplice io però ho bisogno che se esgua anche in altre righe quindi in realtà qello di cui ho bisogno è che posizionandomi sulla cella interessata schiaccio il pulsante e deve esguire:
    il valore della cella su cui sono posizionato è uguale a quello della cella di fianco a sinistra - la il valore della cella pozionata sette colonne a destre e una riga sotto

    se è possibile fare il primo comando poi vi espongo anche il secondo

    grz in anticipo,spero di aver esposto in maniera compressibile il mio problema

    ciao a tutti






  • di Franco_44 (utente non iscritto) data: 28/08/2009

    Ciao matteo
    prova così ti crei un pulsante e sul codice metti:


    fai sapere se va bene



     
    ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[7]"
    
    
    


  • Ok
    di G.matteo (utente non iscritto) data: 28/08/2009

    Perfetto!
    grazie franco,così funziona perfettamente,oggi però lavorandoci su ho notato che magari si potrebbe modificare ancora un pochino,nel senso che dovrei aggiungere 2 fasi:
    inserisca una nuova riga e la data del giorno corrente ricapitolando

    sono posizionato in una qualsiasi cella,sciaccio il mio pulsante e...
    viene inserita una nuova riga sotto la cella dove sono posizionato,
    tutto quello che già fa nel codice già creato da te,
    inserisce la data del giorno corrente nella cella posizionata nove colonne a destra e una riga sotto

    dice che si può fare?
    grz
    ciao



  • di Franco_44 (utente non iscritto) data: 29/08/2009

    Prova a modificare il codice che ti avevo postato con questo
     
    ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[7]"
        ActiveCell.Offset(1, 9).Select
        ActiveCell.FormulaR1C1 = "=TODAY()"


  • Palo!
    di G.matteo (utente non iscritto) data: 29/08/2009

    Ciao franco,
    prima di tutto ancora grazie.
    quasi,funziona tutto tranne l'inserimento di una nuova riga



  • di Franco_44 (utente non iscritto) data: 29/08/2009

    Scusa matteo
    ma non è chiaro ciò che vuoi, perché come dici tu se io aggiungo una riga sotto alla cella attiva il dato presente 7 colonne a dx e una riga sotto, che devo sottrarre dal valore presente nella cella accanto a quella attiva, mi si sposta in basso e non lo posso più sottrarre; quindi sarebbe meglio tu postassi un esempio mettendo nelle varie celle i dati come sono in origine e segnalare le celle che vorresti venissero riempite e che dati ci devono andare
    ciao


  • File
    di G,matto (utente non iscritto) data: 29/08/2009

    Franco,
    ho creato una specie di file in quanto l'originale è molto più complicato e in questo momento non è su questo pc ma in uffico.

    colonna a ho inventato dei codici articolo
    colonna b quantità in ingresso
    colonna c quantità attuale
    colonne defghi hanno dati che al momento non interessano
    colonna j inserisco gli aricoli scaricati
    colonna k il cliente
    colonna l la data dello scarico

    ora ad esempio ho inserito una riga sotto l'aricolo che devo movimentare,mi sono posizionato sulla cella c2 e ho fatto eseguire il tuo codice poi sono andato in j3 e ho insirito la quantità da scaricare.

    quindi mettiamo che devo eseguire uno scarico all'articolo in a4:
    inserisco un riga nuova sotto l'aticolo mi posiziono in c4 lancio il codice e faccio scrivo la quantità da scaricare in j5

    ciao



  • di Franco_44 (utente non iscritto) data: 29/08/2009

    Ciao matteo
    purtroppo il file che mi hai inviato non contiene il file excel per vedere com’è strutturato, ma contiene dei file con estensione xml diversi da quella di excel (xls). quindi ti invio un file impostato come hai detto tu nel quale prova ad indicare come devono venir fuori dati inseriti segnalando le apposite celle e tenendo conto ce se lanci la macro tramite pulsante la quantità da scaricare deve essere già inserita altrimenti diventa tutto molto più complicato far interrompere l’esecuzione della stessa per inserire il dato in col j. una domanda perchè (ed è obbligatorio?) la quantità da scaricare deve essere nella riga sotto a quella relativa al codice? non può stare sulla stessa riga? inoltre per gli esempi usa sempre gli stessi riferimenti altrimenti non si capisce più niente: ( nel 1° esempio) facevi riferimento alle col h-i-p; nel (2° esempio) fai riferimento alle col b-c-j
    se poi hai il file formato excel prova a ripostarlo
    un saluto


  • Forse forse
    di G.matteo (utente non iscritto) data: 29/08/2009

    Franco,
    facendo dalle registrazione di macro,guardando il codice creato da te e pasticciando un pò credo di aver trovato la soluzione
    lunedì provo e vedere se funziona

    grazie per il tempo che hai dedicato ad aiutarmi
     
    ActiveCell(2).EntireRow.Insert
        ActiveCell.FormulaR1C1 = "=RC[-1]-R[1]C[7]"
        ActiveCell.Offset(1, 9).Select
        ActiveCell.FormulaR1C1 = "=TODAY()"
        ActiveCell.Offset(0, -2).Select



  • di G.matteo (utente non iscritto) data: 29/08/2009

    Abbiamo scritto in contemporanea,si capisce il codice che ho mandato?


  • Risposte
    di G.matteo (utente non iscritto) data: 29/08/2009

    Rispondo comunque al tuo post:
    domanda:
    "tenendo conto ce se lanci la macro tramite pulsante la quantità da scaricare deve essere già inserita altrimenti diventa tutto molto più complicato far interrompere l’esecuzione della stessa per inserire il dato in col j."
    risposta:
    alla fine dell'operazione faccio rimanere attiva la cella in j così basta scrivere la quantità

    domanda:
    perchè (ed è obbligatorio?) la quantità da scaricare deve essere nella riga sotto a quella relativa al codice? non può stare sulla stessa riga?
    risposta:
    simplicemente perchè alcune colonne ad esempio la regione sociale nella riga codice evidenzia il fornitore,nella riga di scarico invece il cliente ecc...

    domanda:
    per gli esempi usa sempre gli stessi riferimenti altrimenti non si capisce più niente: ( nel 1° esempio) facevi riferimento alle col h-i-p; nel (2° esempio) fai riferimento alle col b-c-j
    risposta:
    hai perfettamente ragione, il fatto è che nel secondo esempio non avevo il file ufficiale perchè nel pc in ufficio,ho improvvisato al momento,quindi non l'ho ricostruito alla lettera

    ciao e buon fine settimana



  • di Franco_44 (utente non iscritto) data: 29/08/2009

    Ciao matteo tu hi scritto
    "alla fine dell'operazione faccio rimanere attiva la cella in j così basta scrivere la quantità"
    risposta: ma la macro sottrae questa quantità dal valore in colonna b e se non la scrivi prima cosa sottrae?

    "simplicemente perchè alcune colonne ad esempio la regione sociale nella riga codice evidenzia il fornitore,nella riga di scarico invece il cliente ecc..."
    risposta: se puoi organizzarti il foglio mettendo tutti i dati relativi sulla stessa riga, ti tornerà tutto più semplice e comodo

    ciao e buon fine settimana anche a te



  • di Franco_44 (utente non iscritto) data: 29/08/2009

    Ciao
    ho provato la tua macro e in effetti funziona lo stesso scrivendo prima, in colonna c, il valore presente in colonna b, e poi messo il valore in colonna j in uscita lo sottrae, quindi buon lavoro


  • Risposte
    di G.matteo (utente non iscritto) data: 30/08/2009

    Ciao franco,
    o letto solo ora i tuoi ultimi 2 messaggi,mi fa piacere la tua conferma del codice (domani lo metto subito nel file in ufficio).

    per quel che riguarda lo mettere tutto nella stessa riga,concordo con te,il fatto è che questo file l'ho ereditato dal mio predecessore,di conseguenza ho deciso per il momento di fare solo dei ritocchi senza stravolgerlo, pensavo di utilizzarlo fino a fine anno,ovvero fino al prossimo inventario.
    detto questo ci sono comunque altri problemi,ci sono ad esempio parecchi articoli con più rige di scarico a seconda degli ordini,quindi al momento non ho ancora trovato una soluzione...

    ciao e grazie ancora per il tuo fondamentale aiuto