Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104

    VB6 ed excel : cambiare il formato default delle celle

    salve,

    è possibile cambiare il formato di default delle celle? E' impostato a general, vorrei impostarlo a testo.

    Quando apro un file, qualsiasi esso sia (nuovo xls, .txt, .dif etc) vorrei che i campi delle celle fossero tutte di testo e non general.

    Esiste un comando, da vb (ma anche un opzione di excel) che mi permette di modificare questo default?

    il problema è il seguente:
    Quando apro un file succede che mi toglie gli 0 davanti ai dati formati da sole cifre. Questo nella gestione di codici non va bene. Ovviamente nella procedura di apertura sta il modo di impostare le colonne col formato adeguato, ma chiede in input una matrice. I comandi vb li richiamo con il linguaggio PROGRESS che non mi permette di creare una matrice compatibile da passare come input.

    Quindi ho pensato che l'unica soluzione sia tentare di cambiare questo default.




  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Da Excel è più veloce, e mi pare basti fare così:

    - selezionare "tutte le celle" ovvero clic sul quadratino in alto a sinistra,
    - clic destro (si apre il menu)
    - clic su: Formato Celle...
    - impostare: Testo


    Da VB6 dovresti usare l'automazione, non mi pare proprio il caso.


  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104
    ecco.. il file non lo apro mica a mano.
    mi sono spiegato male.

    lancio un application.open tramite il linguaggio progress.
    Non ho modo di farlo da excel foglio per foglio.

    quindi chiedo se è possibile farlo con un comando sempre da vb oppure a mano, andando a modificare permanentemente il default di excel secondo il quale le celle sono di tipo general

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da YuZzoLo
    ecco.. il file non lo apro mica a mano.
    mi sono spiegato male.
    In effetti...

    Originariamente inviato da YuZzoLo
    lancio un application.open tramite il linguaggio progress.
    progress???


    Originariamente inviato da YuZzoLo
    quindi chiedo se è possibile farlo con un comando sempre da vb oppure a mano, andando a modificare permanentemente il default di excel secondo il quale le celle sono di tipo general
    Non capisco...
    Forse è il caso che ti spieghi meglio.
    Se lanci dal linguaggio progress, cosa c'entra VB?
    Come possono intergire i due linguaggi?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    104
    ecco, entrerò nei dettagli allora


    Sono un programmatore e programmo in PROGRESS. Con questo linguaggio lavoriamo su un ERP (enterprice resurce planning), quindi interazioni con DB: stampe, viste, maschere, etx.

    Devo, da progress, aprire un file .txt o .dif mantenendo l'integrità dei dati. Lavorando con codici prodotto, codici clienti , codici fornitori e decine di codici succede che
    0000000123 è diverso da 123.

    Da pogress è possibile gestire programmi esterni quali excel con degli handle (puntatori).
    Tramite un puntatore ad un applicazione, in questo caso un foglio di lavoro, riesco a richiamarci i metodi vb: open, close, save, saveas, autofit, select Etx.

    Tutto quello che non è richiamabile sull'oggetto che gestisco però non posso farlo: dichiarazioni di variabili , creazione di macro e simili.


    Per aprire un file di testo o un .dif esiste il metodo .OpenText. Questo metodo mi permette di specificare tramite una matrice bidimensionale di due colonne (riga, tipo di dato) quali valori debbano avere le colonne in apertura file.

    Se non specifico il formato delle colonne in apertura le celle hanno formato "general".
    Questo maledetto formato mi converte i codici formati da sole cifre in numeri.
    Quindi tornando all'esempio 000000123 diventa 123


    Come detto prima il metodo opentext sarebbe la soluzione ma con progress non riesco a passare come parametro una matrice compatibile con quella che chiede vb.


    Devo aggirare la cosa.

    Quello che chiedo , dunque, è:

    Esiste un comando del tipo

    Application.defaultformatcell = testo ??


    oppure, se ne siete a conoscenza, è possibile modificare tale impostazione dalle opzioni di Excel (in modo manuale) del tipo "vai su opzioni e spunta"??

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Allora VB6 non c'entra nulla.
    Quando tu parli di vb probabilmente intendi VBA ovvero Visual Basic for Applications.

    Non mi pare vi sia un'opzione in Excel che imposta il formato delle celle, ma potresti creare una macro che esegua questo compito.
    Con Excel 2007 ho registrato questa macro che imposta il formate delle celle a testo:

    codice:
    Sub Macro1()
    '
    ' Macro1 Macro
    '
        Cells.Select
        Selection.NumberFormat = "@"
    End Sub
    Come vedi le istruzioni sono solo 2.
    Se puoi usare VBA allora probabilmente puoi usare l'automazione.
    Se così allora potreti usare CreateObject() per creare un'oggetto Excel.Application
    ed eseguire le 2 istruzioni su quello.

    Verifica prima se puoi usare CrateObject() poi ne riparliamo.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.