calcora un progressivo in base alle righe presenti in un foglio

Ciao!
problema nuovo....

Importo in  un foglio excel dei dati da un file di testo.
Ciò di cui avrei bisogno è questo: una routine che calcola quante righe sono presenti nel foglio excel (che cambia ad ogni foglio), aggiunge una colonna e mette per ogni riga un progressivo, ricordandosi però l'ultimo numero progressivo assegnato nell'elaborazione precedente.

Facciamo un esempio.
Prima volta che lancio la routine:
foglio txt con 3 righe - progressivo iniziale 0 - aggiungo colonna B con cella b1=1; cella b2=2 cella b3=3.
Salvo e chiudo.
Dopo 2 giorni (o dopo 3 ore) rielaboro un altro flusso:
foglio txt con 2 righe - progressivo iniziale 3 - aggiungo colonna B con cella b1=4; cella b2=5. 
Salvo e chiudo.
Ovviamente il foglio excel che apro è sempre lo stesso, per cui i dati salvati nella prima elaborazione vengono cancellati prima di importare quelli della seconda elaborazione.

Se po' fffa' ????

PS: si accettano solo risposte positive ;-)

Lucia


 

Informazioni domanda


Ultimo aggiornamento febbraio 27, 2018 Visualizzazioni 176 Si applica a:
Risposta
ah :-(
io ho appena risolto così...

                RigaLetta = objTextFile.Readline
                ImpServ = Trim(Mid$(RigaLetta, 1, 4))
                Ente = Trim(Mid$(RigaLetta, 6, 5))
                DataOraChiamata = Trim(Mid$(RigaLetta, 12, 19))
                Operatore = Trim(Mid$(RigaLetta, 32, 24))
                Verso = Trim(Mid$(RigaLetta, 57, 3))
                Esito = Trim(Mid$(RigaLetta, 61, 100))
                Status = Trim(Mid$(RigaLetta, 162, 100))
                NumeroDocumento = Trim(Mid$(RigaLetta, 263, 20))
                CodiceFiscale = Trim(Mid$(RigaLetta, 284, 16))
                Nominativo = Trim(Mid$(RigaLetta, 301, 50))
                Riferimento = Trim(Mid$(RigaLetta, 352, 50))
                Telefono1Rif = Trim(Mid$(RigaLetta, 403, 15))
                Telefono2Rif = Trim(Mid$(RigaLetta, 419, 15))
                FaxRif = Trim(Mid$(RigaLetta, 435, 15))
                EmailRif = Trim(Mid$(RigaLetta, 451, 50))
                Nota = Trim(Mid$(RigaLetta, 502, 79))

                lCont = lCont + 1
                .Range("A" & lRiga).Value = ImpServ
                .Range("B" & lRiga).Value = Ente
                .Range("C" & lRiga).Value = DataOraChiamata
                .Range("D" & lRiga).Value = Operatore
                .Range("E" & lRiga).Value = Verso
                .Range("F" & lRiga).Value = Esito
                .Range("G" & lRiga).Value = Status
                .Range("H" & lRiga).Value = NumeroDocumento
                .Range("I" & lRiga).Value = lCont
                .Range("J" & lRiga).Value = CodiceFiscale
                .Range("K" & lRiga).Value = Nominativo
                .Range("L" & lRiga).Value = Riferimento
                .Range("M" & lRiga).Value = Telefono1Rif
                .Range("N" & lRiga).Value = Telefono2Rif
                .Range("O" & lRiga).Value = FaxRif
                .Range("P" & lRiga).Value = EmailRif
                .Range("Q" & lRiga).Value = Nota
                lRiga = lRiga + 1

E' un po' lunga... ma funziona!!
Ero così fiera di me... ma la tua è decisamente più... chiara!
:-(
Ti ringrazio e ti saluto... vado a cercare una spalla su cui piangere !!!

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.

Risposta
...
E' un po' lunga... ma funziona!!
Ero così fiera di me... ma la tua è decisamente più... chiara!
:-(
Ti ringrazio e ti saluto... vado a cercare una spalla su cui piangere !!!
Ciao Lucia,
in alternativa, si possono usare anche le QueryTables (per maggiori dettagli leggi l'help). Ecco un esempio.

Andrea.
---
Public Sub ReadAndSplitCsvFile()
Dim ws As Worksheet
Dim vPath As Variant
  
  vPath = Application.GetOpenFilename("CSV (Comma Delimited) (*.txt),*.txt", 1, "Seleziona il file", , False)
  If vPath = False Then Exit Sub

  Set ws = ThisWorkbook.Worksheets("Foglio1")
  With ws.QueryTables.Add("TEXT;" & vPath, ws.Cells(1, 1))
      '.AdjustColumnWidth = True
      .TextFileParseType = xlDelimited
      .TextFileSemicolonDelimiter = True
      .Refresh
  End With

  Set ws = Nothing
End Sub
---
Andrea

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.