Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Excel 2007 - Macro ripetuta per più fogli

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 2007 - Macro ripetuta per più fogli

Postdi Pocopratico » 04/03/15 13:57

Un saluto a tutti e nuovamente un sentito ringraziamento per le eventuali risposte.

Grazie ad Anthony47 e a chi ha partecipato adesso ho un foglio di 271 sheet che scarica i dati da altrettante pagine internet che utilizzano script che prima del vostro aiuto mandavano in palla Excel (qui il Topic relativo se interessa capire: http://www.pc-facile.com/forum/viewtopic.php?f=26&t=104115).

Adesso è venuto fuori un altro problema: alcuni dati numerici scaricati che mi servono stanno nella stessa cella insieme a del testo e questo avviene per tutte le 271 pagine di interesse.

Allora ho registrato la seguente macro sul foglio 1 che va proprio a dividere il testo dai numeri nelle sezioni dove mi serve farlo:

Codice: Seleziona tutto
Sub CancTxt()
'
' CancTxt Macro
'
' Scelta rapida da tastiera: CTRL+c
'
    Range("A1").Select
    ActiveWindow.SmallScroll Down:=2
    Range("B6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("K6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A6").Select
    Selection.TextToColumns Destination:=Range("A6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(9, 1), Array(85, 1)), TrailingMinusNumbers:= _
        True
    Range("D6").Select
    Selection.TextToColumns Destination:=Range("D6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(96, 1)), TrailingMinusNumbers:= _
        True
    Range("G6").Select
    Selection.TextToColumns Destination:=Range("G6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(157, 1)), TrailingMinusNumbers _
        :=True
    Range("J6").Select
    Selection.TextToColumns Destination:=Range("J6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(5, 1), Array(85, 1)), TrailingMinusNumbers:= _
        True
End Sub


La macro, per quanto non stilosa, fa quello che deve sul foglio1 e vorrei adesso che lo facesse per tutti i fogli dato che la zona da modificare è la medesima in tutti. Ho spulciato il forum ed ho trovato una precedente discussione sul tema (qui: http://www.pc-facile.com/forum/viewtopic.php?t=98239), ma non riesco a far funzionare il tutto.

Premetto che mi servirebbe anche che nel foglio 272, nel foglio 273 e nel foglio 274 la macro non venisse eseguita.

Codice: Seleziona tutto
Sub CancTxt()
'
' CancTxt Macro
'
' Scelta rapida da tastiera: CTRL+c
'
For F = 1 To Worksheets.Count
If Sheets(F).Name <> "Foglio272"  and Sheets(F).Name <> "Foglio273"  And Sheets(F).Name <> "Foglio274" Then
'
Sheets(F).select
'
Range("A1").Select
    ActiveWindow.SmallScroll Down:=2
    Range("B6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("E6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("H6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("K6").Select
    Selection.EntireColumn.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A6").Select
    Selection.TextToColumns Destination:=Range("A6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(9, 1), Array(85, 1)), TrailingMinusNumbers:= _
        True
    Range("D6").Select
    Selection.TextToColumns Destination:=Range("D6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(96, 1)), TrailingMinusNumbers:= _
        True
    Range("G6").Select
    Selection.TextToColumns Destination:=Range("G6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(6, 1), Array(157, 1)), TrailingMinusNumbers _
        :=True
    Range("J6").Select
    Selection.TextToColumns Destination:=Range("J6"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 1), Array(5, 1), Array(85, 1)), TrailingMinusNumbers:= _
        True
        End If  <<<< qui cosa devo aggiungere? E in che forma?
        Next F <<<< qui cosa devo aggiungere? E in che forma?
End Sub


E' la mia primissima volta di fronte ad un codice in VBA, scusate davvero se ci sono errori enormi e/o meno enormi, ma ci capisco niente proprio, non so neanche se ho messo nel modo giusto gli apostrofi (') nelle parti che ho modificato della macro registrata da Excel...

Grazie e scusate di nuovo per il disturbo, risolto questo passaggio dovrebbero essere terminati i problemi, in quanto i processi più complessi del foglio di calcolo sono conclusi.

Purtroppo io non posso ricambiare, quindi non posso essere un utente utile e attivo in questa parte del forum causa mia palese incompetenza :cry: So fare altro, ma qui non credo che serva! :D
Pocopratico
Newbie
 
Post: 9
Iscritto il: 25/02/15 16:54

Sponsor
 

Re: Excel 2007 - Macro ripetuta per più fogli

Postdi Anthony47 » 04/03/15 15:45

End If '<<<< qui cosa devo aggiungere? E in che forma?
Next F '<<<< qui cosa devo aggiungere? E in che forma?
Sintatticamente non devi aggiungere niente; rimane la End If e la Next F.

Per il resto, non ho idea di cosa intenda con "non riesco a far funzionare il tutto"; dovresti dare qualche dettaglio in piu' su che cosa succede e che cosa non succede.

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: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Excel 2007 - Macro ripetuta per più fogli

Postdi Pocopratico » 04/03/15 16:02

Bè in effetti adesso sembra proprio andare, ma ha iniziato a scorrere solo dopo aver riavviato il foglio Excel. Precedentemente mi aveva dato errore num. 400, dopo aver ben processato la prima pagina, ed era accaduto per le svariate volte in cui avevo tentato di far ripartire il processo da capo, e non so assolutamente il perché.

Mi spiace aver aperto questo nuovo Topic visto che era così "semplice" basandosi su quella precedente discussione del forum che ho segnalato prima.

Chiedo scusa e ringrazio ancora.
Pocopratico
Newbie
 
Post: 9
Iscritto il: 25/02/15 16:54


Torna a Applicazioni Office Windows


Topic correlati a "Excel 2007 - Macro ripetuta per più fogli":


Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti