Newsgroup: it.comp.lang.visual-basic
Titolo: VB + Excel

 Non riesco ad eseguire da VB questo frammento di macro:
 Range("B7:E10").Select
    With Selection
        .HorizontalAlignment = xlGeneral
    End With
che in excel va benissimo, poi quando provo a portarla in vb faccio:
xclApp.miofoglio.Range("B7:E10").Select
    With Selection
        .HorizontalAlignment = xlGeneral
    End With
ottengo il mesasggio oggetto range non valido
Però se invece di dichiarare xlApp come Obiect e poi come Excel.apllication 
che trova sul computer,
lo dichiaro subito come Excel application dopo aver spuntato excel nelle 
references allora va tutto bene.
In pratica cosi va bene:
Dim xlApp As New Excel.Application
E cosi no: ma a me serve che vada cosi, poiche non so a priori che versione 
di excel ci sarà tul pc target.
Dim xlApp As Object
Set xlApp = CreateObject("excel.application")
Info tutte gradite :)
Grazie
-- 
Greg 


Vedi qui e adatta:
Private Sub Command1_Click()
    Dim objExcel As Object
    Dim objWorkbook As Object
    Dim objWorksheet As Object
    Const xlLeft As Variant = 2
    Const xlCenter As Variant = 3
    Const xlRight As Variant = 4
On Error GoTo RigaErrore
    Set objExcel = CreateObject("Excel.Application")
    Set objWorkbook = objExcel.Workbooks.Open("C:\tuoFile.xls")
    Set objWorksheet = objWorkbook.Worksheets("Foglio2")
    objExcel.Visible = True
    With objWorksheet
        .Select
        .Cells(1, 1).HorizontalAlignment = xlLeft
    End With
RigaChiusura:
    objExcel.Quit
    Set objWorksheet = Nothing
    Set objWorkbook = Nothing
    Set objExcel = Nothing
    Exit Sub
RigaErrore:
    MsgBox Err.Number & vbNewLine & Err.Description
    Resume RigaChiusura
End Sub
-- 
---------------------------
Mauro Gamberini
http://www.riolab.org/
 

Mauro Gamberini ha scritto:
Grazie, ma non riesco a venircene fuori :(
Ho isolato questo blocco che mi da:
Errore runtime 1004
Impossibile impostare la proprieta HorizzontalAlignmets per la classe Range
 With objWorksheet
        .Select
        .Cells(1, 1).HorizontalAlignment = xlLeft
 End With
Per verificare se riesco o no a manipolare quella cella ho modifcato in
With objWorksheet
        .Select
        .Cells(1,1).value = "prova"
        .Cells(1, 1).HorizontalAlignment = xlLeft
 End With
ma ottengo sempre lo stesso errore sull'allineamento, mentre nella cella 
riesce a scrivere benissimo.
Qualche idea ?
-- 
Greg 

Dato che non hai referenziato la libreria Excel,
la costante xlLeft nel tuo caso � vuota.
Inserisci nel programma questa riga di codice e riprova:
Const xlLeft = -4131 '(&HFFFFEFDD)
--
Ciao Fede
By Chicco Production
http://bcp.freetools.it

 Const xlLeft = -4131 '(&HFFFFEFDD)
Grazie, la provo e tengo buona: Nel frattempo funziona in questo modo:
For Riga = 7 To 10 'Data1.Recordset.RecordCount + 7
For Col = 1 To 5
   xlApp.Cells(Riga, Col).Select
    xlApp.ActiveCell.HorizontalAlignment = xlCenter
    xlApp.ActiveCell.WrapText = True
Next
Next
Anche se non � bello ciclare cella per cella :(
Provo ad valorizzare qualla costante come hai consigliati tu
-- 
Greg 

 Provo ad valorizzare qualla costante come hai consigliati tu
Questi sono gli altri valori:
Const xlLeft = -4131 '(&HFFFFEFDD)
Const xlCenter = -4108 '(&HFFFFEFF4)
Const xlRight = -4152 '(&HFFFFEFC8)


 Const xlRight = -4152 '(&HFFFFEFC8)
Grazie, grazie Tiscali, ho scoperto l'arcano.
E infatti mi sono scaricato il file di tutte le costanti excel.
C'erano un sacco di cose che non riuscivo, per esempio immpostare 
l'orientamento Landscape, anche qui una costante vuota :( e otteneveo lo 
stesso errore!
Quindi ogni volta che copio un pezzo di codice generato dalle macro, dovr� 
andarci dietro e sostuiire tutte le costanti.
Ma alameno adesso mi � noto problema e soluzione.
Grazie ancora :)
-- 
Greg 

 E infatti mi sono scaricato il file di tutte le costanti excel.
-------
Se qualcuno fosse interessato, a questo link
http://support.microsoft.com/kb/112671/it
si può scaricare un file con tutte le costanti di tutti i pacchetti di 
Office 97
Quindi non solo excel, ma anche word, outlook....
-- 
Greg 

greg ha scritto:
Meglio qua:
http://support.microsoft.com/kb/239930/it
ci sono proprio tutti
-- 
Greg 

 ci sono proprio tutti
Puoi anche referenziare momentaneamente la libreria che ti interessa (ad
esempio Microsoft Excel),
e tramite il visualizzatore oggetti esaminare quello che ti mette a
disposizione,
inclusi i membri nascosti.



A me funziona e non ho messo nessun riferimento.
Inoltre:
    With objWorksheet
        .Select
        .Range("A1:A10").Select
        objExcel.Selection.HorizontalAlignment = xlCenter
    End With
Ricordando dalla guida che Selection :
Restituisce l'oggetto selezionato nella finestra attiva,
per un oggetto Application, e la finestra specificata,
per un oggetto Windows.
