Newsgroup: it.comp.lang.visual-basic
Titolo: copiare il contenuto di una grid ctrl in clipboard

Ciao a tutti sono nuovo di Visual Basic e di programmazione in genere.
Vorrei sapere come fare in VB 4 ad incollare il contenuto delle celle
selezionate di una grid control negli appunti.
Ho provato con un ciclo for ... next  a copiare il valore
griglia.Text, ma quando
vado ad incollare in clipbord con Clipboard.SetText, ad esempio in
Word, riesco ad incollare solo l'ultima cella della selezione.
Grazie a quanti vorranno aiutarmi.
Antonio T.
mailto :  
noto...@iol.it

Word, riesco ad incollare solo l'ultima cella della selezione.
Il problema non è copiare un testo, ma soprattutto incollarlo!
Prova questo, lo usavo per VB3 ma dovrebbe funzionare lo stesso.
Art.
====================================================
'------------Taglia----------------------------
'---------------Copia le celle selezionate nella Clipboard------
'---------------poi cancella il contenuto delle celle-----------
            Clipboard.SetText Grid1.Clip
'---------------Cancella le celle selezionate-------------------
            Grid1.FillStyle = 1
            Grid1.Text = ""
            Grid1.FillStyle = 0
======================================================
 '------------Copia-------------------------
'-----------Copia le celle selezionate nella Clipboard
            Clipboard.SetText Grid1.Clip
===========================================================
'------------Incolla-------------------------
'-----------Copia il contenuto della clipboard sulla griglia
            Dim Text$, Text2$, index, values, tempCol
            Dim saveRow, saveCol, saveRow2, saveCol2
'-----------salva le coordinate della zona corrente-----
            saveRow = Grid1.SelStartRow
            saveCol = Grid1.SelStartCol
            saveRow2 = Grid1.SelEndRow
            saveCol2 = Grid1.SelEndCol
'-----------inizia ad inserire i valori dalla riga corrente-----
            Grid1.SelStartRow = Grid1.Row
            Grid1.SelStartCol = Grid1.Col
            Text$ = Clipboard.GetText()
            Do While Len(Text$)
'---------------estrai una riga di dati------------------------
                index = InStr(Text$ + Chr$(13), Chr$(13))
                Text2$ = Left$(Text$, index)
                Text$ = Mid$(Text$, index + 1)
'---------------conta il numero di valori nella riga-----------
                index = 0
                values = 0
                Do
                    values = values + 1
                    index = InStr(index + 1, Text2$, Chr$(9))
                Loop While index
'---------------modifica la zona evidenziata e usa la proprietà-----
'---------------Clip per assegnare la riga alla zona----------------
                Grid1.SelEndRow = Grid1.SelStartRow
                tempCol = Grid1.SelStartCol + values - 1
                If tempCol > Grid1.Cols - 1 Then tempCol = Grid1.Cols - 1
                Grid1.SelEndCol = tempCol
                Grid1.Clip = Text2$
'---------------passa alla riga seguente per la prossima iterazione---
'---------------ma non andare oltre il limite consentito---------------
                If Grid1.SelStartRow = Grid1.Rows - 1 Then Exit Do
                Grid1.SelStartRow = Grid1.SelStartRow + 1
            Loop
'-----------ripristina la zona evidenziata------------------------
            Grid1.SelStartRow = saveRow
            Grid1.SelStartCol = saveCol
            Grid1.SelEndRow = saveRow2
            Grid1.SelEndCol = saveCol2
============================================================