Condividi:        

cerca e colora valori contenuti in label

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

cerca e colora valori contenuti in label

Postdi miko » 24/02/13 21:26

salve,
sono alle prese con un ulteriore problema.
in un form ho 1 textbox, il cui testo indica il numero di riga del foglio1,
ed 11 (undici) label numerate da 24 a 44, con numeri pari
quindi label24, label26, label28, ..., label44.
fissato il numero di riga del textbox vorrei cercare e colorare
i valori delle caption delle label, a partire dalla riga successiva
a quella indicata dal textbox per ulteriori 20 righe successive, nel range "G,L".
ad esempio textbox.text = 3 ----> = riga 3 del foglio1
cerco e coloro i valori delle label a partire dalla riga 4 del foglio1 fino alla riga 24
nel range "G4,L24".
se il valore del textbox cambia, ripeto la ricerca per cui
text = 4 ricerco dalla riga 5 all 25 nel range "G5,L25".
ho provato a modificare alcune macro che ho trovato nel forum,
ma è evidente che non sono riuscito ad adattarle al caso in questione
anche perchè contengono linee di codice che ancora non comprendo.
ho pensato di trasferire le caption delle label in altrettante celle
e poi eseguire la ricerca, ma mi sembra un pò laborioso.
grazie buona serata
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Sponsor
 

Re: cerca e colora valori contenuti in label

Postdi Anthony47 » 24/02/13 23:14

Ma quando parli di "caption delle label" tu a che cosa alludi?
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cerca e colora valori contenuti in label

Postdi ricky53 » 25/02/13 00:27

Ciao,
dopo aver letto quanto ti ha chiesto Anthony

puoi chiarire:

1. le tue "11" label sono all'interno della "Form"

2. che legame c'è tra le Label e le Celle perchè non mi è chiaro "... coloro i valori delle label a partire dalla riga 4 del foglio1 fino alla riga 24 ..."

3. cosa intendi con ... "colorare i valori delle caption delle label ..."
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: cerca e colora valori contenuti in label

Postdi miko » 25/02/13 02:02

ciao,
dalla domanda di anthony intuisco che la caption si presta a differenti interpretazioni da quella che conosco;
mi sono accorto, rileggendo ora il mio post, dopo le vostre perplessità, che la descrizione del procedimento crea
confusione.
cercherò di chiarire meglio il mio problema.
in un form ho 1 textbox, il cui valore-text indica il numero di riga del foglio1;
supponiamo che textbox.text = 3, significa che sto considerando la riga 3 del foglio1;
nello stesso form si trovano 11 label con indice pari dalla 24 alla 44;
l'indice si riferisce al name e non al tabindex,
quindi label24, label26, label28, ....label44
ciascuna label riporta un valore:
Codice: Seleziona tutto
Form2.Controls("Label" & intIndex).Caption =215 'per la label24
Form2.Controls("Label" & intIndex).Caption =410 'per la label26
.....
Form2.Controls("Label" & intIndex).Caption =312 'per la label44

ora devo prendere il valore contenuto nella label24, cioè 215, e cercarlo nel range del foglio1.
poichè, ho esaminato la riga 3, la ricerca deve partire dalla riga successiva, in questo caso dalla 4, fino alla riga 24,
quindi in generale la ricerca avviene in 20 righe.
il range di ricerca è quindi "G4,L24".
se in qualche cella di questo range si trova il numero 215, coloro la cella.
considero poi il numero contenuto nella label26, cioè 410, e cerco tale numero nello stesso range;
se viene trovato coloro anche questa cella.
cosi ripeto la stessa ricerca per i numeri riportati dalle rimenenti label.
se cambio riga, ad esempio text = 5, le label conterranno un altro valore;
cerco tali valori a partire dalla riga 6 fino alla 26, nel range "G6,L26" .
così via al variare della riga.
non intendo colorare le label, ma colorare le celle del range che
contengono lo stesso numero riportato dalle label.
nella speranza di aver chiarito i dubbi
vi auguro una buona notte
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: cerca e colora valori contenuti in label

Postdi miko » 25/02/13 16:04

salve,
forse sono riuscito a creare la macro che soddisfa la mia esigenza.
non sarà una macro ben strutturata, ma funziona.
vi è, tuttavia, una linea di codice che non crea errore di sintassi od altro, ma sembra non funzionare.
ciò mi pare strano in quanto la stessa linea di codice viene usata in un altra macro e qui tutto funziona perfettamente.
la macro è la seguente:
Codice: Seleziona tutto
Sub TROVA()
Dim RNG As Range
Dim Controls As Controls
NRow = Form2.Text2.Text
PR = NRow + 1
UR = NRow + 20
Set RNG = Worksheets("Foglio1").Range("G" & PR & ":L" & UR)
RNG.Select 'non necessaria
For intIndex = 24 To 44 Step 2
For Each C In RNG
'If C.Value = Form2.Controls("Label" & intIndex).Caption Then  'linea 1 <<<<<
If C.Value = Form2.Label24.Caption Then  'linea 2 <<<<
'If C.Value = 56 Then  'linea 3 <<<<
C.Interior.ColorIndex = 3
End If
Next C
Next intIndex
Range("A2").Select
End Sub

la linea incriminata è la linea 3, mentre se uso le linee 2 oppure 3 tutto funziona;
non capisco dove si trova il problema, eppure la sintassi
Form2.Controls("Label" & intIndex).Caption
viene usata in un altra macro che funziona.
aspetto vostri suggerimenti
grazie saluti
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: cerca e colora valori contenuti in label

Postdi ricky53 » 25/02/13 16:25

