Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Data validation non si copia quando aggiungo nuova riga alla tabella

Ultimo Aggiornamento: 13/05/2020 03:52
Post: 43
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
05/05/2020 17:37

Ciao a tutti,
ho un problema con una tabella e data validation.
Premesso che una soluzione sarebbe tenere la validation sull'intera colonna dello sheet, ma non mi piace e volevo restringerla quindi alla sola dimensione della tabella.

Ho due esempi dove trovo comportamento anomalo (e ovviamente a me non va dove mi serve).
Se inserisco una riga nuova nella tabella Sheet CARICO non riporta la data validation, se la inserisco nella tabella dello sheet PRODOTTI invece la riporta.

A me sembra che siano identiche le regole di validazione, unica differenza lo sheet.

Qualcuno sa aiutarmi per cortesia?
grazie
Erica
05/05/2020 19:59

>>>data validation ???
Si chiama Convalida Dati

Se ho capito nel Foglio(carico), vai in Sviluppo (modalità progettazione) e premilo. Mouse destro in cella B3 (una Casella Combinata Activex) ed elimina. Adesso elimina riga14
[Modificato da ABCDEF@Excel 05/05/2020 23:33]
Post: 938
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
05/05/2020 22:25

@ABCDEF@Excel, volevo farti presente che Excel nasce Inglese 😮. E' solo un problema commerciale che è stato tradotto (in questo modo bizzarro ed in particolare cambiando il separatore da , a ; nelle formule). Dato che sono partito da Lotus123, quando ho conosciuto Excel ho creduto che la traduzione fosse necessaria per gli 'impediti' monoglottici.

@etabetasub, hai delle Convalide diverse in quella stessa colonna che probabilmente mette in crisi gli automatismi. Cancella nuovamente le Convalide dell'intera colonna nella tabella e rifai l'inserimento.
[Modificato da rollis13 05/05/2020 22:32]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 43
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
05/05/2020 23:53

Ciao Rollis,
eccoci! allora, ho riprovato a ri-settare data validation e in effetti mi diceva che c'erano regole diverse (e forse ho capito da dove vengono - lo spiego dopo).

Comunque, se tengo la combobox inattiva (cioè metto exit sub nella routine Worksheet_SelectionChange), le righe nuove si inseriscono correttamente con validation.

Ma a me serve con la combo.

Se riattivo la combo (commentando Exit Sub nella SelectionChange), quando inserisco una riga nuova la convalida non viene riportata più.

Altra stranezza: ho notato che, se uso la combobox sulle celle colnna B - la convalida viene modificata, si perde il flag in-cell dropdown (ed è questo che poi segnalava discrepanza tra le regole della colonna B).

Non so se sia questo il motivo per cui poi, all'inserimento della nuova riga non viene riportano nulla di validation.

Allego nuova versione, cove validation è settata correttamento nello sheet CARICO - colonna B - la versione allegata ha il codice della combo disattivato.

Attendo fiduciosa suggerimenti da questo super forum :)
grazie e buona serata
Erica
06/05/2020 00:14

Come detto c'è una Casella Combinata Activex (ultimo allegato in B13)
=INCORPORA("Forms.ComboBox.1";"") da eliminare
Post: 44
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
06/05/2020 08:54

Ciao ABCDEF,
non capisco, a me serve che resti la combobox, se la elimino mi resta solo il menu a tendina, no?
ciao

Post: 939
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
06/05/2020 09:35

Probabilmente ABCDEF@Excel non ha seguito la tua precedente discussione visto che non l'hai menzionata nel primo post e nella macro allegata avevi lasciato inattive le macro che gestiscono la ComboBox.

A me funziona così: reimposto la Convalida su tutte le celle della colonna della tabella però senza selezionare l'opzione 'Elenco in cella' che nel contesto, in effetti, non serve.
Però si crea una nuova criticità, se la Convalida è presente nell'ultima colonna non si creano nuove righe in automatico 😣.
[Modificato da rollis13 06/05/2020 10:01]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
06/05/2020 14:28

