Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Compatibilità VBA excel 2007 con VBA Excel XP ??

0 views
Skip to first unread message

skimer

unread,
Jan 21, 2007, 7:23:19 AM1/21/07
to
Stò giocherellando con excel2007 beta e l'idea di disporre di 16000
colonne e milioni di righe mi stuzzica tantissimo .. PERO' !!!!
Sotto Excel 2002(visual basic 6.3) ho sviluppato un sistema scritto in
codice VBA abbastanza complesso che esegue una serie di analisi su
lunghe serie di dati. Ebbene , cercando di avviare le mie macro ho da
subito avuto grossi problemi di compatibilità. Non mi apre userform ,
trova errori che nella versione precendente non si verificavano.
Da quel poco che ho visto sono stati addirittura eliminati dei comandi,
ad empio il comando
application.filesearch non esiste più !!! Se è davvero così tutto il
codice che ho scritto sino ad ora è praticamente da buttare via o
comunque dovrò perderci un sacco di tempo per aggiustare le cose.
E' veramente così ??
Grazie dell'attenzione.

Diego

Norman Jones

unread,
Jan 21, 2007, 8:23:59 AM1/21/07
to
Ciao Skimer,

'-------------

'-------------

Il fatto e' che la proprieta' Filesearrch era molto prroblematica (buggy).
Vedi. ad esempio:

http://tinyurl.com/n79oc

Non potendo (o non volendo) eliminare i bug, Microsoft ha
deciso di non includere piu' questa proprieta'.


---
Regards,
Norman


{dot} monti {@}mvps{dot}org Pat

unread,
Jan 21, 2007, 12:56:21 PM1/21/07
to
In news:1169382199.2...@38g2000cwa.googlegroups.com,
skimer typed:
Ciao skimer,
a parte il problema del filesearch, la tua domanda sul tempo da perdere per
aggiustare le cose è troppo generica, non conoscendo il codice.
Qui:
http://office.microsoft.com/client/helphome.aspx?ns=excel.dev&lcid=1033
"Excel Developer"
puoi trovare la guida vba di Excel 2007 nella quale sono contenute una
sezione con le novità introdotte e una con le differenze fra Excel 2007 e le
sue ultime quattro versioni precedenti, così puoi renderti conto
dell'eventuale lavoro che dovrai fare.
Nella valutazione, però, dovresti tenere anche conto dei benefici introdotti
in quest'ultima versione, a partire dalla leggerezza dei files rispetto alle
versioni precedenti.

Ciao
--
Pat [Microsoft Office Project MVP]
....................................
http://www.riolab.org
....................................


skimer

unread,
Jan 21, 2007, 5:51:20 PM1/21/07
to
[cut]

E ti pareva... la prima macro che ho provato a far girare ed ho subito
beccato un comando eliminato.
Mi leggerò la guida con estrema attenzione sperando di non dover
perdere troppo tempo ad apportare le dovute modifiche. Purtroppo
descrivere circa 6 anni di lavoro in VBA non è proprio immediato.
Ringrazio , come sempre, dei preziosissimi consigli.

P.S. come diavolo faccio ora che non ho più filesearch a fare girare
una macro del genere ?
Essa si occupa di riempire i campi di una listbox con i nomi dei file
presenti in una determinata cartella.

Sub pan_aggiorna_listbox_maschera_principale()

Application.ScreenUpdating = False

Dim creapercorso As Object
Set creapercorso = CreateObject("WScript.Shell")
percorsodesktop = creapercorso.SpecialFolders("Desktop")

Gestione_panieri_f24h.ListBox1.Clear

cartellaInEsame = percorsodesktop & PercorsoslavataggioPanieriCreati
filtroFile = ".xls"
IncludiSottocartelle = False

' carica tutti i file .xls nella listbox

Dim VettoreNumeroFile() As Variant, FileCount As Long
Erase VettoreNumeroFile
If filtroFile = "" Then filtroFile = "*.*" ' tutti i file
With Application.FileSearch
.NewSearch
.LookIn = cartellaInEsame ' la cartella dove va a cercare
.Filename = filtroFile
.SearchSubFolders = IncludiSottocartelle
.FileType = msoFileTypeAllFiles
If .Execute(SortBy:=msoSortByFileName, _
SortOrder:=msoSortOrderAscending) = 0 Then MsgBox
("Nessun paniere disponibile.. devi crearlo"): Exit Sub
ReDim VettoreNumeroFile(.FoundFiles.Count)
For FileCount = 1 To .FoundFiles.Count