Ciao,
in "... la linea incriminata è la linea 3"
tu volevi dire linea "1"

Con "... ma sembra non funzionare ..." cosa intendi

Quando esegui la macro con il Debug che valori contengono le celle e la label puntate dal "intIndex" ?
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: cerca e colora valori contenuti in label

Postdi miko » 25/02/13 16:39

ciao
ho trovato l'inghippo:
sia per la linea:
Codice: Seleziona tutto
...
NRow = Form2.Text2.Text
....

che per la linea:
Codice: Seleziona tutto
...
'If C.Value = Form2.Controls("Label" & intIndex).Caption Then 
....

i valori di NRow che di Form2.Controls("Label" & intIndex).Caption sono racchiusi tra apici
come segue:
NRow = "3"
Form2.Controls("Label" & intIndex).Caption = "215"
perciò non vengono letti come numeri ma forse come stringhe.
per ottenere i valori numerici senza gli apici è sufficiente sostituire le due linee con le seguenti:
NRow =val ( Form2.Text2.Text)
e
'If C.Value = val (Form2.Controls("Label" & intIndex).Caption) Then
ora funziona;
ma per sicurezza ed eventuali suggerimenti aspetto il vostro parere di esperti
ciao e grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: cerca e colora valori contenuti in label

Postdi ricky53 » 25/02/13 16:56

Ciao,
non avevi inviato questa parte di codice ... altrimenti te lo avrei scritto che non andava bene l'utilizzo dei doppi apici.

Si i valori tra "doppio apice" vengono letti come stringhe e non come numeri.
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: cerca e colora valori contenuti in label

Postdi miko » 25/02/13 20:09

buona sera a tutti,
ciao ricky,
non mi sono accorto che avevi inserito il tuo contributo prima del mio delle 15:39;
vedendo l'ora ci siamo succeduti di qualche minuto.
...non avevi inviato questa parte di codice...

perchè ho avuto "l'intuizione" poco più tardi rispetto al mio post precedente.
correggo l'errore di digitazione contenuto nel mio post delle 15:04, sottolineato da ricky:
la linea che crea problemi è in effetti la linea 1 e non la linea 3.
tornando al caso in questione ho fatto altre prove;
se uso la linea:
Codice: Seleziona tutto
...
If C.Value = Form2.Controls("Label" & intIndex).Caption Then
....

la macro non fornisce errore e non produce risultato per la presenza degli apici;
se uso la linea:
Codice: Seleziona tutto
...
If C.Value = Form2.Label24.Caption Then
...

la macro funziona e produce risultato, nonostante il contenuto della label
è racchiuso anche qui tra i due apici;
eppure non mi sembra cambi di molto la sintassi delle due linee.
qualcuno saprebbe spiegare questa differenza di "comportamento" ?
saluti grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: cerca e colora valori contenuti in label

Postdi Anthony47 » 28/02/13 00:48

Questo problema e' sempre pendente?
Avatar utente
Anthony47
Moderatore
 
Post: 19215
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cerca e colora valori contenuti in label

Postdi miko » 28/02/13 12:16

buongiorno,
ho risolto il problema inserendo in quelle linee che fanno riferimento alla caption delle label il termine VAL,
ad esempio
Codice: Seleziona tutto
If C.Value = val (Form2.Controls("Label" & intIndex).Caption) Then

tutto funziona perfettamente, anche se continuo a non capire la differenza che sottolineavo nel post precedente
...la macro funziona e produce risultato, nonostante il contenuto della label
è racchiuso anche qui tra i due apici;
eppure non mi sembra cambi di molto la sintassi delle due linee....
.
volevo capire per eventuali usi futuri.
per il resto credo che si posso che il problema è risolto.
ciao e grazie
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: cerca e colora valori contenuti in label

Postdi Anthony47 » 28/02/13 15:34

Mah...
Potrebbe essere un problema di conversione automatica di tipo di dati che in un caso funziona (If C.Value = Form2.Label24.Caption Then) e in un' altro no (If C.Value = Form2.Controls("Label" & intIndex).Caption Then).
Per questo e' sempre meglio governare in proprio le conversioni; cioe' se C.Value restituisce un numero (dipende da come sono i tuoi dati) e .Caption restituisce una stringa (come da specifica) allora e' sempre bene usare una funzione di conversione; "Val" fa la conversione "di genere" (tipo di dati) che ti serve.

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

Re: cerca e colora valori contenuti in label

Postdi miko » 28/02/13 21:07

buona sera,
le tue ultime e logiche spiegazioni risolvono ogni mio dubbio.
posso ritenere che anche questo problema è stato risolto.
grazie per i tuoi contributi.
ciao
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44

Re: cerca e colora valori contenuti in label

Postdi Anthony47 » 28/02/13 23:09

Per evitare equivoci io ho fatto solo una congettura ("Potrebbe essere un problema di conversione automatica di tipo etc etc"); mentre la raccomandazione successiva ("e' sempre meglio governare in proprio le conversioni") e' sicuramente valida.

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

Re: cerca e colora valori contenuti in label

Postdi miko » 06/03/13 18:57

salve,
seguendo la tue ultime indicazioni
...("e' sempre meglio governare in proprio le conversioni...

per prova ho creato una macro test stupida;
il procedimento di calcolo non subisce errori inserendo la conversione "Val".
grazie, saluti
windows 10 - office 2013
miko
Utente Senior
 
Post: 521
Iscritto il: 29/12/09 10:44


Torna a Applicazioni Office Windows


Topic correlati a "cerca e colora valori contenuti in label":


Chi c’è in linea

Visitano il forum: Nessuno e 45 ospiti