Mauro76 Inserito: 13 maggio 2011 Segnala Inserito: 13 maggio 2011 Salve a tutti....ho un problema su un progetto fatto in Excel 2007 dove ho fatto delle macro vba in cui ho usato una procedura "dir" per trovare dei file all'interno di una cartella.sul mio pc dove ho installato Office 2007 Enterprice Funziona "il file excel l'ho salvato in modalità compatibilità' con office 2003, funziona correttamente.dopo l'ho provato anche su Office 2003 e funziona.Quando l'ho provato su Office 2007 Pro non funge.perfavore avete un esempio di codice vba per cercare dei file ?sul mio progetto ho creato un modulo di classe : Private ind As IntegerPublic tuttifile As CollectionPrivate Sub class_initialize()ind = 0End SubPublic Sub esegui(percorso As String, sepcfile As String) Dim unfile As String Set tuttifile = New Collection ChDir percorso unfile = Dir(percorso & "\" & specfile) While unfile <> "" tuttifile.Add unfile ind = ind + 1 unfile = Dir WendEnd SubPublic Function numerofile() numerofile = indEnd Functiondopo ho usato la funzione esegui su un modulo :Sub Presentazione_Rettangolo2_Clic() On Error Resume Next Dim cf As New CercaFile i_c = 6 f_c = 26 i_t = 8 i_f = 0 trovatifile = 0 Range("x8:x60").Value = "" Range("b8:b60").Value = "" Range("m7").Value = 0 Range("x1").Value = 0 For i = i_c To f_c If trovatifile = 0 Then i_d = Range("u" & i) cf.esegui i_d & "USERDATA\PM581\USERDAT", "*.dat" If cf.numerofile > 0 Then tovatifile = 1 Exit For End If End If If Err.Number = 76 Then i = i + 1 End If Next i If tovatifile = 1 Then For i_f = 1 To cf.tuttifile.Count Range("x" & i_t).Value = cf.tuttifile(i_f) i_t = i_t + 1 Next i_f '********************* ESTRZIONE FILE .DAT ********************** n_file = Range("x7").Value est_fisso = ".DAT" ind_elenco = 8 ind_f = 8 elenco = 0 For elenco = 1 To n_file est = Range("v" & ind_elenco).Value If est = est_fisso Then t_file = Range("x" & ind_elenco).Value Range("b" & ind_f).Value = t_file ind_f = ind_f + 1 End If ind_elenco = ind_elenco + 1 Next elenco '***************************************************************** info1 = MsgBox("Ricerca File eseguita.", vbExclamation, "VISUALIZZA FILE") Exit Sub End If If trovatifile = 0 Then info2 = MsgBox("Non è stato trovato nessun file", vbExclamation, "VISUALIZZA FILE") End IfEnd Subsu Office 2007 Pro la macro funziona a metà, ciòè : non funziona la parte di ricerca del file, tutto il resto funziona.ditemi voi se è corretto o no grazie.
GiRock Inserita: 13 maggio 2011 Segnala Inserita: 13 maggio 2011 Senti l'ho provata con 2007 Pro e funziona, l'unico errore che ho trovato è il nome della variabile sepcfile che poi diventa unfile = Dir(percorso & "\" & specfile)...Usando On Error Resume Next non ti intercetta l'errore, ma la routine non può funzionare...
lelerelele Inserita: 23 aprile 2012 Segnala Inserita: 23 aprile 2012 anche io ho avuto problemi con VBA su office, e la versione 2007/2010 è molto diversa dalle precedenti. il consiglio che ti do è intanto di usare Access per i tuoi programmi, perlomeno è fatto apposta per essere programmato, ma comunque ti ricordo che se vuoi fare programmi anche complessi il sistema migliore e che da la garanzia del funzionamento è Visual studio, con VisualBasic hai gli stessi comandi di VBA ed una grande disponibilità di oggetti, sia di componenti gia pronti, sia l'uso della framework, che la possibilità di l'installazione del tuo programma.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora