Condividi:        

vba2003: collegare textbox a cella

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba2003: collegare textbox a cella

Postdi karug64 » 20/12/11 23:39

Salve a tutti.
In un form ho dei textbox che vorrei collegare a delle celle, cosi' che quando accedo al form si avvalorino col contenuto delle celle e quando vi scrivo, automaticamente, si modifichi la cella collegata.
Ho provato a scrivere su controlsource del textbox
=Dati!B2
ma mi da errore di run-time 380: impossibile impostare la proprieta' controlsource.

Se, invece scrivo da codice textbox1.controlsource = sheets("Dati").range("B2")

non mi modifica alcun valore.

Un aiuto ? Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba2003: collegare textbox a cella

Postdi Anthony47 » 21/12/11 01:20

Non sono certo di aver capito le tue azioni; comunque:
-se vuoi impostare il ControlSource in fase di progettazione della form e del suo textbox, selezioni il TextBox, visualizzi la finestra Proprieta', e nella casella ControlSource scrivi ad esempio "Foglio1!A1" (senza le virgolette)

-se invece vuoi impostare questa proprieta' via codice, ad esempio nella macro di UserForm_Activate, allora otterrai il risultato con qualcosa come
Codice: Seleziona tutto
Me.TextBox1.ControlSource = "Foglio1!A1"   'CON le virgolette
Il valore da fornire infatti e' una "stringa"

Ricorda che questo link e' bidirezionale, quindi se per caso la cella collegata contiene una formula questa viene poi sostituita dal valore nel textbox.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba2003: collegare textbox a cella

Postdi ricky53 » 21/12/11 01:29

Ciao,
prima leggi quanto ti ha scritto Anthony ----->> manca un "=" doveva essere
Codice: Seleziona tutto
=Foglio1!A1

o come occorre a lui
Codice: Seleziona tutto
=Dati!B2


Strano dovrebbe andare bene impostando, nelle proprietà della TextBox, la "ControlSource".
Che versione di excel utilizzi?
Con il 2003 non ho problemi!

Comunque puoi risolvere anche in questo modo:
Codice: Seleziona tutto
' Da inserire in un modulo
Sub Avvia_Form()
    UserForm1.TextBox1.Value = Sheets("DATI").[B2]
    UserForm1.Show
End Sub

' Da inserire nel codice della tua Form
Private Sub CommandButton1_Click()
    Sheets("DATI").[B2] = UserForm1.TextBox1.Value
End Sub


Prova e ...
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: vba2003: collegare textbox a cella

Postdi Anthony47 » 21/12/11 02:29

Ricky, il segno "=" non e' necessario nel contesto, ne' se imposti la proprieta' manualmente ne' se lo fai da codice. XL2003 / 2010.

Puo' essere utile ricordare a karug checon l' uso di ControlSource l' allineamento e' continuo; fatto invece con istruzioni vba che popolano il textbox col valore della cella e viceversa spostano nella cella il contenuto del textbox (il suggerimento di Ricky, vedi sopra) allora l' allineamento avviene solo quando vanno in esecuzione quelle istruzioni.

Ciao a tutti
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba2003: collegare textbox a cella

Postdi ricky53 » 21/12/11 12:31

Ciao Anthony,
con il 2003 ieri sera, senza "=", mi creava i problemi che ho segnalato ... adesso non più.

Come non scritto: l'impostazione del "ControlSource" funziona con e senza "=" !!!
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: vba2003: collegare textbox a cella

Postdi karug64 » 21/12/11 20:22

Grazie risolto.
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: vba2003: collegare textbox a cella

Postdi siron277 » 14/05/14 17:16

Ciao a tutti,
avrei un’ulteriore problema con le userfrom.
Questo foglio :

http://www.filedropper.com/userfrom02

ancora in fase di lavorazione per vedere prima i vari funzionamenti, vorrei creare un programmino per gestirmi i sistemi numerici con il mouse.
Selezionando nella userform i tasti verdi ( sono attivi solo questi ) vengono inseriti nella “RangoA:F” e automaticamente mi sviluppa il sistema “S:U”.
Vorrei visualizzare nell’userform , caselle azzurre i numeri che seleziono in “Rango F” tramite le celle “H1:N1”
Seguendo l’ istruzioni del forum ho provato ad effettuare un campo di collegamento tra le celle”F2=h1”, “F3=I1”,
”F4=J1” …….per inserire il numero giocato e nell”textBox1\ ControlSource “=H1” , “TEXTBox2\ControlSource “=I6”, “TEXTBOX3\ControlSource “=J1”……..
Il problema che una volta cancellato i numeri selezionati “B:B” (tasto Cancella), nella sezione “H1:N1” vengono inseriti i numeri presenti nella UserForn e non riesco far apparire nella textbox i numeri selezionati nella colonna “F”.
E’ possibile collegare le celle “H1:N1” nelle textbox in modo da visualizzare sempre il numero selezionato “F2:F91” ogni volta che cambio i numeri del sistema ? ?
Grazie per l’aiuto
Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38

Re: vba2003: collegare textbox a cella

Postdi Anthony47 » 14/05/14 23:20

Personalmente non ho capito che significano affermazioni quali
vengono inseriti nella “RangoA:F”

Vorrei visualizzare nell’userform , caselle azzurre i numeri che seleziono in “Rango F”

Poi, una volta azzerati B2:B21 in colonna F comparira' #N/D, che si propaga a tutti i "dipendenti", quindi non capisco quali numeri vuoi poter selezionare.
Infine, poiche' sulla form hai 7 textbox non capisco cosa intendi per collegare le celle “H1:N1” nelle textbox in modo da visualizzare sempre il numero selezionato “F2:F91”

Insomma mi dichiaro incapace di intendere, vediamo se qualcun altro interviene altrimenti dovresti provare a rispiegare il funzionamento complessivo del foglio + form e quale e' la domanda.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba2003: collegare textbox a cella

Postdi siron277 » 15/05/14 06:27

Ciao a tutti,
ho semplificato il foglio :
http://www.filedropper.com/userfrom03
e la domdanda è:
“E’ possibile ad ogni cambiamento di un numero in una data cella (in questo caso F2-F3-F4) visualizzarla il risultato nella textbox (A) – textBox (B) – TextBox (C).”
Grazie
Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38

Re: vba2003: collegare textbox a cella

Postdi Anthony47 » 15/05/14 12:14

“E’ possibile ad ogni cambiamento di un numero in una data cella (in questo caso F2-F3-F4) visualizzarla il risultato nella textbox (A) – textBox (B) – TextBox (C).”
Ma questo non lo ottieni gia' impostando ControlSource pari rispettivamente a F2, F3, F4?
Nell' ipotesi che l' uso di ControlSource non fosse idoneo, quali sono le celle che, compilate non da formule (in che modo vengono compilate?), generano i risultati che si vedono in F2:Fxx?

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba2003: collegare textbox a cella

Postdi siron277 » 15/05/14 14:59

Ciao Anthony,
Grazie per la tua pazienza.
Ma questo non lo ottieni gia' impostando ControlSource pari rispettivamente a F2, F3, F4?
Si, ho iniziato questo progetto proprio grazie a questo Topic
Ho fatto come hai indicato e funziona.
Ma non è quello che cercavo .

Nell' ipotesi che l' uso di ControlSource non fosse idoneo, quali sono le celle che, compilate non da formule (in che modo vengono compilate?), generano i risultati che si vedono in F2:Fxx?
Già da questa domanda deduco che non sarà possibile …. Comunque vediamo
Progetto.
Tramite il quadro dei 90 numeri(solo quelli verdi sono attivi) inserite nell’userform (RICHIAMA COMANDI) vengono inserti in un “rango”(A1:F8) che mi crea in “F2:F8” i 7 numeri da giocare e queste celle “F2:F8” saranno collegate a dei schemi per sviluppare sistemi al lotto ad esempi quelli inseriti nel foglio “sistemi”.
Solamente,il problema è anche che dopo aver cancella i numeri con il tasto “ cancella” vengono inseriti i numeri delle Textbox e la formula Rango non funziona.
La domanda :
E possibile collegare una cella con la seguente formula in “ F2 “ =CERCA.VERT(E2;$A$1:$C$75;2;0)” a una TextBox o il numero della cella non deve contenere nessuna formula ma solo numero “intero”?
http://www.filedropper.com/userfrom04
Grazie
Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38

Re: vba2003: collegare textbox a cella

Postdi Anthony47 » 16/05/14 00:05

Hum... mi viene il sospetto che usi il termine "rango" per indicare un "intervallo di celle", ma questa equivalenza non la trovo ne' nei libri di excel nel nei libri di italiano.
Comunque....
ieri Siron ha scritto:la domdanda è:
“E’ possibile ad ogni cambiamento di un numero in una data cella (in questo caso F2-F3-F4) visualizzarla il risultato nella textbox (A) – textBox (B) – TextBox (C).”


oggi Siron ha scritto:La domanda :
E possibile collegare una cella con la seguente formula in “ F2 “ =CERCA.VERT(E2;$A$1:$C$75;2;0)” a una TextBox o il numero della cella non deve contenere nessuna formula ma solo numero “intero”?


Allora aspetto la domanda finale :D prevista per domani? :?:

