accodamento dati



  • accodamento dati
    di almanegrita (utente non iscritto) data: 08/03/2017 08:32:49

    buongiorno a tutti voi.
    ho un problema in excel che vi spiego.
    Apro sempre un file ogni giorno di nome 5388828408017233.txt dove ci sono degli ordini che bisogna evadere.
    praticamente ogni giorno il file in questione si popola ed aumenta sempre di piu con nuovi valori.
    Io importo ogni giorno questo file con gli ordini degli ultimi 60 giorni, ma essendo generato ogni giorno dal sistema tra qualche mese perdero gli ordini ed i riferimenti dei clienti di oggi domani etc...
    Volevo sapere se esisteva un modo di leggere il file, diciamo in maniera incrementale, cioè, aggiungendo al foglio excel in questione con gli ordini gia inseriti, gli altri ordini processati inserendoli sempre in coda a partire dall'ultimo presente.
    In definitiva il sistema vede l'ultima riga popolata,e accoda le altre righe di ordine
    Praticamente cosi mi creo uno storico Ordini che ogni giorno va ad aumentare sempre di piu.
    VI allego i file cosi mi aiutate...
    grazie mille.



  • di Marius44 data: 08/03/2017 11:02:46

    Ciao
    nel file che hai allegato non c'è alcun tuo tentativo. La cosa è fattibilissima con VBA. Come stai a conoscenza di questo prodotto?

    Comunque quello che devi fare è dire ad Excel di individuare l'ultima riga piena e accodare i nuovi ordini dalla riga successiva. Per far individuare l'ultima riga piena di un foglio uno dei codici possibili è questo:

    uRiga = Sheets("NomeFoglio").cells(Rows.count, 1).End(xlUp).Row

    dove il numero 1 sta ad indicare la prima colonna del foglio.

    Dai, fai qualche prova. Sembra difficile ma non lo è affatto.
    Ciao,
    Mario


  • accodamento dati
    di almanegrita (utente non iscritto) data: 09/03/2017 07:17:33

    ha...sto messo male con vba...
    avevo anche provato con importazione dati ma niente sovrascrive sempre.


  • accodamento dati
    di almanegrita (utente non iscritto) data: 09/03/2017 07:37:40

    SU QUESTO FORUM HO TROvato una roba simile.....
    solo che io avrei la necessita anche difare un controllo dell'esistenza gia dello stesso ordine sulla prima colonna....
    cioè accoda i nuovi ordini che non ci siano gia nel foglio.
    Grazie mille a tutti
     
    Sub accoda()
    
    Sheets("torino").Select
    Range("A2:f100").Select
    Selection.Copy
    Sheets("riepilogo totale").Select
    Dim iRwt As Integer 'iniziamo il ciclo per la ricerca della prima cella vuota, a partire dalla
    iRwt = 2 'riga due
    While Cells(iRwt, 1).Value <> "" 'fino a che la cella riga iRwt, colonna 1 è occupata
    iRwt = iRwt + 1 'si scala di riga incrementando di 1 il numero di riga
    Wend 'quando si trova una cella libera
    Cells(iRwt, 1).Select 'la selezioniamo ed incolliamo ciò che è stato copiato
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    
    
    
    End Sub



  • di Marius44 data: 09/03/2017 09:31:00

    Ciao
    ma perchè usare tutta quella tiritera quando il codice che ti ho suggerito io fa la stessa cosa.
    Se hai la cella A10 con un valore, il mio (chiamiamolo così) codice e quella macro ENTRAMBE una cella, con una differenza sostanziale:
    il mio codice ti segnala l'ULTIMA cella PIENA
    la macro ti segnala la PRIMA cella vuota.

    Ovvio che tanto dipende da cosa vuoi fare esattamente; infatti se nel mio codice aggiungi alla fine +1, ENTRAMBI (codice e macro) segnaleranno A11

    Ciao,
    Mario