Condividi:        

Macro per Excel - problema -

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

Macro per Excel - problema -

Postdi andrea.lori » 26/12/12 19:46

Salve a tutti, cercando di creare una macro per excel mi sono imbattuto in questo forum, devo farvi davvero i complimenti!!

Ho necessità di creare una macro per scaricare un file excel, sistemarne le righe, prima di ricaricarlo su un database online (la parte iniziale e finale, da firefox, l'ho già automatizzata con imacros).
Ora per quanto riguarda la parte excel ho 2 problemi:

1. il nome del file è sempre diverso (del tipo "xxx anno_mese_giorno"), sono riuscito a rinominarlo in modo da lavorare sempre su un unico file, tuttavia il folgio di excel continua ad avere il nome originale, e quindi la macro non funziona
per capirci questo è il problema
Codice: Seleziona tutto
 ActiveWorkbook.Worksheets("xxx anno_mese_giorno to anno_mese_giorno").Sort.SortFields. _


c'è un modo per potergli far prendere questo dato o per aggirarlo?

2. il numero di righe è variabile, tuttavia nella macro che ho realizzato prende sempre un numero fisso di righe, ora ho aggirato il problema inserendo un numero di righe da ordinare molto più alto, c'è una funzione per fargli riconoscere in automatico solo le righe presenti?
questa è la macro
Codice: Seleziona tutto
 Add Key:=Range("B2:B146"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal


grazie a tutti
Win7 + Office 2010 Ita
Win7 + Office 2007 Ita
andrea.lori
Newbie
 
Post: 4
Iscritto il: 26/12/12 19:33

Sponsor
 

Re: Macro per Excel - problema -

Postdi Flash30005 » 27/12/12 06:54

Ciao Andrea e benvenuto nel Forum

Non ho capito bene il primo quesito:
hai un file sempre con lo stesso nome e un foglio con nome variabilie?
e, in questo caso qual'è il problema?
Sappi che per avere una variabile del foglio per poterlo "lavorare" puoi usare questo semplice codice
Codice: Seleziona tutto
MioFoglio = ActiveSheet.Name

a questo punto potrai usare
Codice: Seleziona tutto
Sheets(MioFoglio).Range("A1:B1000"). etc etc

perché qualsiasi sia il nome del foglio
la variabile "MioFoglio" assumerà quel nome


per il secondo quesito puoi usare questo codice
Codice: Seleziona tutto
UR = Range("B" & Rows.Count).End(xlUp).Row
 Add Key:=Range("B2:B" & UR), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro per Excel - problema -

Postdi andrea.lori » 27/12/12 13:22

innanzitutto grazie!!

però mi dà un errore:
Codice: Seleziona tutto
 ActiveWorkbook.Worksheets("MioFoglio").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("MioFoglio").Sort.SortFields. _
    UR = Range("B" & Rows.Count).End(xlUp).Row
        [b]Add[/b] Key:=Range("B2:B" & UR), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal


quel Add mi dà
erorre di compilazione Sub o Function non definita
Win7 + Office 2010 Ita
Win7 + Office 2007 Ita
andrea.lori
Newbie
 
Post: 4
Iscritto il: 26/12/12 19:33

Re: Macro per Excel - problema -

Postdi Flash30005 » 27/12/12 13:36

Non devi mettere MioFoglio tra le virgolette essendo una variabile altrimenti la legge come testo
Codice: Seleziona tutto
 MioFoglio = ActiveSheet.Name
ActiveWorkbook.Worksheets(MioFoglio).Sort.SortFields.Clear
UR = Sheets(MioFoglio).Range("B" & Rows.Count).End(xlUp).Row
ActiveWorkbook.Worksheets(MioFoglio).Sort.SortFields. _
        Add Key:=Range("B2:B" & UR), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortNormal


UR va prima del sort

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Macro per Excel - problema -

Postdi andrea.lori » 27/12/12 15:06

Grazie ora funziona perfettamente!!

Visto che sei così bravo, posso abusare delle tue conoscenze?
Potrebbe servirmi alcune volte, in caso alcuni dati presenti nel foglio non rispettassero alcuni standard (a volte capita che nei dati vengano inseriti ad esempio stringhe di html importate per errore dal database da cui il file viene scaricato), di modificare alcune celle con valori prestabiliti. Esiste qualche funzione che "controlla" i dati? (ad esempio, se una cella della colonna C è più lunga di 5 caratteri modificarla con il valore 0)

Inoltre (più che altro per curiosità), sempre con le macro è possibile dare direttamente alla macro il link da cui scaricare il file e farglielo scaricare da solo?

grazie
un saluto
Win7 + Office 2010 Ita
Win7 + Office 2007 Ita
andrea.lori
Newbie
 
Post: 4
Iscritto il: 26/12/12 19:33


Torna a Applicazioni Office Windows


Topic correlati a "Macro per Excel - problema -":


Chi c’è in linea

Visitano il forum: Nessuno e 76 ospiti