Previous page | 1 | Next page
Facebook  

Convalida dati.

Last Update: 6/18/2019 4:16 PM
Author
Print | Email Notification    
Post: 18
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/15/2019 5:31 PM
 
Modify
 
Delete
 
Quote

Buon pomeriggio a tutti,
sono alle prese con un quesito "strano", fino ad ora le macro che creavo rispondevano alle mie esigenze.
Ma in un foglio di lavoro (foglio4) ho un intervallo di celle (e37:e39) che ho associato a un elenco con il convalida dati. l'origine dei dati e' in altro foglio Foglio1!$AC1:$AC17. Praticamente e' una lista di importi unitari per redigere una fattura.
Senza usare la macro se nella cella e37 inserisco manualmente un valore non presente nell'intervallo (Foglio1!$AC1:$AC17) l'errore avviso da me creato e':valore non presente in tabella, continuare ? Se volessi confermare io vorrei che tale valore va ad aggiungersi all'intervallo sopramenzionato, ma ovviamente non lo fa.
Allora ho creato la macro, che vi sottoriporto ma qui nascono le rogne.

(Sub Macro_TEST_CONVALIDADATI()
'
' Macro_TEST_CONVALIDADATI Macro
'

'
Range("E37:E39").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertWarning, Operator _
:=xlBetween, Formula1:="=Foglio1!$AC1:$AC17"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = "Avviso Errore"
.InputMessage = ""
.ErrorMessage = "Valore non presente in tabella. inserire?"
.ShowInput = True
.ShowError = True
End With
End Sub

Se si puo', come poter usare il rigo Errormessage e quindi andare ad aggiornare la lista all'intervallo Foglio1!$AC1:$AC17 che ovviamente diventerà Foglio1!$AC1:$AC18.
Grazie mille.
saverio
E' giusto adorare Gesù?Testimoni di Geova Online...92 pt.7/18/2019 11:37 PM by (SimonLeBon)
Stalking nei confronti di minore da parte di bonvysCuba Facile35 pt.7/18/2019 9:20 PM by Miky Seba
Eva HengerIpercaforum28 pt.7/18/2019 5:40 PM by Etrusco
Post: 2,257
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/15/2019 6:34 PM
 
Modify
 
Delete
 
Quote

ciao
ti allego un esempio che fa quello che vuoi, da adattare al tuo file.

Ogni volta che scrivi un dato in D1 (non compreso nell'elenco) ti chiede se lo vuoi aggiungere o meno.

Il foglio si avvale di un nome (formula scarto) assegnato al range D1: "elenco" e di una routine sull'evento change del foglio.

saluti



[Edited by dodo47 6/15/2019 7:00 PM]
Domenico
Win 10 - Excel 2016
Post: 18
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/15/2019 6:55 PM
 
Modify
 
Delete
 
Quote

Grazie mille Dodo, appenA posso lo provo e ti aggiorno.
Grazie mille.
Post: 19
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/17/2019 5:45 PM
 
Modify
 
Delete
 
Quote

Convalida dati ....non va. perche?
Gentilissmo Dodo,
ho provato parecchie volte a far girare la tua routine ma senza successo.
ho sostituito i tuoi valori che facevi girare nel tuo file con i miei:
"$E$37:$E$39" e' l'intervallo delle tre celle "configurate" con il convalida dati e che devono accettare
l'input con la finestrella associata alla serie di dati.
"Foglio1(AC1,AC50) questo e' il range-intervallo a cui e' associato il convalida dati.
Voglio essere sincero. Nel mio foglio di lavoro prima di arrivare a e37-e39, nel foglio si attiva una userform, viene fatta una copia del foglio in un foglio con nome perosnalizzato, viene aggiornata una tabella, e dopo si
arriva alla zona e37-e39.
Spero di non averti fatto AMMATTIRE.
gRAZIE.
Saverio

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Domanda As String
If Target.Cells.Count > 1 Then Exit Sub
If Target.Address = "$E$37:$E$39" Then
If IsEmpty(Target) Then Exit Sub
If WorksheetFunction.CountIf(Range("Foglio1!AC1,Foglio1!AC50"), Target) = 0 Then
Domanda = MsgBox("Aggiungi " & Target & " alla lista", vbYesNo + vbQuestion)
If Domanda = vbYes Then
Range("Foglio1!AC1,Foglio1!AC50").Cells(Range("Foglio1!AC1,Foglio1!AC50").Rows.Count + 1, 1) = Target
Else
Range("E37:E39") = ""
Range("E37:E39").Select
End If
End If
End If
End Sub
Post: 2,264
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/17/2019 6:48 PM
 
Modify
 
Delete
 
Quote

Re: Convalida dati ....non va. perche?
saverio1966, 17/06/2019 17.45:

Gentilissmo Dodo,
ho provato parecchie volte a far girare la tua routine ma senza successo.....



Non ho capito, il mio file non funziona??

saluti



[Edited by dodo47 6/17/2019 6:49 PM]
Domenico
Win 10 - Excel 2016
Post: 20
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/17/2019 7:02 PM
 
Modify
 
Delete
 
Quote

No Dodo, tranquillo.
Il tuo file è perfetto.
ho sostituito le variabili per far funzionare il mio progetto, ma come da mia risposta, non funziona e non capisco Cosa non lo fa funzionare. leggi pure mia spiegazione.
Se si puo far qualcosa , grazie mille.
Post: 2,265
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/17/2019 7:07 PM
 
Modify
 
Delete
 
Quote

Invia una copia del tuo lavoro (senza dati sensibili) e cerchiamo di capire il perchè a te non funziona.
Certo non posso mettermi a ricostruire il tuo file con il rischio di non sapere bene come stanno le cose.

saluti



Domenico
Win 10 - Excel 2016
Post: 21
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/17/2019 7:29 PM
 
Modify
 
Delete
 
Quote

Sarà fatto.
il tempo si rientrare e te lo invio subito.
Grazie per la disponibilità.
sav
Post: 22
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/18/2019 9:23 AM
 
Modify
 
Delete
 
Quote

Buongiorno Dodo, vi allego con la presente il file cartel1-copia.rar da scompattare ; all’avvio del file, si troverà davanti a
un menu pannello di controllo: per avviare la procedura con il “convalida dati”, deve premere il pulsante
colorato di rosso.
Dopo aver premuto (e consultando ovviamente il vba),mentre sotto in secondo piano abbiamo il
foglio5(Foglio_start_riep), in primo piano si troverà davanti una userform: scegliete un nominativo qualsiasi
e confermate la scelta.
Dopo andate sempre avanti confermando con Ok e SI ai msgbox che vi trovate davanti; la procedura si
metterà in standby con il cursore fermo sulla casella e37 che aspetta un input.
Per uscire in maniera “normale” (ricordatevi che quando scegliete un nome dalla form, creerete un foglio
personalizzato.
Per uscire dal foglio “personalizzato “ in alto al foglio c’e’ il testo home che salva il lavoro sin li eseguito e
tora al menu pannello di controllo.
Spero di non avervi “spaventato” e………..grazie mille per l’interessamento.
saverio
Post: 2,266
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/18/2019 9:53 AM
 
Modify
 
Delete
 
Quote

ciao
ti avevo detto che avresti dovuto creare un nome con la formula scarto, relativo al range che contiene i dati da visualizzare nelle celle di convalida (vedi mio file) e puntare tali celle al suddetto nome: non c'è.
Poi, l'istruzione If Target.Address = "$E$37:$E$39" Then è errata perchè presuppone che il "target" sia appunto il range e non la singola cella come necessario. Questo lo correggiamo dopo.

A parte questo, nelle tre celle di convalida E37>E39 rilevo che la prima parte da AC1, la seconda da AC2 e la terza da AC3; è corretto o un copia incolla andato a male??

Inoltre, da quanto capito, tu crei n fogli ognuno dei quali avrà tali celle di convalida.

Ora, per evitare di ripetere l'evento Change su tutti i fogli che crei, se ne potrebbe fare uno solo che vale per tutti, ponendolo in ThisWorkbook. Per farlo ho/hai la necessità di conoscere quali sono i fogli che NON devono essere interessati da tale evento, al fine di escluderli dalla routine.

Se la cosa ti interessa dovresti dirmi i nomi dei fogli da escludere, altrimenti ti trovi tutti i fogli creati con l'evento change (non è carino)

In ultimo (ma non ultimo) ti avevo suggerito di postare un file senza dati sensibili. Ora se la psw che è all'interno del tuo file la utilizzi per cose importanti, ti suggerisco di cambiarla.)

Saluti



[Edited by dodo47 6/18/2019 10:38 AM]
Domenico
Win 10 - Excel 2016
Post: 23
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/18/2019 10:35 AM
 
Modify
 
Delete
 
Quote

Gentile Dodo, grazie x la immediata risposta.
Io sn un pivello in programmazione vba, tutto cio ke vedi è un faidate al 100%'
quesito 1: formula scarto non so farla sn sincero.
quesito 2 le tre celle di e37-e39 DEVONO tutte e tre p artire da ac1_ac17 e sn sorpreso da cio ke mi hai detto.
quesito 3' Sempre xke sn povero d programmazione vba, si è vero ogni foglio che si viene a creare presenterà il ripetersi dell evento worksheet change in ogni foglio personalizzato che vorrei proseguire.
Siccome tu ne sai piu d me e lo stai avvalorando e SE PUOI, se puoi correggermi gli errori che hai sottolineato.
per la pwd tranquillo poi inseriro la userform cn password cn asterischi.
Tranquillo xke il progettino è ancora work in progress.
Grazie in ogni caso. decidi in tutta serenità.
Post: 2,267
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/18/2019 10:39 AM
 
Modify
 
Delete
 
Quote

si, ma non mi hai risposto: quali sono i nomi dei fogli che NON devono avere l'evento change?




Domenico
Win 10 - Excel 2016
Post: 24
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/18/2019 10:41 AM
 
Modify
 
Delete
 
Quote

avevo omesso un quesito.
i fogli da escludere eventualmente dalla convalida sono Foglio3 e foglio1e Foglio2 che si chiama Foglio_inizio che pero ogni mese crea un clone generato da copia foglio(vedi menu pannello di controllo.
ogni mese gestisco turni e presenze su un foglio inizio che viene copiato nel foglio X E porta cn se la formattazione e le formule di foglio inizio.
Scusa se mi sn dilungato.
sav
Post: 2,268
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/18/2019 10:44 AM
 
Modify
 
Delete
 
Quote

facciamo così:
per il momento ti escludo: foglio3 - foglio1 - foglio_inizio - Foglio_start_riep (quest'ultimo mi sembra sia la matrice per la creazione degli altri fogli e non necessita di tale evento); a te interessa che la cosa funzioni sui fogli che man mano crei.

saluti


Domenico
Win 10 - Excel 2016
Post: 25
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/18/2019 11:11 AM
 
Modify
 
Delete
 
Quote

Si Dodo hai ragione. avevo dimenticato. Grazie
Post: 2,269
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/18/2019 11:25 AM
 
Modify
 
Delete
 
Quote

Ciao
1) creato nome "mElenco" con formula:
=SCARTO(Foglio1!$AC$1;0;0;CONTA.VALORI(Foglio1!$AC:$AC))
vedi menu Formule > Gestione nomi.
Tale formula serve a rendere dinamico il range di col AC del foglio1, cioè ogni volta che aggiungerai qualcosa (sia tramite le celle di convalida che manualmente), il range si amplierà automaticamente.

2) Assegnato al range E32>E39 di "Foglio_start_riep" una convalida la cui origine è: =mElenco.
Nota: nelle convalide è stata tolta la spunta a: "Messaggio di errore", altrimenti la segnalazione ti sarebbe stata fatta due volte, una da excel per default e l'altra dall'evento change.
Man mano che creerai i fogli, questi avranno tale convalida per effetto del copia.

3) Eliminata la macro (Worksheet_Change) dal foglio "Foglio_start_riep" ed inserita in ThisWorkbook (Workbook_SheetChange), che fa riferimento a tutti i fogli esclusi quelli segnalati, apportando le dovute variazioni.

Saluti


[Edited by dodo47 6/18/2019 12:16 PM]
Domenico
Win 10 - Excel 2016
Post: 26
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/18/2019 12:46 PM
 
Modify
 
Delete
 
Quote

Dodo. Grazie.
appena torno a casa a pranzo provvedo a vedere tuo lavoro ma non ho dubbi sulla Alta Qualità.
Grazie mille per la tua disponibilità.
ti faccio sapere.
ho in serbo da sistemare x i prox. gg. :
_ routine x determinare nella procedura. calendario, quando
viene pasqua
_ una proc. x importare dati da excel a excel nel foglio1 per le anagrafiche.
_ routine x login e pwd con asterischi sa userform
devo sudare e studiare.
Post: 2,272
Registered in: 4/6/2013
Location: ROMA
Age: 71
Veteran User
2010
OFFLINE
6/18/2019 1:07 PM
 
Modify
 
Delete
 
Quote

per la Pasqua ti consiglio caldamente:

http://www.cpearson.com/excel/easter.aspx

per il resto...alla prossima

saluti



Domenico
Win 10 - Excel 2016
Post: 27
Registered in: 9/19/2018
Age: 53
Junior User
excel 2007
OFFLINE
6/18/2019 4:16 PM
 
Modify
 
Delete
 
Quote

Buon pomeriggio a tutti,
Dodo ho appena visto il tuo lavoro. GRAZIE.
ottimo lavoro.
Ora cerco di andar avanti da solo. se avessi dei punti di domanda di una certa complessità, mi faccio vivo.
GRAZIE ancora.
Admin Thread: | Close | Move | Delete | Modify | Email Notification Previous page | 1 | Next page
New Thread
 | 
Reply
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Home Forum | Bacheca | Album | Users | Search | Log In | Register | Admin
Tutti gli orari sono GMT+01:00. Adesso sono le 4:30 AM. : Printable | Mobile | Regolamento | Privacy
FreeForumZone [v.5.0.0] - Copyright © 2000-2019 FFZ srl - www.freeforumzone.com