Oggi, in risposta alla domanda di ieri (risolvibile gia' impostando il ControlSource, ma non ho capito perche' non e' quello che cercavi) dico che se hai una macro che compila le celle che alla fine fanno calcolare i valori in F2, F3, F4, etc (quelle che vuoi inserire nei textbox) allora puoi in coda a quella macro inserire le istruzioni che compilano i textbox, es
Codice: Seleziona tutto
Userform1.TextBox1.Text = Range("F2").Value
Userform1.TextBox2.Text = Range("F3").Value
Userform1.TextBox3.Text = Range("F4").Value
'Etc


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba2003: collegare textbox a cella

Postdi siron277 » 16/05/14 07:15

Buongiorno Anthony :)
Eccoci qui :)
“hai una macro che compila le celle che alla fine fanno calcolare i valori in F2, F3, F4, etc (quelle che vuoi inserire nei textbox)”
Mi dispiace ma nelle celle F2,F3,F4 ho una funzione “Cerca”,

Oggi cerco nel forum di trovare una soluzione inserendo nella cella un valore numerico da 1 a 10 che mi attivi una macro

Grazie e una buona giornata
Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38

Re: vba2003: collegare textbox a cella

Postdi Anthony47 » 16/05/14 10:56

Non ci capiamo...

Cosi', a occhio, mi pare che tutto quell' ambaradan sia fatto per inserire in F2 e sottostanti i valori di col B in ordine decrescente, cosa che puoi fare direttamente con la funzione Grande: In F2
Codice: Seleziona tutto
=SE.ERRORE(GRANDE($B$2:$B$75;RIF.RIGA(A1));"")
poi copia verso il basso.
Questo rende inutile le formule in colonna D (dovrebbe essere una "Serie" del tipo 1, 2, 3, 4, etc. (scrivi 1 in D2; poi selezioni, punti l' angolo in basso a dx della cella e trascini fino a D75; compare un "simbolino" accanto a D75: clicca e scegli "Ricopia serie"). Oppure lo pruoi predere da colonna A (mi pare siano la stessa cosa).
Le formule di colonna E invece di essere un "sorgente" per il calcolo di colonna F possono semplificarsi in una funzione Confronta che USA il valore di colonna F, es in E2
Codice: Seleziona tutto
=SE.ERRORE(CONFRONTA(F2;$B$2:$B$75);0)
poi copia verso il basso.

Ho usato formule con "SE.ERRORE" per evitare visualizzazioni di errori; ma se vuoi vedere gli errori basta lasciare la formula che c' e' "dentro" il Se.Errore.

Quanto al fatto che in F2 e sottostanti ci sia una formula, quello che ho cercato di capire e di farti capire e' che se ci si aggancia al processo che scrive i valori da cui "lla fine" si calcolano F2 e sottostanti, quello stesso processo puo' essere usato per caricare F2 e sottostanti nel Textbox (fatto salvo che ControlSource quel lavoro lo fa di suo, e non ho capito perche' l' uso di ControlSource non va bene). Comunque, seguendo i "precedenti" delle fomule in F2 e sottostanti si arriva subito a $A$1:$B$75, e siccome A1:A75 mi sembra una serie fissa rimane solo $B$2:$B$75: se sai come si compilano queste celle allora possiamo anche sapere come forzare da macro il caricamento di F2 e sottostanti nei Textbox.

Purtroppo che cosa fa il foglio e come ci si lavora lo sai solo tu, io posso solo interagire con te per capire come adattare le cose a quello che puo' fare excel.
Devo anche dire che molti si appassionano cosi' tanto da inventare soluzioni cosi' contorte, talvolta senza la conoscenza tecnica per svilupparle fino alla fine (salvo disegnare bellissime interfaccie colorate ma incomprensibili) da perdercisi dentro; mentre se si fermassero sul foglio di lavoro e sfruttassero all' 1% le normali formule otterrebero prima buoni e soddisfacenti risultati. Non so perche' mi viene in mente proprio ora questa cosa... :D

Spero che in quello che ho scritto trovi uno spunto utilizzabile per il tuo lavoro...

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba2003: collegare textbox a cella

Postdi siron277 » 16/05/14 14:22

Ciao ,
:o :o :o :o :o :o
La funzione Grande ! La funzione Confronta !

Mai ........... viste e mai ...............utilizzate :) :) :)
Stasera si annuncia di gran lavoro :) :) :)
Intanto un GRANDE GRAZIE.

Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38

Re: vba2003: collegare textbox a cella

Postdi siron277 » 17/05/14 17:30

Ciao Anthony,

Devo anche dire che molti si appassionano cosi' tanto da inventare soluzioni cosi' contorte, talvolta senza la conoscenza tecnica per svilupparle fino alla fine (salvo disegnare bellissime interfaccie colorate ma incomprensibili) da perdercisi dentro; mentre se si fermassero sul foglio di lavoro e sfruttassero all' 1% le normali formule otterrebero prima buoni e soddisfacenti risultati
Hai pienamente ragione, a volte ci sentiamo come piccoli cuochi , tanti tegami, tante lavorazioni e alla fine …. un bel tramezzino , ma forse è per questo che excel ti prende cosi. :)
Anche se alla fine molti si appassionano cosi' tanto da inventare soluzioni cosi' contorte, talvolta senza la conoscenza tecnica per svilupparle ma è una piccola soddisfazione di dire “Ce l’ho fatta , e un altro scalino della lunghisssssima scale di apprendimento è fatto” :) :)

