Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[Excel] Macro sposta celle delimitate da caratteri specifici

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[Excel] Macro sposta celle delimitate da caratteri specifici

Postdi maxn » 15/10/13 17:32

Il titolo è un po' ambiguo, ma non so come descrivere in poche parole il mio problema... Ora vi spiego.

Ho ha disposizione dei documenti di testo (in formato .TXT) che contengono una serie molto lunga di numeri (con una, due o tre cifre). In particolare ogni numero con tre cifre si trova come numero finale identificativo della serie di numeri (con una o due cifre) che lo precede. Le serie purtroppo non hanno la stessa quantità di numeri.

Io ho la necessità di controllare in ogni serie di numeri (con una o due cifre) la presenza di duplicati e renderli velocemente riscontrabili insieme alla serie di numeri e in particolare al codice identificativo della serie.

Per fare ciò ho già creato una macro in excel che prevede però che le serie abbiano una stessa quantità di numeri per funzionare in maniera corretta. In questa macro ho impostato l'importazione dei dati in excel da file di testo in una colonna come testo e non come numeri(per evitare che il codice identificativo a volte preceduto da 0 venga modificato in automatico), la disposizione di serie di 30 numeri(valore che ritenevo essere la lunghezza di tutte le serie) tramite taglia e incolla in colonne affiancate e la formattazione condizione (colonna per colonna) dei duplicati. Infine ultima chicca una riduzione dello zoom e una adattamento delle colonne per facilitare la visualizzazione...

Come ho detto purtroppo le serie hanno numeri diversi e questa macro non funzione bene... Come posso fare? :roll:
Ho pensato che excel potesse riconoscere in automatico i numeri identificativi in quanto con un numero diverso di cifre rispetto agli altri e così poterlo selezionare insieme a tutta la serie che lo precede fino al numero identificativo soprastante(escluso) e in seguito tagliare ed incollarlo come detto prima. Purtroppo non so se è possibile e, comunque, non so come farlo... Voi? :)

Per facilitare la comprensione vi allego il file di testo da cui importare i dati e il foglio di excell con la macro da me creata e poi spezzettata nelle 3 parti "ImportaDati", "TagliaIncolla" e "Formattazione". ;)

File di excel: https://mega.co.nz/#!9Qd0wASA!GNYsjnT0mR7p3_BKP48MfHiv1FJIHWA_pF5lkHJuzPk
File di testo: https://mega.co.nz/#!YUlgGAKL!AnNZzw38hOKenVWiIzlGwXzuGnw2Pvk-_bunXnkTBeA
MaxN

Windows Vista + Office 2010 ita
maxn
Newbie
 
Post: 6
Iscritto il: 05/02/10 16:23

Sponsor
 

Re: [Excel] Macro sposta celle delimitate da caratteri speci

Postdi Anthony47 » 16/10/13 00:10

Quando provo a scaricare uno qualsiasi dei due file il browser mi chiede di autorizzare lo scarico di un file superiore a 50 MByte, cosa che mi son guardato bene dall' autorizzare.
Se non ti arrivano risposte da altri utenti valuta l' uso di un altro servizio di filesharing.

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro sposta celle delimitate da caratteri speci

Postdi maxn » 16/10/13 18:18

Scusa, io usando questi link riesco a scaricarli entrambi e ti assicuro che insieme pesano meno di 30 kilobyte... Ho appena notato che in questo forum non vi piace molto questo servizio di filesharing: mi hanno criticato per averlo consigliato nel topic "come allegare un file" eppure con me e i miei amici ha sempre funzionato benissimo.

Dato ciò ho seguito il tuo consiglio e ho hostato i file su mediafire, ecco i link :)

http://www.mediafire.com/view/8srodqh8z ... prova.xlsm
http://www.mediafire.com/view/w0tsceabckfn5rw/prova.txt
MaxN

Windows Vista + Office 2010 ita
maxn
Newbie
 
Post: 6
Iscritto il: 05/02/10 16:23

Re: [Excel] Macro sposta celle delimitate da caratteri speci

Postdi Anthony47 » 17/10/13 02:12

Non sono prevenuto verso il sito mega.co.nz, ma ti assicuro che all' accesso ha cercato di scaricarmi 50 e passa MB di roba, forse il software di gestione locale sul mio pc...

Mi pare quindi che la richiesta sia limitata a "spalmare" su piu' colonne il contenuto di un file txt, a blocchi delimitati da una riga di lunghezza 3 caratteri.
Per questo dovrebbe andare bene una macro come questa:
Codice: Seleziona tutto
Sub spalma()
Dim File_Inp, Sh_Out As String, myCol As Long
File_Inp = "C:\PROVA\prova-1.txt"   '<<< Il file da importare
Sh_Out = "FoglioZZ"                  '<<< Il foglio su cui creare il gruppo di colonne (deve gia' esistere e sara' CANCELLATO all' inizio
'
Sheets(Sh_Out).Activate          '*** Vedi Testo
Sheets(Sh_Out).Cells.ClearContents
Open File_Inp For Input As #1
myCol = 0
Do Until EOF(1)
    Line Input #1, myRow
    Range("A1").Offset(Rows.Count - 1, myCol).End(xlUp).Offset(1, 0).Value = myRow
    If Len(myRow) > 2 Then myCol = myCol + 1
Loop
Close
End Sub

Inseriscila in un modulo standard e personalizza le righe marcate <<<.
La macro azzera il contenuto del foglio dichiarato di output (istruzione marcata ***); se questo comportamento non e' corretto bisognera' cancellare l' intera riga, o "commentarla".

Per quanto riguarda la formattazione andra' bene una macro autoregistrata, nello stile di quella che usi al momento.

Ciao, fai sapere.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: [Excel] Macro sposta celle delimitate da caratteri speci

Postdi maxn » 18/10/13 17:36

Grazie sembra funzionare :) però c'è una cosina un po strana...
la 1° serie di numeri inizia sulla seconda colonna(B) e sulla seconda riga, invece in A2 si trova solo il primo numero della 1° serie (ovviamente non viene ripetuto nella colonna B insieme al resto della serie) accompagnato da altri caratteri che non riesco a comprendere... vorrei postare uno screen ma non ci riesco per problemi con mediafire e per il tempo...


Per esattezza compare questo in A2:

20

Il numero 20 è il 1° numero della prima serie...

Mi servirebbe che fosse insieme al resto della serie per rendere il confronto completo... :)

P.s.: se non sono stato chiaro provvederò al più presto a caricare uno screen :)
MaxN

Windows Vista + Office 2010 ita
maxn
Newbie
 
Post: 6
Iscritto il: 05/02/10 16:23

Re: [Excel] Macro sposta celle delimitate da caratteri speci

Postdi Anthony47 » 19/10/13 00:25

Si tratta di record contenenti caratteri spuri, succede anche col txt che avevi pubblicato e lo puoi verificare aprendo il file con notepad.
Comunque puoi evitare di interpretarli come separatore di blocco modificando questa istruzione (>2 deve diventare =3):
Codice: Seleziona tutto
If Len(myRow) =3 Then myCol = myCol + 1


Fai sapere, ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Macro sposta celle delimitate da caratteri specifici":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti