PDA

View Full Version : [VB] Scrivere codice su Excel


race2
21-09-2002, 15:40
E' possibile scrivere del codice su "Excel XP" per creare un report da stampare, sensa dovere utilizzare il Crystal Report ???

esempio:

1) mi creo una struttura grafica di linee come voglio io
2) creo delle Query per estrarre i dati dal database MySQL o Access i quali dati li memorizzo in delle variabili
3) stampo le variabili con i dati sotto le celle di Excel nella posizione che dico io
4) stampo l'intero documento popolato di dati ed ecco che ho creato un report

domande:

1) come faccio per inserire le query in modo che all'apertura del foglio Excel vangano eseguite???

2) come faccio per visualizzare il valore delle variabili nei campi giusti???

3) si puo' con VB.NET ???

cionci
21-09-2002, 15:58
Con VBA... Visual Basic for Application... E' un linguaggio molto simile al VB6...

Strumenti -> Macro e a quel punto scegli l'editor...

race2
21-09-2002, 16:22
Ho trovato questo http://ennius.interfree.it/ ma non si puo' grstire un Database MySQL o Acccess..............

cionci
21-09-2002, 16:29
Con VBA puoi gestire tutti i DB che ti pare visto che puoi fare query tramite ADO...
Con Office dovresti avere anche l'Help per VBA...

cionci
21-09-2002, 16:35
Ho trovato nell'help di VBA questa apertura di un DB tramite ODBC (quindi può essere di qualsiasi tipo basta che abbia un DSN di sistema) :

databaseName = "Northwind"
queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output = Worksheets("Sheet1").Range("A1")
SQLRetrieve chan, output, , , True
SQLClose chan

cionci
21-09-2002, 16:37
Comunque nell'Help di Excel XP (io ho 2000) puoi sicuramente trovare il modo di aprire un DB con ADO...

race2
21-09-2002, 16:46
Ho visto ho capito come fare , anche se devo un po tradurre per VBA io conosco solamente VB.NET.

una sola cosa se la sai al volo, come posso fare per avviare una Sub all'apertura del mio documento Excel, non so come arrivare all'evento "Load" del foglio di Excel,

all'avvio cosi richiamerei la Sub con le Query.................

cionci
21-09-2002, 16:54
E' la prima volta che metto mano su VBA, ma sembra che funzioni :

In thisWorkBook metti :

Private Sub Workbook_Open()
'Solo per fare un esempio
myNum = Application.InputBox("Enter a number")
End Sub

race2
21-09-2002, 17:04
FUNZIONA!!!!

.....ma che testa che ho..........

sai cosa avevo inserito io ???........

Private Sub Workbook_Load()
MsgBox("Tutto OK!")
End Sub


.......e si,... devo proprio fare una bella traduzione da VB.NET a VBA.......

io ho gia aperto la guida dell'editor VBA del mio Office XP, e ho cercato come fare per visualizzare un valore sotto una cella, ma non trovo nulla, tu dato la tua esperienza ormai nota, non hai idea di come visualizzare ad esempio la variabile " MyVar = "Ciao!" " dentro la cella " B:5 " e quindi in " B:5 " si vedra' " Ciao! " all'apertura del documento Excel.

se risolvo questo prometto che non ti domando piu' nulla a riguardo.... :D :D :D

grazie mille......!!!

race2
21-09-2002, 17:08
Altrimenti un altra soluzione e dirmi come fai i report per la stampa di documenti tipo "Fogli di fattura" con VB6...... :D:D:D

io non sono ancora riuscito ad imparare l'uso del Crystal Report , non trovo uno straccio di guida da seguire,

tu ne conosci una???


oppure come si fa per stampare con codice sensa il Crystal Report includendo linee per la formattazione corretta di un "Documento di fattura" ???

cionci
21-09-2002, 17:33
Riguardo al Crystal Report...non ne ho idea :( Non è proprio il mio campo :)

Per l'altra cosa :

Private Sub Workbook_Open()
myNum = Application.InputBox("Enter a number")
Worksheets(1).Activate
Worksheets(1).Cells(2, 10).Value = myNum
'L'indice 2 corrisponde alla riga, 10 alla colonna (lettera J)
End Sub

race2
21-09-2002, 21:04
Ti ringrazio molto........

Ma tu non fai i report di stampa???

cionci
22-09-2002, 11:33
Originariamente inviato da race2
[B]Ti ringrazio molto........

Ma tu non fai i report di stampa???
Direi proprio di no... Non faccio gestionali e simili :)
Dicamo che il mio settore è reti e web...

Comunque mi sono trovato a fare qualche report di stampa in VC++, ma mi sono programmato la stampa pixel per pixel...

ODISSEO10
08-10-2002, 21:36
Inoltre, se non conosci bene i comandi VB per operare sulle celle di Excel puoi utilizzare il generatore di macro di Excel che non fa altro che registrare in VB tutto quello che fai sul foglio Excel.

Ciao