Gestione_panieri_f24h.ListBox1.AddItem
Split(Dir(.FoundFiles(FileCount)), ".")(0)

.FileType = msoFileTypeExcelWorkbooks ' reset
filetypes
Next
End With
End Sub


Grazie di tutto.

Norman Jones

unread,
Jan 21, 2007, 6:12:59 PM1/21/07
to
Ciao Skimer,

'-------------


P.S. come diavolo faccio ora che non ho più filesearch a fare girare
una macro del genere ?

'-------------

Hai visto il link suggerito da me?

---
Regards,
Norman


ivan

unread,
Jan 22, 2007, 2:41:32 AM1/22/07
to
anche io usavo molto FileSearch.

Quando ho visto che non esisteva più mi son creato una classe che
simula il vecchio FileSearch (stessi metodi con parametri simili) e
l'ho chiamata MyFileSearch.

La nuova classe fa uso di FileScriptingObject (un esempio d'uso lo
trovi sul link che ti è stato suggerito; rispetto a quell'esempio ti
consiglio di usare il late binding in maniera da non dover includere i
riferimenti alla libreria "Microsoft Scripting Runtime" per ogni
progetto che frà uso della classe).

La nuova classe che ho creato non è proprio identica al vecchio
FIleSearch (anche perché l'ho fatta piuttosto in fretta per migrare
delle macro precedenti; inoltre non implementa nemmeno tutti i vechi
metodi/proprietà) però le modifiche per usarla sono minime.

In ogni modo chi è interessato alla classe può far riferimento al mio
sito Web personale (la si può scaricare dalla pagina
http://ivenuti.altervista.org/risorse/vba.htm)

p.s. se la migliorate fatemi avere le modifiche, così le si
condividono con tutti ;-)

ciao

skimer

unread,
Jan 22, 2007, 4:23:03 AM1/22/07
to

> '-------------
>
> Hai visto il link suggerito da me?
>
>
>
> ---
> Regards,
> Norman

Ti prego di scusarmi, ero di frettissima e ho dato uno sguardo più che
frettoloso. ;-))
Questa mattina me lo studio per bene.
Ancora grazie.

Diego

skimer

unread,
Jan 22, 2007, 4:24:11 AM1/22/07
to

>
> In ogni modo chi è interessato alla classe può far riferimento al mio
> sito Web personale (la si può scaricare dalla pagina
> http://ivenuti.altervista.org/risorse/vba.htm)
>
> p.s. se la migliorate fatemi avere le modifiche, così le si
> condividono con tutti ;-)
>
> ciao

Ottimo ci vado subito, se posso contribuisco.
Grazie mille.
Diego

skimer

unread,
Jan 23, 2007, 3:49:05 AM1/23/07
to
Per chiudere il discorso e non conoscendo le vostre esigenze ho
personalmente risolto con questa piccola e stupidissima routine
realizzata a partire dalle vostre , come sempre, risolutive
indicazioni.
E' una prima stesura e non ha il livello di completezza della notevole
( almeno per le mie capacità) soluzione di Ivan, ma per i miei scopi
dovrebbe andarmi benone.

Sub tutti_file_presenti_nella_cartella()

Dim VettoreNumeroFile() As Variant
Dim cartellaContenenteFile As String
Dim spec As String
Dim Filtrofile As String

' parametri per utilizzare la macro
cartellaInAnalisi = "C:\Documents and
Settings\skimer\Desktop\Intraday\ENEL\"
Filtrofile = "xls"
c = 0

cartellaContenenteFile = Dir(cartellaInAnalisi)
If cartellaContenenteFile = "" Then
MsgBox ("Cartella in analisi non ha nessun file di tipo " &
Filtrofile)
Exit Sub
End If
numerofileTipoExcel = 0
Do While cartellaContenenteFile <> ""
estensione = Split(cartellaContenenteFile, ".")(1)
If estensione = Filtrofile Then
numerofileTipoExcel = numerofileTipoExcel + 1
ReDim Preserve VettoreNumeroFile(c)
VettoreNumeroFile(c) = cartellaContenenteFile
End If
c = c + 1
cartellaContenenteFile = Dir()
Loop

If numerofileTipoExcel = 0 Then MsgBox ("nessun file di tipo " &
Filtrofile)
End Sub

E' una prima stesura e non ha il livello di completezza della notevole
( almeno per le mie capacità) soluzione di Ivan, ma per i miei scopi
dovrebbe andarmi benone.

0 new messages