Condividi:        

Variabili VBA con excel

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

Variabili VBA con excel

Postdi renos » 15/05/09 09:38

Vorrei modificare tramite scelta da combobox i dati XXX, YYY relativi ai fogli da attivare ed al file a cui connettersi per una query, ma nonostante diversi tentativi del tipo
Dim XXX As Sheets
XXX = ComboBox1.Text
e similari, non sono riuscito ad ottenere alcun risultato (solo errori vari).
I dati da modificare sono i seguenti:

…..
Sheets("XXX").Activate
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\YYY.csv" _
, Destination:=Range("A2:A3"))
.Name = "YYY_1"
…..
Come posso fare? Grazie
renos
Utente Junior
 
Post: 33
Iscritto il: 19/10/07 08:13

Sponsor
 

Re: Variabili VBA con excel

Postdi renos » 15/05/09 11:21

Momentaneamente, in attesa di una soluzione migliore, ho aggirato l’ostacolo recuperando i dati che mi interessano da due celle popolate dai combobox:
Dim x, y
x = Range("a1") nome del foglio da attivare
y = Range("b1") nome del file di origine

…..
Sheets(x).Activate
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\" & y _
, Destination:=Range("A2:A3"))
.Name = y &"_1"
…..
Non mi piace molto, ma sta funzionando
renos
Utente Junior
 
Post: 33
Iscritto il: 19/10/07 08:13

Re: Variabili VBA con excel

Postdi Anthony47 » 15/05/09 15:35

Non so che errori ti vengono fuori e in che istruzioni, quindi non sono in grado di dare suggerimenti.
Per il problema di cui parli suggerirei di valutare anche il metodo GetOpenFilename, che ti consente di acquisire il nome di un file da trattare tramite l' interfaccia standard di windows, cioe' con una finestra simile a quella che ti si presenta quando fai File /Apri. Se serve qualche informazione in piu' siamo qua.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19213
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Variabili VBA con excel

Postdi renos » 18/05/09 13:56

Cerco di spiegarmi meglio.
Ho una cartella in cui vi sono parecchi file csv (una settantina) in cui i dati sono organizzati in diverse colonne di cui mi interessa solo la prima (questi file non li posso modificare e me li devo tenere così come mi vengono passati).
Ho un altro file xls composto da tanti fogli quanti sono i suddetti file csv più uno “dati” in cui ho gli elenchi che mi servono per il combobox (nomi dei file csv e dei fogli)
Devo copiare i dati dai file csv ai fogli corrispondenti nel file xls nel modo più automatizzato possibile, onde limitare al massimo gli errori umani.
Ho pensato di usare una semplice maschera che si aprisse all’apertura del file xls composta da un combobox contenente l’elenco dei file csv, un pulsante di “inserimento” dati ed uno di chiusura della maschera stessa.

Dal combobox scelgo il nome del file csv che mi interessa e col pulsante “inserimento” avvio la procedura di copia e incolla o ,comunque, di aggiornamento dati.
1)non voglio che si debbano aprire i file di origine (csv)
2)dalle prove effettuate, per incollare o aggiornare i dati occorre attivare il relativo foglio: non ci deve essere possibilità di errore (incollare su un altro foglio rimasto attivo o non incollare un bel niente)
3)i problemi che avevo riscontrato dipendevano proprio dall’attivazione “casuale” dei fogli
4)per quanto riguarda la variabile x, relativa ai nomi dei fogli, pensavo di utilizzare un “cerca verticale” legato ad y, nel foglio “dati” in cui ho i nomi dei file csv ed a fianco il relativo nome del foglio in cui incollare i dati.

Per ora ho fatto così

Private Sub Inserimento_Click()
On Error Resume Next

Dim x, y
y = ComboBox1.Text ‘nome del file a cui connettersi
x = Sheets("dati").Range("B2") ‘nome del foglio in cui copiare i dati, pensando di usare “cerca
verticale” direttamente sul foglio di excel col risultato in B2

Sheets(x).Activate

With Sheets(x).QueryTables.Add(Connection:= _
"TEXT;C:\cartella\" & y _
, Destination:=Range("A2:A307"))
.Name = y & "_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

Come ho già detto non mi piace un granchè….
Grazie per l'aiuto
renos
Utente Junior
 
Post: 33
Iscritto il: 19/10/07 08:13

Re: Variabili VBA con excel

Postdi Flash30005 » 18/05/09 14:17

Fai una ricerca nel forum "Applicazioni Office Windows" con chiave "importare file txt" ci sono molte soluzioni interessanti oppure clicca qui

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: Variabili VBA con excel

Postdi renos » 18/05/09 14:49

Grazie Flash30005.
Provo a cercare se c'è qualcosa che mi possa tornare utile dove mi hai indicato.
renos
Utente Junior
 
Post: 33
Iscritto il: 19/10/07 08:13


Torna a Applicazioni Office Windows


Topic correlati a "Variabili VBA con excel":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti