› Excel e gli applicativi Microsoft Office › copia valori su celle filtrate
-
AutoreArticoli
-
intendi questo? .. perdona l'ignoranza..
Microsoft monthview control 6.0 (SPS)
Ecco, precisazione importante 🙂
Il controllo permette di impostare una data (proprietà value) ma non di evidenziarla, almeno così succede a me; potresti posizionare una label a fianco che riceve il valore della data selezionata.
Piccola correzione, non avevo notato che in realtà il giorno cliccato riceve una leggera ombreggiatura, persistente anche se cambi mese (puoi scegliere più giorni consecutivi con la proprietà Multiselect impostata a True). Non so se era questo che ti interessava.
Uno spezzone di codice buttato giù al volo tanto per capire che una data cliccata si può evidenziare rendendola in grassetto:
Private Sub MonthView1_DateClick(ByVal DateClicked As Date) Dim d As Long, dd As Date For d = 1 To 31 dd = DateSerial(MonthView1.Year, MonthView1.Month, d) MonthView1.DayBold(dd) = False Next MonthView1.DayBold(MonthView1.Value) = True End Sub
quindi se non ho capito male, con questo controllo, non riesco a far posizionare il calendario sulla data odierna alla sua apertura? non c'è proprio alcun modo? è brutto che ad aprile ad esempio mi si apra il calendario su gennaio (se lascio nella userform il calendario su gennaio)
a questo punto faccio scrivere all'utente in 1 label 1 data e la recepisco senza calendario mi vien da dire..
se uso il codice che hai scritto vuol dire che l'utente digitando sul calendario il gg, questo si evidenzia?
non riesco a far posizionare il calendario sulla data odierna alla sua apertura?
A me sembra che questo sia già il comportamento di default. Ho installato il controllo indicato, creato una userform, posizionato il controllo, avviato la form e si posiziona sulla data odierna evidenziandola con un cerchietto rosso.
Il pezzo di codice che ho scritto serve solo ad evidenziare meglio il giorno su cui l'utente clicca (perchè credevo che fosse questa la richiesta).
se lascio nella userform il calendario su gennaio
Cosa significa questa frase? Dopo aver utilizzato il programma, chiudendolo magari dopo aver lavorato su gennaio, il giorno dopo riaprendolo te lo ritrovi ancora su gennaio?
ho allegato 2 immagini relative alla visualizzazione in userform del calendario e al lancio della macro.
non so perché a me non si posiziona, al lancio macro, sulla data odierna ma sulla data del calendario visualizzata in ambiente vba.
es: se clicco anche dicembre durante l'esecuzione macro, alla successiva esecuzione, mi mostra il calendario di gennaio, perché in ambiente vba c'è gennaio.
si l'evidenziazione diciamo che è un EXTRA molto comodo.
Allegati:
You must be logged in to view attached files.aggiungo tabella proprietà: ora ho nel campo value 16/04/2019, temo sia questo, ma non so come dirgli un messaggio diverso da 1 data...magari del tipo TODAY
Allegati:
You must be logged in to view attached files.Tagliamo la testa al toro e forziamo la visualizzazione della data odierna, direttamente nell'evento di inizializzazione dell'userform.
Private Sub UserForm_Initialize() CAL = Date End Sub
risolto! ciao!
ciao, tornando alla richiesta iniziale per cui mi hai proposto 1 ottimo codice, ho creato 1 sub di 1 parte del lavoro in programma e quando eseguo la macro, vba mi restituisce errore di runtime 91. Attraverso il debug vba non riesco a scorrere il codice.
di seguito le righe di riferimento. potete aiutarmi a capire? grazie
Sub Copia_OK()
Dim col As Long, Priga As Long
Dim r As Range
Dim rw As Range
col = 33 'col AG
Priga = 15 'riga intestazione tabella
Set r = Range("A" & Priga).CurrentRegion.SpecialCells(xlCellTypeVisible)
For Each rw In r.Rows
If rw.Row > Priga Then
Range(rw.Cells(col), rw.Cells(col)).Value = "OK"
End If
Next
End Submi correggo, in realtà l'errore me lo restituisce in fase di debug; quella sub che ho copiato viene lanciata una volta applicato il filtro <>4399 (codice riportato qui sotto), ma mi sono accorto che l'istruzione per filtrare non viene eseguita! come mai? come faccio a dire fai 1 filtro quando il valore è diverso da 1 valore?
ActiveSheet.Range("$A$15:$AI$15").AutoFilter Field:=14, Criteria1:="<>4399", Operator:= _
xlFilterValuesCiao
Mi scuso per l'invasione
Io proverei cambiando quella riga di codice così
ActiveSheet.Range("$A$15:$AI$15").AutoFilter Field:=14, Criteria1:="<>" & 4399, Operator:=xlFilterValues
Ciao,
Mario
perfetto, funziona, invece questo altro caso, come posso gestirlo? dato che mi da errore..
ary = Array("IT", "DC", "#N/D")
ActiveSheet.Range("$A$15:$AI$15").AutoFilter Field:=34, Criteria1:="<>" & ary, Operator:=xlFilterValuesgrazie, ciao
Alberto
Ciao
Attento a non fare confusione!
Il parametro dei criteri si aspetta una STRINGA.
Quindi se vuoi fare riferimento al contenuto di una cella allora gli devi dare il numero di riga FUORI DALLA STRINGA.
Se invece il valore è fisso ed una stringa devi mettere l'indicazione di diverso ed il valore tutto fra i doppi apici.
Non credo che ti possa trovare "#N/D" e poi non mi sembra che in quel modo possa assumere i valori dell'array se non gli dici di fare un ciclo.
Ciao,
Mario
Se invece il valore è fisso ed una stringa devi mettere l'indicazione di diverso ed il valore tutto fra i doppi apici.
intendi ad es: criteria1:="<>IT" and criteria2:= "<>DC" and criteria3:= etc...
Non credo che ti possa trovare "#N/D" e poi non mi sembra che in quel modo possa assumere i valori dell'array se non gli dici di fare un ciclo.
non ho capito, se devo escludere i valori di errori, come dovrei scrivere il codice
Il parametro dei criteri si aspetta una STRINGA
in ambiente VBA è possibile capire che tipo di valori si aspetta un certo di parametro (una sorta di info....)
ciao Alberto
Criteria1:="<>" & ary
Non puoi inserire tra i criteri un Array. E purtroppo non si può nemmeno inserire i criteri in And tra loro.
Il valore "non disponibile" non può essere filtrato.
-
AutoreArticoli