La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
buongiorno a tutti!
premetto che non so nulla di VBA ma vi chiedo aiuto per migliorare il modello per la gestione del magazzino già presente in excel, ho preparato un file di esempio che allego, questo contiene già dei pulsanti in vba e quello che vorrei fare è implementare un'azione al pulsante "cancella distinta" nel foglio "Distinta prelievo inventario", in questo momento mi resetta la tabella, io vorrei che oltre quello nel foglio "Elenco inventario magazzino" mi copiasse il valore della colonna evidenziata in giallo "qtà rimanente" nella colonna evidenziata in rosso "qtà disponibile" prima che questo valore venga resettato, provo a riassumere meglio le azioni nell'ordine in cui devono avvenire:
1. Nel foglio "Elenco inventario magazzino" copiare il valore della colonna "QTÀ RIMANENTE"
2. Nel foglio "Distinta prelievo magazzino" reset della tabella (azione corrente)
3. Nel foglio "Elenco inventario magazzino" incollare il valore copiato al punto 1 nella colonna "QTÀ DISPONIBILE"
ringrazio in anticipo per l'aiuto
Buongiorno naitsirc1979.
In Vba esiste l'istruzione
Range(Cells(1, 1), Cells(LR, LC)).Copy Destination:=Sheets(DestSht).Range("A1")
(DestSht, LR = LastRow, LC = LastColumn ricavate con altre istruzioni ma non è questo l'importante).
In pratica legge un range e lo copia pari pari nel foglio/dalla cella impostati in Destination:=
Fatto questo potresti procedere con la cancellazione dei dati che ti garba cancellare.
Senza macro non saprei, mi pare decisamente ardua.
ciao e grazie per la risposta, devo provare ma ti chiedo anche se puoi dirmi come integrarla con la macro che già ho, perché farne una nuova solo con quella funzione potrei anche farcela ma aggiungere il tuo codice ad una esistente mi viene più difficile
Ciao emme Ti ringrazio sin da ora per il tuo aiuto anche se a dire il vero lo capita poco.
Ma La Mia Domanda Era Come Ricavare un dato da una Pagina Web con questo tipo di link.
Detto questo : Nel frattempo ho continuato a lavorarci un pochino su' e sono riuscito a ricavare tutti i dati che mi servirebbero.
Il problema però ora e che : Visto che questi dati vengono estratti dalla pagina Web in formato Tabellare.
Devo capire come Trasportare nelle dovute celle solo le parti da me Interessate ; Eliminando poi tutto il resto.
Tutto qui.
Ma se ti può fare piacere una volta terminato il tutto .
Te ne porrò una Copia Finita.
Per il momenti ti ringrazio nuovamente ; Ti Saluto da A.Maurizop
Buongiorno Maurizio. Scusa, ma non mi pare di aver dato risposta alla tua richiesta, argomento che frequento poco. Magari darò un'occhiata appena avrò un attimo di tempo. Inoltre hai postato in un post relativo ad altra domanda. Per cui cancello il tuo post da questo topic.
@emme Ciao
Devi scusarmi per la mia gaf
Ma ero con il mio smartphone e non al mio pc
Pertanto in quel momento li ero limitato nella visuale di ciò che stavo leggendo
E pensavo che avessi risposto a me .
Però nulla di grave ; Non c'é problema
Anche perchè tolto un piccolo problema che dovrò trovare il tempo per modificare il tutto
Forse sono riuscito a risolvere il mio Quesito da me.
Ciao e grazie di tutto
Saluti da Maurizio
Buongiorno.
Non conosco il file di cui parli e "FILE DI ESEMPIO" non è allegato.
Innanzitutto devi individuare il nome della Sub richiamata dal pulsante sul foglio (destro sul pulsante, Assegna macro, leggi il nome macro).
Alt+F11 per aprire l'editor VBA Sezione Moduli (di solito a sx del monitor) individua la Sub corrispondente al nome.
A questo punto il meno è fatto. Bisogna individuare esattamente il punto in cui inserire le nuove istruzioni che sono relativamente semplici:
Definiamo le variabili e per comodità attribuiamo a variabile String
il nome del foglio destinazione:
Dim DestSht as String, LC as Long, LR as Long DestSht = "Elenco inventario magazzino"
Individuiamo prima (Es.: 1) e ultima riga (LR) da copiare e NUMERO colonna
(che essendo fissa, mi pare, definiremo a es. = 7)
With ActiveSheet LR = .Cells(.Rows.Count, 7).End(xlUp).Row End With
Eseguiamo l'istruzione
Range(Cells(1, 7), Cells(LR, 7)).Copy Destination:=Sheets(DestSht).Cells(1, 13)
questo copia/incolla da riga1/rigaLR colonna7 foglio origine a riga1/rigaLR colonna 13 foglio destinazione
Cancelliamo i dati da foglio origine
Range(Cells(1, 7), Cells(LR, 7)).ClearContents
quindi: ripuliamo la variabile che non ci servono più
DestSht = Empty LC = Empty LR = Empty
Fine del compito, per quanto mi è dato di capire, senza file di esempio.
grazie per la risposta, scusate, invece di allegare il file ho l'ho inserito come link, se cliccate sulla scritta FILE DI ESEMPIO dovreste riuscire a scaricarlo, oppure adesso lo allego qui, provo intanto a seguire le tue istruzioni
Ho visto il file e mi sembra più chiaro. La routine che ti ho dato non va bene in quanto copia i dati da un foglio all'altro. Tu invece vuoi copiare i dati da una colonna all'altra dello stesso foglio e quindi molto più semplice.
Ma per dirla tutta, non capisco come la quantità rimanente (quantità fisica in magazzino) possa sostituire la quantità disponibile (quantità fisica in magazzino + impegni acquisto - impegni vendita = disponibile, materiale del quale si potrà fare l'uso che si vuole).
Se ha un senso, Alt+F11 e inserisci questa routine fra i due punti > nel Modulo "BasClearPickLIst", Sub "Private Sub ClearPickList"
> If lngResponse = vbYes Then
Dim DestSht As String, LR As Long
DestSht = "Elenco inventario magazzino"
With Sheets(DestSht)
LR = .Cells(.Rows.Count, 8).End(xlUp).Row
Range(.Cells(5, 8), .Cells(LR, 8)).Copy
.Cells(5, 5).PasteSpecial xlPasteValues
End With
DestSht = Empty
> Dim sht As Worksheet
Salva i dati prima di avviare la procedura.
Ma attenzione a quello che fai: ci sono formule che agiscono proprio su quei campi.
Le richieste sono le più disparate e ognuno sa (dovrebbe sapere) cosa sta chiedendo e modificando. E ancor di più se si tratta di programmi sviluppati da terzi.
Sia ben chiaro che non mi prendo alcuna responsabilità per dati errati e conseguente crollo dell'economia mondiale.
no dai al massimo mi mancherà qualche pannello a magazzino ?
comunque per spiegare quello che fa il file da un lato (foglio inventario) c’è la disponibilità attuale, nell’altro chi preleva il materiale lo compila e la rimanenza viene scritta nella cella corrispondente.
dopo la compilazione la tabella deve essere azzerata, e la rimanenza deve diventare la disponibilità per la prossima volta che si usa il file.
non so se mi sono spiegato bene e magari esiste un metodo più semplice, le formule le ho scritte io
intanto grazie spero di aver tempo a breve di fare le prove
Ciao a tutti, con il codice fornito da @emme ho raggiunto il mio scopo, allego il file finale dove ho corretto anche qualche formula se può servire come spunto a qualcuno, sicuramente ci saranno altri errori quindi prima di usarlo verificate bene che il risultato sia quello atteso per voi
intanto grazie