Newsgroup: it.comp.lang.visual-basic
Titolo: [?] : Suddivisione in colonne da excel con codice VB

Salve a tutti,il mio problema e questo:
Sto facendo un programma in VB6 che tra le altre cose voglio che mi apra da
excel un file contenente dei dati appena scaricati da host (innanzitutto, il
file non ha un formato preciso č importante che lo abbia?).Se lo faccio con
codice VBA (il codice č quello che segue)
Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(Array(0, 9), Array(1, 1), Array(6, 1), Array(19, 1),
Array(34, 1), _
        Array(54, 1), Array(66, 1), Array(78, 1), Array(81, 1))
avviene tutto come voglio (lunghezze definite da me, colonne da eliminare,
tutto ok).
Ora, naturalmente da VB6 non č la stessa cosa, perche funziona solo se io
metto (premmesso che Set xlApp = CreateObject("Excel.Application")):
xlApp.Selection.TextToColumns _
        FieldInfo:=Array(Array(0, 9), Array(1, 1), Array(6, 1), Array(19, 1),
Array(34, 1), _
        Array(54, 1), Array(66, 1), Array(78, 1), Array(81, 1))
In questo modo perň non mi elimina le colonne che voglio,cosi che io devo
andare a verificare dopo che ha fatto la suddivisione, quali sono le colonne
vuote ed eliminarle!
Sembra quindi che prenda solo le distanze definite dall'array!
C'č il modo per fare ciň che viene fatto in VBA allo stesso modo in VB6?
Grazie ciao Matteo
--------------------------------
Inviato via 
http://usenet.libero.it

 C'è il modo per fare ciò che viene fatto in VBA allo stesso modo in VB6?
    Rispondo prima a questa ultima tua domanda: si', a condizione di essere
in grado di impostare le stesse condizioni che fanno funzionare un certo
codice in un progetto di excel.
    Generalmente questo vuol dire che bisogna, sia nel progetto excel che
(maggiormente) in quello vb, essere ben consapevoli di quel che si scrive.
    In pratica quando sviluppi sotto excel molte cose sono gia' istanziate,
mentre in vb te ne devi preoccupare tu.
    Faccio un esempio:
    Excel.
        Puoi tranquillamente scrivere ovunque:
    ActiveCell.Value = 10
e qualcosa succede. Magari non quel che speravi, ma qualcosa succede.
    VB.
        Per poter scrivere la stessa cosa devi preoccuparti di aprire (e poi
chiudere) l'applicazione excel, definendo le opportune variabili e non
potrai sottintendere l'oggetto Application ma dovrai esplicitarlo:
    Dim oXlApp As Excel Application
    <...>
    oXlApp.ActiveCell.Value = 10
    Ho sentito il bisogno (urgente) di scrivere questa pappardella perche'
messo in allarme dalla prima riga di codice che proponi:
    Columns("A:A").Select
        Selection.TextToColumns Destination:=Range("A1"),
che e' proprio del tipo "inconsapevole". Mi spiego: funziona finche' resta
dove sta. Appena ti viene il ghiribizzo di spostarlo in un altro modulo o
classe o progetto vb... non funziona piu'.
    Perche' quel "Columns" sottintende una serie di cose che non e' bene
siano sottintese.
    Forse il nocciolo di tutta la faccenda e' qui.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 Forse il nocciolo di tutta la faccenda e' qui.
Naturalmente in codice VB ho inserito xlApp.columns...... anche se lo dovuto
fare dopo perche inizialmente supponevo si potesse omettere.
Comunque penso di avere capito cio che mi dicevi e cioè dato che molte cose
che in VBA sono sottintese in VB no , sono io che ci devo pensare........mi
mettero in quest'ottica!!!
Ciao Grazie Matteo
