Problemi con macro per excel

Il forum per porre domande e dare risposte su argomenti riguardanti il mondo della programmazione.

Moderatore: Staff forum IlSoftware.it

Avatar utente
Proffe
Junior Software
Junior Software
Messaggi: 77
Iscritto il: 12 mag 2004 20:53
Località: Lucca

Problemi con macro per excel

Messaggioda Proffe » 23 nov 2017 09:52

Uso excel 2002 per uso personale e mi diverto a fare macro. Tra le altre ne ho scritta una che conta i file di un certo tipo presenti in una cartella e che qui riporto:
Attribute VB_Name = "Modulo2"
Sub ContaFileXls()
Dim nomf()
Set fs = Application.FileSearch
With fs
.LookIn = ActiveWorkbook.Path
.Filename = "*.xls"
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
numf = .FoundFiles.Count
ReDim nomf(numf)
For i = 1 To numf
nomf(i) = .FoundFiles(i)
Next i
Else
MsgBox "Non ho trovato file xls"
End If
End With
End Sub

Provata per un amico sul suo Excel, credo l'ultima versione, mi riporta un errore nella riga

set fs=Application.FileSearch

che non capisco.
C'è qualcuno che mi può dare una mano?
Grazie
Ciao, Proffe

famasoft
Messaggi: 1
Iscritto il: 14 feb 2019 19:15

Re: Problemi con macro per excel

Messaggioda famasoft » 09 lug 2019 11:07

L'errore viene segnalato perché 'fs' non risulta dichiarata prima del suo utilizzo.
Il problema si manifesta perché nella versione Excel su cui è stata testa la macro risulta impostata per default la clausola:
Option Explicit
all'inizio del codice del modulo stesso.

La soluzione è semplice, o si toglie questa impostazione o MEGLIO ANCORA si procede a dichiarare preventivamente le 'variabili' utilizate nel corpo della routine.
E' sufficiente aggiungere la seguente linea di codice all'inizio della routine :
Dim fs
così come fatto per la variabile 'nomf'.
Ovviamente occorre dichiarare TUTTE le variabili usate come, nel caso specifico, 'NUMF' e 'I'.
Meglio ancora è definire anche il tipo di variabile come nell'esempio seguente
Dim nomf() As String
Dim numf As Long
Dim i As Long
e studiare pure come le variabili possono essere usate nell'ambito di un programma, anche se semplice, per ottimizzarlo al meglio.

Anche se con moltissimo ritardo nella risposta, spero possa comunque essere di aiuto a qualcuno.

Avatar utente
Proffe
Junior Software
Junior Software
Messaggi: 77
Iscritto il: 12 mag 2004 20:53
Località: Lucca

Re: Problemi con macro per excel (risolto)

Messaggioda Proffe » 09 lug 2019 11:31

Ringrazio famasoft che mi ha permesso di risolvere il problema.
Ciao, Proffe