Ciao rollis13
Ognuno può scrivere scrivere/fare quello che desidera.
Premesso che non mi piacciono le (Activex), desidero far notare che alcune volte questo files si è chiuso da solo (non ricordo bene se avevo tolto Exit Sub, oppure smanettando sulla Casella Combinata. Oggi (sul mio files), si è chiuso appena ho selezionato l'ultima riga (bianca).

A riguardo l'ultima riga (bianca), penso serva per immettere nuove voci nella Convalida Dati. Credo ci siano altre strade, userform di certo mà devo rivedere i mie appunti per capire se esistono altre possibilità.

Ps. Di norma, cerco di semplificare al massimo Excel, per evitare files pesanti o malfunzionanti
Post: 2.781
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
06/05/2020 17:47

@Etabetasub
ciao

la domanda è la stessa dell'altro post:

perchè non utilizzi solo la combo??

saluti




Domenico
Win 10 - Excel 2016
Post: 45
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
07/05/2020 10:04

Ciao a tutti,
ringrazio per le risposte, ma a me non funziona proprio.

E rispondo anche a Domenico: hai sicuramente ragione tu, ma io sono terrorizzata dal ricominciare perchè le mie prime esperienze con le macro excel son partite nelle pause lavorative Pasquali e proseguono nel poco tempo libero che ho di giorno, oppure di notte, molta ignoranza, poco tempo e il tutto molto frammentato :)

Il codice che ho trovato non saprei adattarlo facilmente togliendo la condizione della data validation, devo avere tempo per cercare in internet e sistemare.

Detto questo colgo il tuo suggerimento e proverò ad adattarla anche perchè qui sono arrivata a un punto morto, non fa quello che io voglio e cioè che faccia all'inserimento della riga nuova con combo, sen che io debba settare la condizione su tutta la colonna...

grazie a tutti e buona giornata
ciao
erica

Post: 941
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
07/05/2020 10:41

Dato che spesso 'verifico' quello che propongo provvedo ad allegare il tuo file con il foglio "CARICO" che per me funziona con la limitazione del suo uso su un eventuale ultima colonna (non è il nostro caso).
Però mi viene un dubbio; immagino che ti è chiaro che per creare nuove righe nelle Tabelle bisogna premere il tasto 'Tab' quando si è sull'ultima cella in basso a destra.

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
07/05/2020 11:46

Ciao rollis13
Funziona OK. Pensavo che l'ultima riga bianca fosse per aggiungere un'altro dato...EDIT (non funziona)

Mi aspetto un files da dodo47, io avrei solo una Userform che aggiorna una convalida dati
[Modificato da ABCDEF@Excel 07/05/2020 12:23]
Post: 2.783
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
07/05/2020 11:54

Ciao
io posso pure sottoporre una soluzione con solo ComboBox (non mi sembra così difficile in quanto è quasi tutto fatto).

Però, se non ricordo male, il file iniziale caricava nella combo un range se si stava in colonna B ed un altro range se si stava in col. E.

Ora prima di girare a vuoto, sarebbe oppurtuno che etabetasub fornisse la versione definitiva del file sul quale apportare quelle poche modifiche necessarie (basta prendere la ListFillRange voluta magari da un determinato "named" range al posto che dalla convalida..

saluti




[Modificato da dodo47 07/05/2020 12:07]
Domenico
Win 10 - Excel 2016
Post: 942
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
07/05/2020 14:39

@ABCDEF@Excel, ti dispiacerebbe specificare meglio cosa intendi esattamente per "(non funziona)" perché io ho atteso 24 ore di prove e contro prove in tutte le salse e a tutte le ore prima di pubblicare qualcosa di tangibile.

Comunque, non manco di appoggiare l'insistenza di dodo47 per l'uso diretto della ComboBox visto che lungo il percorso sembra che sia venuto a mancare la necessità gestire più colonne con fonti di validazione diverse motivo dell'accoppiata Convalida/ComboBox.

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 46
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
07/05/2020 15:42

Ciao a tutti voi e grazie grazie grazie.

Non sono riuscita a riportare nel mio foglio -che allego- la modifica come fatta da Rollis, che lo farò stasera con un po' di tempo.

Confermo che mi serve una sola Combobx, la colonna E la gestisco con un semplice menu a tendina (data validation con pochi item).

Grazie a tutti e buon pomeriggio, devo tornare al mio lavoro ahime, ricompaio stasera.

ciao
Erica
Post: 47
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
07/05/2020 22:26

Ciao Rollis,
ho scoperto che nel mio codice c'erano due differenze rispetto al tuo (che funzionava anche a me).

1 - una riga che nel tuo non c'era:

If Target.Validation.Type = 3 Then
Target.Validation.InCellDropdown = False

->>>>Cancel = True

xStr = Target.Validation.Formula1
xStr = Right(xStr, Len(xStr) - 1)

->>>>Cancel = True. Se la commento la combobox mi si ricopia anche sulla riga che inserisco.

non co come ci sia finita... e soprattutto spero che non serva :)

2 - Option Explicit


ciao e grazie, almeno ho capito perchè a me non andava
erica
[Modificato da etabetasub 07/05/2020 22:30]
Post: 944
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
07/05/2020 23:13

Ah ecco, come avrai notato io uso mettere sempre Option Explicit in modo da verificare la correttezza quanto meno delle variabili inserite e quel Cancel = True era un rimasuglio della macro in versione originale; doveva servire per un altro tipo di Evento.
Non vorrei sbagliarmi ma tutte le prove fin quasi alla fine le avevo fatte senza Option Explicit, per essere 'alla pari', e quel Cancel = True mi sembrava "trasparente" nel contesto della macro.


PS. ho appena rifatto diverse prove, confermo senza il controllo effettuato da Option Explicit che la evidenzia come variabile non dichiarata, la presenza della variabile (inutile) non ha dato fastidio.
Tant'è, mi adeguo.
[Modificato da rollis13 07/05/2020 23:36]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 48
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
07/05/2020 23:53

Rollis ciao,
non è quel Cancel = true serviva a far funzionare il TAB per uscire dalla combo? ora non va più...
ciao
Post: 945
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
08/05/2020 00:18

No, per il Tab c'è l'apposita macro "TempCombo_KeyDown" a cui ti sei scordata di togliere l' Exit Sub.

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
08/05/2020 01:03

