Vai al contenuto
PLC Forum


tab in ListBox per VB6


filippoB

Messaggi consigliati

wallbash.gif Salve, sto cercando il moldo di inserire alcuni dati prelevati da un foglio excel in una ListBox in 12 colonne con una corretta tabulazione. Ora come ora i dati vengono iseriti ma in modo non ordinato.

Qualcuno può aiutarmi scrivendo un pezzetto di codice?

Link al commento
Condividi su altri siti


Ecco l'estratto del codice che mi fa dannare:

Dim LunghezzaParola As Integer

Dim NumeroSpazi As String

For i = 1 To cont 'con t= numero delle righe del foflio excel

Set FoglioExcel = FileExcel.Worksheets("Planning")

ContenutoCella = ""

For j = 1 To temp 'temp = numero delle colonne del file excel

Set CellaFoglioExcel = FoglioExcel.Cells(i, j)

LunghezzaParola = Len(CellaFoglioExcel)

NumeroSpazi = Space(LarghezzaColonna - LunghezzaParola)

ContenutoCella = ContenutoCella & CellaFoglioExcel & NumeroSpazi

Next j

ListRighe.AddItem ContenutoCella

Next i

'libero ("scarico") le variabili

Set CellaFoglioExcel = Nothing

Set FoglioExcel = Nothing

Il riempimento avviene per righe: leggo la prima colonna della prima riga e poi mi sposto nella seconda colonna della prima riga ecc.... e quando ho finito le colonne passo alla riga successiva.

Ho provato a realizzzare una tabulazione "personale" che però non funziona. tongue.gif

Come vedi, ho inserito una costante LarghezzaColonna che rappresenta quanto voglio che sia larga la colonna della listbox, e in NumeroSpazi metto gli spazi che, aggiunti al dato che prelevo da excel, mi permettono di arrivare alla larghezza della colonna prefissata.

Per esempio se LarghezzaColonna è 10 caratteri e prelevo il dato "ciao", avrò"ciao " (ciao + 6 spazi), e se poi prelevo "pippo" avrò "pippo " (pippo + 5 spazi) e in totale in ContenutoCella avrò: "ciao pippo ".

Purtroppo la riga sottostante nella listbox viene comunque sballata a causa della diffeente lunghezza dei caratteri.

Come fare quindi?

Spero di essermi spiegato e attendo con ansia soluzioni!!! biggrin.gif

Link al commento
Condividi su altri siti

Mmh... no, non penso di aver capito.....

Comunque, a spanne, se nel ciclo for carichi i contenuti di tutte le colonne della riga in una stringa di appoggio e poi copi la stringa in un array di stringhe di lunghezza fissa dovresti ottenere un array, appunto, di tante righe della stessa lunghezza che poi userai per popolare la list box.

E' questo che vuoi ottenere?

Ciao

Link al commento
Condividi su altri siti

  • 2 weeks later...

Non credo che possa funzionare...

Anche se uso un array di stringhe di lunghezza fissa ( e per lunghezza fissa intendo il numero di caratteri di una stringa!!!), la lunghezza effettiva a monitor dipende dal carattere stesso. Per esempio se ho a stringa "mmmm" e la stringa "iiii" è chiaro che, anche se entrambe contengono 4 caratteri, la prima sarà comunque più lunga della seconda!!

Quando le vado ad incolonnare il risultato è quello di avere una tabulazione sbagliata, come si può vedere qui sotto:

mmmm ciao

iiii ciao

Forse ho sbagliato la scelta iniziale di voler scrivere i dati in una list box....

Come posso fare?

Link al commento
Condividi su altri siti

Ma il tuo allora non è un problema di lunghezza di stringhe, ma di occupazione di spazio....

Per ottenere ciò che desideri basta utilizzare un font a larghezza fissa (tipo Courier).

Ma scusa, una curiosità, a cosa ti serve tutto ciò?

Ciao

Link al commento
Condividi su altri siti

FUNZIONA!!!!

worthy.gif

Grazie!

Tutto ciò mi serve per fare vedere quello che c'è nel file excell incolonnato bene senza aprire il file direttamente, perchè mi pare un po' bruttino da vedere...

C'era un modo più furbo per farlo?

Comunque in questi giorni mi sono buttato sull'ultimo problema che riguarda il mio programmino (ammazza, è peggio di un parto!!!)... La stampa!

Certo, le informazioni che sono riuscito a trovare sono piuttosto scarse, e anche su msdn la cosa non è chiarissima...

Qualcuno ha a disposizione della documentazione che possa fare al caso mio?

Stavolta credo che non sarà facile... senzasperanza.gif

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...