Newsgroup: it.comp.lang.visual-basic
Titolo: Ricerca documentazione

Ciao a tutti,
per evitare di porre infinite stupide domande (non è una minaccia :-) ) mi
piacerebbe trovare della documentazione che spieghi come utilizzare
riferimenti a oggetti esterni ad un programma Vb quali un foglio Excel o
lotus
Su Excel qualcosa ho trovato, ma sul Lotus proprio nulla
con:
Dim LOTUS As lotus123.document
    Set LOTUS = GetObject("c:\lotus.123")
    LOTUS.Application.Documents.Open "c:\lotus.123"
    LOTUS.Application.Visible = True
    LOTUS.Activate
riesco ad aprire Lotus e a caricare un foglio di lavoro, non riesco però
proprio a capire come scriverci dentro.
In particolare dovrei andare a selezionare un foglio in particolare,
individuare un valore in una cella, inserire una riga e popolarla di valori
numerici.
Qualcuno mi sa dire come posso reperire informazioni?
Grazie
--
Paolo Bernardi

 Roal Zanazzi
Ciao Roal e grazie per l'aiuto.
Il problema: Lotus 123 non installa nella sua "installazione standard" il
file di help per il lotus script e visual basic mi diceva solo "guida non
disponibile".
Clickando sull'help del visualizzatore oggetti VB mi ha indicato invece il
nome del file di guida mancante e così sono riuscito a capire cosa non
andava.
Risultato: leggo l'help ma non ci capisco molto :-((
Comunque sono riuscito a fare le stesse cose con Excel, il suo VBA mi sembra
più facile da utilizzare e fortunatamente mi permette di leggere e salvare
il file in formato WK4.
Mi è rimasto un solo problemino: quando vado a salvare il foglio excel non
riesco ad evitare la richiesta di conferma del salvataggio. Si può
confermare da VB?
Mi pare che qualche tempo fa qualcuno aveva già chiesto questa cosa, ma non
sono riuscito a rintracciare il messaggio, i'm sorry.
Ciao
--
Paolo Bernardi


Si spera che la Lotus abbia della documentazione riguardante lo schema degli
oggetti OLE di Lotus 123 (analogamente a quanto disponibile per Excel,
nell'help relativo alla programmazione VBA).
Potresti chiedere direttamente a Lotus.
Alternativa 1) aggiungi al tuo progetto il Riferimento a Lotus 123, poi
premi F2, scegli la libreria Lotus 123. A questo punto dovresti vedere
metodi, proprieta', costanti, etc...
Alternativa 2) sul CD di VB5/6 c'e' un tool che si chiama OLE Viewer, che ti
permette di recuperare le informazioni di un oggetto OLE.
In ogni caso sarebbe meglio avere la documentazione ufficiale, che magari
contiene anche esempi e note per l'uso.
--
Roal Zanazzi
z...@iol.it


Questo è il codice:
XL.Application.ActiveWorkbook.SaveAs FileName:="C:\LOTUS.wk4",
FileFormat:=xlWK4, CreateBackup:=False,
ConflictResolution:=xlLocalSessionChanges
Excel chiede la conferma per sovrascrivere il file già esistente, come
gliela passo?
XL.Application.Quit
Anche qui excel rompe, essendo il file in formato Lotus 123 il programma mi
chiede conferma del salvataggio in formato diverso da XLS.
Grazie
Paolo Bernardi

Chiedo innanzitutto scusa a tutti, dopo due giorni di tentativi sono
riuscito a trovare da solo il modo di non visualizzare le richieste di
salvataggio da parte di excel.
si trattava semplicemente di impostare:
xl.application.displayalerts=false
potevo quindi arrivarci da solo.
Mi è rimasto l'ultimissimo problema Excel mi causa un crash di sistema
quando lo chiudo.
Scrivo il sorgente sperando che possa rimanere utile a qualcun altro.
Apro Excel e carico un documento Lotus 123
   Set XL = GetObject(App.Path & "\excel.xls")
    XL.Application.Visible = True
    XL.Application.Workbooks.Open "c:\lotus.wk4"
Seleziono il secondo foglio di lavoro
    XL.Application.Sheets("Report2").Select
e cerco la prima cella libera sulla prima colonna e prendo l'indirizzo
Primoindirizzo
    With XL.Application.Worksheets(2).Range("a1:a500")
        Set c = .Find("", lookin:=xlValues)
        If Not c Is Nothing Then
            primoindirizzo = c.Address
        Else
            MsgBox "Errore contattare assistenza"
            End
        End If
    End With
 seleziono la riga e inserisco una riga vuota
    XL.Application.Range(primoindirizzo).Select
    XL.Application.Selection.EntireRow.Insert
Qui ho un problema risolto per ora con una pecionata :-) non so come ci si
sposti con il cursore alla cella di destra, per cui mi prendo l'indirizzo di
riga e poi inserisco i valori.
    Indirizzo = ""
    For i = 1 To Len(primoindirizzo)
        If IsNumeric(Right(primoindirizzo, i)) = True Then
            Indirizzo = Right(primoindirizzo, i)
        End If
    Next i
Inserisco i valori nelle celle
    NuovoIndirizzo = "A" & Indirizzo
    XL.Application.Range(NuovoIndirizzo) = "pippo"
    NuovoIndirizzo = "B" & Indirizzo
    XL.Application.Range(NuovoIndirizzo) = "pluto"
    NuovoIndirizzo = "C" & Indirizzo
    .......
    .......
salvo le modifiche al documento dicendo ad Excel di non seccarmi con le
richieste di conferme
    XL.Application.DisplayAlerts = False
    XL.Application.ActiveWorkbook.SaveAs FileName:="C:\LOTUS.wk4",
FileFormat:=xlWK4, CreateBackup:=False,
ConflictResolution:=xlLocalSessionChanges
chiudo il foglio di lavoro
    XL.Application.ActiveWorkbook.Close
fino qui va tutto bene, ma quando eseguo
    XL.Application.Quit
Excel va in crash
    Set XL = Nothing
Aiuto!!!
Ciao
Paolo Bernardi


Si, infatti qualcuno aveva gia' risposto (e ora non ricordo quale fosse la
risposta).
Fai una ricerca su 
www.deja.com
.
--
Roal Zanazzi
z...@iol.it

chiede conferma del salvataggio in formato diverso da XLS.
Ti consiglio una cosa :
Da Excel c'è un tastino nelle opzioni "Registra Macro".
Da quando lo abiliti, tutto ciò che fai viene tradotto in codice VB in una
macro in Excel.
Tu devi :
- Attivare "registra macro"
- salvare il file in formato excel
- stoppare la "registra macro"
- vedere cosa ha scritto Excel nella macro
- tradurlo in VB (che poi è quasi un "copiarlo in VB").
Ciao

    Dim XL As Excel.Application
    Dim Esistente As Boolean
    ' ** Apro Excel **
    On Error Resume Next
    Esistente = True
    Set XL = GetObject(, "Excel.Application")
    If Err.Number > 0 Then
        Set XL = CreateObject("Excel.Application")
        Esistente = False
    End If
    On Error GoTo 0
    XL.Visible = True
    XL.Workbooks.Open "c:\lotus.wk4"
    XL.Sheets("Report2").Select
    With XL.Worksheets(2).Range("a1:a500")
        Set c = .Find("", lookin:=xlValues)
        If Not c Is Nothing Then
            primoindirizzo = c.Address
        Else
            MsgBox "Errore contattare assistenza"
            End
        End If
    End With
    XL.Range(primoindirizzo).Select
    XL.Selection.EntireRow.Insert
    Indirizzo = ""
    For i = 1 To Len(primoindirizzo)
        If IsNumeric(Right(primoindirizzo, i)) = True Then
            Indirizzo = Right(primoindirizzo, i)
        End If
    Next i
    NuovoIndirizzo = "A" & Indirizzo
    XL.Range(NuovoIndirizzo) = "pippo"
    NuovoIndirizzo = "B" & Indirizzo
    XL.Range(NuovoIndirizzo) = "pluto"
    NuovoIndirizzo = "C" & Indirizzo
'salvo le opzioni originarie
    dim RichiestaConferma as boolean
    RichiestaConferma = XL.DisplayAlerts
    XL.DisplayAlerts = False        ' disabilito
    XL.ActiveWorkbook.SaveAs filename:="C:\LOTUS.wk4", FileFormat:=xlWK4,
CreateBackup:=False, ConflictResolution:=xlLocalSessionChanges
    XL.ActiveWorkbook.Close
    XL.DisplayAlerts = RichiestaConferma    ' reimposto l'opzione originaria
    If Esistente = False Then    ' se excel non era già aperto lo chiudo
        XL.Application.Quit
    End If
    Set XL = Nothing
Ciao Bruno


Pratica finalmente chiusa,
grazie infinite
--
Paolo Bernardi