Scusami rollis13
Quel >>>EDIT (non funziona)
Mi riferivo solo al fatto, che se vado sulla cella bianca, non mi permette di scrivere nulla. Non saprei forse il mio PC è diventato obsoleto (pure io, se lo scopo finale sia d'aggiungere una voce alla convalida dati)

>>>gestire più colonne con fonti di validazione diverse
Questo non lo sapevo

Ps. Esiste una formula stramba che se.errore(...(se.errore(...(se.errore(...))) riunisce detertinati valori in un'area. Da varie colonne
[Modificato da ABCDEF@Excel 08/05/2020 02:27]
Post: 49
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
11/05/2020 15:34

Ciao a tutti e buona settimana.
lentamente, molto lentamente procedo, ma ho cortesemente bisogno del vostro aiuto.


Sto cercando di sistemare il foglio SCARICO usando una sola combobox, come suggeritomi, e cioè solo per la colonna B (colonna E basta data validation normale).

Nella Sub Worksheet_SelectionChange(ByVal Target As Range) - ho inserito il codice:

SHEET SCARICO -
If Not Intersect(Target, ActiveSheet.ListObjects("T_Scarico").ListColumns(2).DataBodyRange) Is Nothing Then

e facendo prove con altro codice sembra ok.

Ma non so come sistemare il resto del codice... ho capito che devo assegnare Prodotti_lista alla combobox, ma non sono in grado.
Mi pare che vada tolto tutto il blocco:
If Target.Validation.Type = 3 Then -> fato che ora uso una condizione diversa, ma non ho idea come trattare la xcombobox.

Qualcuno riesce ad aiutarmi per cortesia?
Riallego l'ultima versione, se qualche anima pia di qusto grandioso forum volesse dargli un occhio - sheet SCARICO :)
grazie
ciao
erica


Post: 2.807
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
11/05/2020 20:11

Ciao
meno male che ti sei decisa ad usare solo la combo....😉

Ti dico le modifiche apportate:

- ho eliminato il nome: Prodotti_Lista in quanto era uguale a Prodotti_Nome.
- ho variato i due eventi SelectionChange dei due fogli.
- ho eliminato le convalide delle col. B dei fogli Carico e Scarico
- ho eliminato il ListFillRange alimentato dalle macro ed attivato il FillRange nelle proprietà delle combo.

Fai le tue prove.

saluti




[Modificato da dodo47 11/05/2020 20:12]
Domenico
Win 10 - Excel 2016
Post: 50
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
11/05/2020 23:32

Grazie Domenico!
ho impostato la data validation sulla colonna E e sto facendo delle prove e mi pare un bel gioiellino :)
GRAZIE!

Nota: Prodotti_Lista e Prodotti_Nome erano uguali, verissimo, ma avevo sperimentato (e poi trovato risposta da qualceh parte) che la combobox (e forse anceh la data validation ma non sono sicura) non avrebbe accettato Prodotti_Nome, andava creato un secondo nome che lo referenziava... cmq va benissimo cosi adesso.

Ultimo parere tuo se puoi per cortesia: se io volessi, al termine della riga fare in modo che " se premo ENTER e sono in colonna E -> active cell (riga successiva, colonna 1)", che evento potrei usare? Avrei trovato il codice in giro, ma non so a cosa legarlo

grazie diecimila!
ciao
Erica
12/05/2020 00:09

Scusate se intervengo

@dodo47
Volevo solo dirTi cosa succede sul mio PC...
Nove volte su 10, clicco in colonna B, visualizzo la combo OK.
Adesso vado sull'ascensore della Combo "tengo premuto il sinistro per scendere" ed il files si chiude.

Non sò bene in quale caso, per tre volte mi è apparso il Msg
(-2147417848-Metodo 'DropDown' dell'oggetto 'IMdcCombo' non riuscito)
Dopo di questo, clicco altrove mà non vedo più la combo.

Ps. Se riapro il files(recuperato).xlsb sembra funzionare...
[Modificato da ABCDEF@Excel 12/05/2020 00:15]
Post: 2.808
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
12/05/2020 09:47

@ABC.....

Ti suggerisco di scaricare ed eseguire un bat di Mauro Gamberini (MCS) che trovi qui:

https://answers.microsoft.com/it-it/office/forum/office_2013_release-excel/in-excel-i-controlli-activix-funzionanti-in-office/01a37d0c-694a-4d81-ab97-c0c62f1837ec

....e guarda caso il .bat si chiama abc 😉

saluti




[Modificato da dodo47 12/05/2020 09:48]
Domenico
Win 10 - Excel 2016
Post: 2.809
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
12/05/2020 10:48

Re:
etabetasub, 11/05/2020 23:32:

.....Ultimo parere tuo se puoi per cortesia: se io volessi, al termine della riga fare in modo che " se premo ENTER e sono in colonna E -> active cell (riga successiva, colonna 1)", che evento potrei usare? Avrei trovato il codice in giro, ma non so a cosa legarlo...



Siamo pigri eh?? 😄

Presumo tu stia parlando del foglio Carico:

Sempre nel vbe del foglio aggiungi:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ur As Long
ur = ActiveSheet.ListObjects("T_Carico").Range.Rows.Count
If Target.Count > 1 Then Exit Sub
On Error GoTo errori
If Not Intersect(Target, Range("E2:E" & ur)) Is Nothing Then
    Cells(Target.Row + 1, 1).Select
End If
Exit Sub
errori:
MsgBox Err.Number & " - " & Err.Description
End Sub

saluti




Domenico
Win 10 - Excel 2016
Post: 51
Registrato il: 02/04/2020
Età: 55
Utente Junior
Office 365
OFFLINE
12/05/2020 14:19

Grazie Domenico, :)

per ora copio il codice e appena posso lo provo.

Certo, mi sto impigrendo sempre di più! e non contenta, dato che l'appetito viene mangiando, mi è venuta un'altra idea :) .
Stasera proverò a ricercare il codice che avevo visto - mi pare in questo forum - affinche la combo mostrasse solo le parole che contenevano il testo digitato dall'utente... c'era del codice, ma non l'ho salvato, lo ricercherò stasera.


Grazie ancora e buona giornata a tutti

Erica
Post: 2.811
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
12/05/2020 17:12

Consiglio personale.....lascia perdere😉
(poi vedi tu)

saluti




[Modificato da dodo47 12/05/2020 17:12]
Domenico
Win 10 - Excel 2016
13/05/2020 03:52

W10 con ABC.BAT, mi lascia un files in \Roaming\microsoft\forms\... Anche se lo elimino fisicamente, il files non mi funziona. Comunque per divertimento ho riprodotto il files senza gli Activex (non sono un esperto).
Premesso che non capito perchè cliccando in B "ci sia ancora la combo", cosa serve per cambiare dati già immessi? Funzionamento dell'allegato...
PRODOTTI - Basta scrivere sull'ultima riga B (verifica ed aggiunge riga se OK)
CARICO - Togliendo/azzerando il QT, viene eliminata la riga (modifica = Si)
CARICO - Posizionandosi sull'ultima riga in B, apre Userform (Qt + Prodotto)
CARICO - Ora inserendo il FORNITORE, si aggiunge una riga
SCARICO - Posizionandosi sull'ultima riga in B, apre Userform (Qt + Prodotto)
Ps. Esiste un tasto, solo per eventuali Reset (EnableEvents = True)
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 10:06. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com