Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [VB6] Excel e flexgrid

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152

    [VB6] Excel e flexgrid

    Ciao a tutti ragazzi sto cercando di copiare l'intero contenuto di una flexgrid in un foglio di excel al momento ho fatto così


    codice:
          Dim xlObject    As Excel.Application
          Dim xlWB        As Excel.Workbook
          
              Set xlObject = New Excel.Application
              Set xlWB = xlObject.Workbooks.Add
              
              Clipboard.Clear 'Clear the Clipboard
              
              With FlxGd
                  'Select Full Contents (You could also select partial content)
                  .Col = 0               'From first column
                  .Row = 0               'From first Row (header)
                  .ColSel = .cols - 1    'Select all columns
                  .RowSel = .Rows - 1    'Select all rows
                  Clipboard.SetText .Clip 'Send to Clipboard
              End With
              
              With xlObject.ActiveWorkbook.ActiveSheet
                  .Range("A1").Select 'Select Cell A1 (will paste from here, to different cells)
                  .Paste              'Paste clipboard contents
              End With
              
              For x = 1 To 144
                FlxGd.Row = x
                FlxGd.Col = 1
                Range("B" & x).Interior.Color = FlxGd.CellBackColor
              Next x
    
              'Range("A1").Interior.Color = ???
              xlObject.Visible = True
    In questo codice ho due problemi:

    1. Non riesco a colorare le celle del colore di ogni cella della flexgrid, perchè ogni cella varia di colore.

    2. In alcune celle ho effettuato dei merge cioè degli unisci e centra, ma al momento della copia in excel io non ottengo lo stesso risultato, ma bensì la copia del testo in tutte le celle che avevo effettuato il merge. Per farvi capire meglio, ipotizziamo che nella cella A1 e A2 della flex io ho fatto un merge dove c'è scritto "ciao". In excel io avrò nella cella A1 = "ciao" e A2 = "ciao". Mentre io vorrei che il testo sia scritto solo una volta come nella flex.

    Vi sono grato anticipatamente per il vostro aiuto. Se mi sono espresso male in qualche concetto ditemelo pure che vedrò di espriremere meglio la frase grazie

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    La proprietà Color dell'oggetto Interior richiede un valore RGB quindi devi trasformare il valore backcolor della cella nella flexgrid (che se non erro è un Long) nei tre valori RGB da passare alla funzione Rgb(r,g,b).

    Se fai una ricerca in rete troverai sicuramente esempi su questo.


    Per il secondo problema:
    Excel non può 'capire ed interpretare' il funzionamento della flexgrid.
    Per cui, esattamente come stai facnedo per il colore, è necessario un ciclo che legga le proprietà delle celle della flexgrid ed imposti in base alle loro impostazioni le relative celle su Excel.

    Ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152
    Grazie per la risposta, ho cercato su google e ho trovato questa pagina ho modificato il mio codice in questo modo:

    codice:
              For x = 1 To 144
                FlxGd.Row = x
                FlxGd.Col = 1
                
                Color.Value = FlxGd.CellBackColor
                LSet Colors = Color
                
                Range("B" & x).Interior.Color = RGB(Colors.Red, Colors.Green, Colors.Blue)
              Next x
    e ho messo i due tipe all'interno di un modulo cambiando la proprietà da private a public, l'unico problema e che ottengo tutta la colonna nera e non capisco il perchè.


    Per cui, esattamente come stai facnedo per il colore, è necessario un ciclo che legga le proprietà delle celle della flexgrid ed imposti in base alle loro impostazioni le relative celle su Excel.
    Ok ho googlato e ho cercato la il metodo come fare passare a excel il comando unisci e centra ma non trovo il comando niente qualcuno di voi potrebbe postarmi la pagina su msdn ho qualunque altra cosa possa aiutarmi grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152
    Nessuno mi sa aiutare ????

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da gprox
    e ho messo i due tipe all'interno di un modulo cambiando la proprietà da private a public,
    Cosa significa, questa frase?
    Nessuno può capirti...

    Originariamente inviato da gprox
    l'unico problema e che ottengo tutta la colonna nera e non capisco il perchè
    Hai verificato facendo il Debug passo-passo ?
    Di solito è lì che si scopre il perchè qualcosa non funziona.

    Originariamente inviato da gprox
    Ok ho googlato e ho cercato la il metodo come fare passare a excel il comando unisci e centra ma non trovo il comando niente qualcuno di voi potrebbe postarmi la pagina su msdn ho qualunque altra cosa possa aiutarmi grazie
    Non sarebbe il caso di guardare nella Guida a Microsoft Visual Basic di Excel ?
    Lì ci trovi tutto: proprietà, metodi, ecc. e ci sono sempre gli esempi di codice.


    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152
    Guida a Microsoft Visual Basic di Excel
    Be se mi posti il link perchè se cerco sul sito della microsoft trovo solo cose in inglese e che non c'entrano niente


    Hai verificato facendo il Debug passo-passo ? Di solito è lì che si scopre il perchè qualcosa non funziona.
    Facendo il debug ho notato che alcune celle non risultano realmente colorare in backcolor però io vedo il colore, ma in questo caso penso le dovrebbe colorare bianche e no nere

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da gprox
    Be se mi posti il link perchè se cerco sul sito della microsoft trovo solo cose in inglese e che non c'entrano niente
    Guarda che la Guida a Microsoft Visual Basic è DENTRO in Excel!!!

    Quindi se hai creato il riferimento al tuo progetto VB6, ti basta digitare F1 sull'oggetto, proprietà o metodo usato.
    Se non ti funziona, probabilmente non l'hai selezionata quando hai installato Office (per default non viene installata! Furbi alla Microsoft. eh?).
    Verifica così: Apri Excel, apri l'ambiente di progettazione Microsoft Visual Basic, e vedi se riesci accedere alla guida con F1. Se non succede niente, allora non è installata.
    Riavvia il setup di Office ed installala (se vuoi, installa anche quelle per gli altri programmi della suite Office).

    Originariamente inviato da gprox
    Facendo il debug ho notato che alcune celle non risultano realmente colorare in backcolor però io vedo il colore, ma in questo caso penso le dovrebbe colorare bianche e no nere
    A parte che non ho capito niente (puoi riformulare più chiaramente?), pensi male perchè se il valore non esiste allora viene considerato 0 e lo 0 corrisponde proprio il nero! Mentre il bianco è rgb(255,255,255), oppure 16777215 (long) oppure &HFFFFFF.

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152
    La guida di excel si è installata, ma su vb6 nn c'è l'msdn. Cercando sulla guida di excel come faccio a sapere i nomi delle proprietà.

    Tipo se cerco come fare unisci e centra mi dice:

    Avvertenza Nella cella unita risultante verrà collocato solo il dato posto all'estremità superiore sinistra dell'intervallo. Eventuali dati nelle altre celle verranno eliminati.

    Copiare i dati desiderati nella cella superiore sinistra dell'intervallo.
    Selezionare le celle che si desidera unire.
    Per unire le celle di una riga o di una colonna e centrarne il contenuto, fare clic sul pulsante Unisci e centra sulla barra degli strumenti Formattazione.
    Cioè non mi dice il nome della funzione, quindi la domanda è si riferisce alla guida di excel o di vb6 ? Se a quella di excel come cerco il nome della funzione da richiamare da vb6 ?

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Rileggi con più attenzione il mio post.

    Mi sembra che TU ti riferisca alla guida di Excel.
    IO no.

    Ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    152
    IO devo rileggere con più attenzione

    Guarda che la Guida a Microsoft Visual Basic è DENTRO in Excel!!!
    Ma se dice che la guida è dentro excel :berto:

    Se mo ho capito bene questo ultimo post si riferisce all'msdn di vb6 dato che premendo f1 da quello e a me da errore poichè non ce l'ho. Quindi in parole povere che faccio ??

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 © 2025 vBulletin Solutions, Inc. All rights reserved.