Newsgroup: it.comp.lang.visual-basic
Titolo: vb.net clipboard settext e excel

Salve a tutti, ho un progetto in 
vb.net
 che si deve interfacciare ad un 
foglio excel: copio il testo in una casella, lo cerco su un db, acquisisco 
dei dati che metto nella clipboard e lo rendo disponibile ad incollarlo in 
un'altra cella del foglio excel... purtroppo non ho altre soluzioni per 
poter lavorare (tipo aprire il foglio con 
ado.net
).
Fin qui tutto bene, con settext il testo lo inserisco correttamente nella 
clipboard, se faccio l'incolla sul blocco note, mi trovo i dati che voglio, 
ma se faccio l'incolla su excel, mi trovo il testo che avevo copiato... come 
se excel avesse una sua clipboard... Vi è mai successo? Come potrei 
risolvere?
Grazie 1000
D.
 

 ha scritto nel messaggio 
news:4de3...@news.x-privat.org...

Se intendi che non ti mette i dati nelle singole caselle
probabilmente è perchè non sono separati da caratteri TAB.
Altrimenti puoi fare col 'copia come'  dal menu sotto il menu copia
A me succedeva con una listbox con i dati separati solo con gli spazi
e l'excel me li metteva tutti si una singola colonna.
Ho risolto utilizzando la Clip di una griglia


Magari... no no il mio deve stare tutto in una cella ma non lo incolla. Ti 
faccio un esempio:
da excel copio una cella che contiene ABC
da 
vb.net
 ho un timer che intercetta la clipboard, cerca ABC su un db e con:
Clipboard.SetText("Valore di ritorno", TextDataFormat.Text)
lo inserisce nella clipboard.
Torno su excel, premo ctrl+v in una cella vuota e cosa mi incolla? ABC!!!!
mentre come giusta regola mi avrebbe dovuto incollare "Valore di ritorno"
Non capisco....
 

 Non capisco....
E mettere tutto in una stringa e poi fare il SetText  col valore della 
stringa ? 

 stringa ?
guarda, ho provato a fare questa prova semplicissima:
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As 
System.EventArgs) Handles Timer1.Tick
        If Clipboard.ContainsText Then
            Timer1.Stop()
            Clipboard.SetText("PROVA PROVA PROVA")
            'Timer1.Start()
        End If
     end sub
su excel mi continua ad incollare ancora il testo ABC dell'esempio di prima 
invece di "PROVA PROVA PROVA" 

 ha scritto nel messaggio 
news:4de3bca3$1...@news.x-privat.org...

Allora il problema è diverso.....  devi pulire la clipboard.clear
A me succedeva con un button che faceva il copia di una griglia
mettevo Clipboard.SetText   nell'evento click     e non mi
cancellava la clip precedente  ..  Per risolvere  mettevo
clipboard.clear()  nell'evento mousedown.
E tutto andava a posto 

"Dal Monte"  ha scritto nel messaggio news:4de3bca3$1...@news.x-privat.org...



******************************************************
Domanda stupida la mia.
Ma utilizzare qualcosa tipo:
FoglioX.Range(Riferimento).Value = tuaStringa
Cioè passi a tuaStringa(o quello che è) il valore recuperato dal db
e poi utilizzi la proprietà value della cella.
Forse non ho capito cosa stai cercando di fare.
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
http://www.maurogsc.eu/
 

"Mauro Gamberini" <maurogsc...@RIMUOVEREaliceposta.it> ha scritto nel 
messaggio news:is0f03$cif$1...@dont-email.me...

ci avevo pensato anche io, il problema è che non so in che posizione debbano 
andare i dati... in aluni fogli è la colonna C, in altri D, in altri F 
etc... è una soluzione tampone per evitare all'operatrice di andarsi a 
cercare i dati a mano... recupero dal foglio excel la chiave di un ordine 
che acquisisto tramite il comando copia e le rendo disponibile l'esito 
facendo un copia nella cella che necessita


 ha scritto nel messaggio 
news:is0et5$bqq$1...@dont-email.me...

Domani provo e ti faccio sapere se è quello il problema... E' strano che 
debba pulire la clipboard, come logica mi fa che settando un nuovo testo 
cancello il vecchio, ma magari non è cosi'...
grazie 1000 massimo

 ha scritto nel messaggio 
news:4de3eb40$1...@news.x-privat.org...

Funzionava cosi'  fino al Windows Millenium.
Lo stesso programma che gira su XP sp 2  e windows millemiun
dava questo tipo di problema.
Comunque io l'ho risolto cosi'......
Ahhh   poi non mettere nella stessa routine
prima il Clear  e poi il settext......


non riesco a fare la settext se prima faccio un gettext... non capisco il 
motivo... a voi è mai capitato? mi potete provare a fare semplicemente 
questa prova:
nell'evento click di un button:
Dim pippo as string
pippo=clipboard.gettext()
clipboard.settext("CIAO CIAO CIAO")
poi ctrl+c in una casella con del testo in excel, cliccate il button e poi 
ctrl+v in un'altra casella e mi dite se vi incolla "CIAO CIAO CIAO"?
grazie 1000 

 ha scritto nel messaggio 
news:4de5e07b$1...@news.x-privat.org...

Prova a mettere un clipboard.clear  ...magari nella funzione keypress 

 nella funzione mousedown del button 

 ha scritto nel messaggio 
news:is4ttj$d29$1...@dont-email.me...

Fatto, ma non cambia nulla....
hai provato il codice che ho postato se ti funziona?
grazie 1000 



il tuo codice non funziona 
con la modifica di massimo sì
Dim pippo As String
Clipboard.Clear
pippo = Clipboard.GetText()
Clipboard.SetText ("CIAO CIAO CIAO")
saluti


Si cosi' funziona anche a me 

 ha scritto nel messaggio 
news:is5kna$srh$1...@dont-email.me...

in effetti cosi' mi funziona pure a me (io mettevo il .clear prima del 
settex) ma se inserisco il codice all'interno del timer1_tick non mi va... 
sicuramente c'ho un errore da un altra parte del codice! Maledetta 
clipboard, con vb6 c'era l'evento quando si faceva un ctrl+c ed era tutto 
piu' semplice!!!!1!
grazie a tutti e buona festa della repubblica
d. 

 ha scritto nel messaggio 
news:4de69d1a$1...@news.x-privat.org...

Ciaooooo   ma non eravamo un regime :-))))