Operazione da automatizzare
Hai un problema con Excel? 
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
Vuoi Approfondire?