Quanto al fatto che in F2 e sottostanti ci sia una formula, quello che ho cercato di capire e di farti capire e' che se ci si aggancia al processo che scrive i valori da cui "lla fine" si calcolano F2 e sottostanti, quello stesso processo puo' essere usato per caricare F2 e sottostanti nel Textbox
Dire che c’ho provato è di poco ……alla fine non mi ricordavo più l’inizio del lavoro .
Ho modificato le colonne come mi hai indicato e nella colonna “F” ho i valori riferiti alla col. B in ordine descescente che l’ inserisco tramite la tastiera numerica creata nel userform.

Ho inserito nelle vari textbox \ControlSource l’indicazione della cella corrispondente :
textbox1 ControlSource “H1”
textbox7 ControlSource “I1”
textbox6 ControlSource “J6”
textbox8 ControlSource “K1”
textbox9 ControlSource “L1”
textbox10 ControlSource “M1”
textbox11 ControlSource “N1”

Ho trovato qualche macro nel forum che ho inserito Worksheet , sono riuscito ad attivare delle macro per modificare dei dati in’ altre celle, ma non sono riuscito nel mio intento.

Ed eccoci alla domanda :
Inserendo i numeri da giocare nella colonna "B, tramite la tastiere creata in userform, si allineano in ordine descrescente nella colonna "F" , come ora posso collegare i primi 7 dati (F2-F3-F4-F5-F6-F7-F8) con le relative 7 textbox sopra descritte mentre inserisco numeri ?
Lo scopo è di avere sempre a disposizione in primo piamo nell'userform i numeri che inserisco, da poter liberamente lavorare nel foglio senza tenere un parte del foglio bloccato per visualizzare i numeri inseriti.

http://www.filedropper.com/userfrom18
Grazie
Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38

Re: vba2003: collegare textbox a cella

Postdi siron277 » 18/05/14 08:24

Buongiorno Anthony,
grazie al tuo intervento :

Quanto al fatto che in F2 e sottostanti ci sia una formula, quello che ho cercato di capire e di farti capire e' che se ci si aggancia al processo che scrive i valori da cui "lla fine" si calcolano F2 e sottostanti, quello stesso processo puo' essere usato per caricare F2 e sottostanti nel Textbox (fatto salvo che ControlSource quel lavoro lo fa di suo, e non ho capito perche' l' uso di ControlSource non va bene).


il problema era anche questo :

Ricorda che questo link e' bidirezionale, quindi se per caso la cella collegata contiene una formula questa viene poi sostituita dal valore nel textbox.

forse l’ho presa un po’ lunga la strada per arrivare alla soluzione ma ci sono riuscito. :) :) :)

Ho creato 7 macro dove ognuna di queste mi copia il valore in “F” e lo incolla nella rispettiva cella collegate alle Textbox (Es. F2 con H1 ; F3 con I1 …….)
Ho inserito in Q1 la funzione “=SE(F2>=1;1;2))” in R1 “=SE(F3>=1;1;2))”;in S1“=SE(F4>=1;1;2))”;
in T1 “=SE(F5>=1;1;2)); in U1 “=SE(F6>=1;1;2))” ; in V1 “=SE(F7>=1;1;2))”; in W1 “=SE(F8>=1;1;2))”
In Worksheet :
Private Sub Worksheet_Calculate()
Application.EnableEvents = False
If Range("q1").Value = 1 Then
Macro1
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Range("r1").Value = 1 Then
Macro2
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Range("s1").Value = 1 Then
Macro3
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Range("t1").Value = 1 Then
Macro4
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Range("u1").Value = 1 Then
Macro5
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Range("v1").Value = 1 Then
Macro6
End If
Application.EnableEvents = True
Application.EnableEvents = False
If Range("w1").Value = 1 Then
Macro7
End If
Application.EnableEvents = True
End Sub

Per conto mio si potrebbe ancora migliorare con meno funzioni………………..torno in "cucina" e chissà cosa salta fuori :P :P
http://www.filedropper.com/userfrom21
Grazie mille
Noris
Win10 + Office 2010 Ita
siron277
Utente Junior
 
Post: 50
Iscritto il: 27/10/13 14:38


Torna a Applicazioni Office Windows


Topic correlati a "vba2003: collegare textbox a cella":


Chi c’è in linea

Visitano il forum: raimea e 43 ospiti