› Excel e gli applicativi Microsoft Office › estrazione valori da cartella A su selezione in cella con convalida da elenco
-
AutoreArticoli
-
Non è una modifica difficile, perchè il filtro della query avviene già selezionando i tre dati cliente-beneficiario-dettaglio. Basterà rinominare il foglio che si crea con l'inserimento dei dati nuovi aggiungendo l'informazione sul "dettaglio". Vedo di implementare la modifica considerando che la lunghezza di un nome di foglio non può superare i 30 caratteri.
vecchio frac wrote:non può superare i 30 caratteri
Sì in effetti è una complicazione perchè il codice VBA si basa sul nome foglio per individuare il foglio su cui inserire le modifiche e inoltre anche visivamente è immediato pescare il foglio che interessa leggendo dei nomi per esteso che non una sigla o un codice numerico.
Uhm 🙂
In merito a ... " Basterà rinominare il foglio che si crea con l'inserimento dei dati nuovi aggiungendo l'informazione sul "dettaglio". Vedo di implementare la modifica considerando che la lunghezza di un nome di foglio non può superare i 30 caratteri " posso suggerirti, nei casi in cui per una tipologia di beneficiari esistano più righe di dettaglio, creare il foglio da inserire con il solo nome del Dettaglio ( per me è addirittura meglio ) .
In merito a ... " Sì in effetti è una complicazione perchè il codice VBA si basa sul nome foglio per individuare il foglio su cui inserire le modifiche e inoltre anche visivamente è immediato pescare il foglio che interessa leggendo dei nomi per esteso che non una sigla o un codice numerico " ti confermo quanto sopra , lavora , per quei casi specifici con più dettagli per beneficiario, con il solo nome dettaglio. Sempre che tu possa farlo !
rs4464 wrote: per quei casi specifici con più dettagli per beneficiario, con il solo nome dettaglio
Quand'è così, prova la nuova versione 🙂
Allegati:
You must be logged in to view attached files.Sembra perfetto davvero !
Una domanda, cosa è che determina le modalità di apertura della finestra di selezione ? Cerco di spiegarmi meglio, io lavoro con due schermi e attualmente il foglio model si apre sul primo mentre la finestra di selezione del cliente, beneficiari, dettaglio e stato lavorazione sul secondo. Esiste la possibilità di tenere la finestra di selezione sovrapposta al foglio modello ?
E' una domanda difficile per me, sia perchè non ho mai lavorato su due schermi e non so dire come avviene il reindirizzamento dell'output, sia perchè non lo posso testare. Suppongo che accada questo: l'userform attiene al primo file e viene visualizzato in un desktop, contemporaneamente viene aperto il file modello e questo viene visualizzato a parte perchè appartiene a un altro processo.
Vediamo cosa posso farmi venire in mente 🙂
Va benissimo così, ti ripeto, è perfetto. Si trattava solo di una mia curiosità !
Ho provato a rendere invisibile il workbook attivo, dopo l'avvio dell'userform, così da nascondere il file modello. Ma così facendo perde il riferimento al foglio nascosto "dati" e si arrabbia.
Non è la strada giusta 🙁
Ciao VF,
spero tu ancora non ti stia scervellando per quella mia ultima curiosità.
Sto provando ad implementare, ritoccando cose marginali nel codice, la tua creatura.
Avrei la necessità di ampliare le finestre del box di selezione perché in alcuni casi ( ed a volte, sembra a causa della lunghezza dello stato lavorazione scelto nell'elenco che io ho modificato nel foglio nascosto , va in errore ) non si riesce a vedere la stringa completa quando invece è fondamentale la sua visibilità .
Un saluto
ho allargato le dimensioni della finestra di selezione UserForm2 ma al momento dell'inserimento del valore più lungo dello stato lavorazione nel foglio creato ( o in modifica ) va in errore nella riga di codice indicata dalla freccetta :
s = "UPDATE %0 SET [stato lavorazione] = '%s' WHERE DESCRIZIONE = '%1' And BENEFICIARI = '%2' And DETTAGLIO = '%3'"
s = Replace(s, "%0", database)
s = Replace(s, "%s", ComboBox1)
s = Replace(s, "%1", Trim(Replace(rs("descrizione"), "'", "''")))
s = Replace(s, "%2", Trim(Replace(rs("beneficiari"), "'", "''")))
s = Replace(s, "%3", Trim(Replace(rs("dettaglio"), "'", "''")))
cn.Execute s <----Ciao
scusami, mi correggo, credo di aver sbagliato.... al momento dell'inserimento del valore più lungo dello stato lavorazione "NELLA RELATIVA RIGA DELLO SCADENZARIO"
rs4464 wrote:a causa della lunghezza dello stato lavorazione
Ma non può essere questa la causa di un errore in esecuzione di una piccola query di update. A meno che la lunghezza finale non superi i 65mila caratteri e non credo 🙂
Mi piacerebbe conoscere il valore di "s" al momento dell'execute:
- cerca di replicare l'errore
- quando si ferma vai in Immediata (Ctrl-G)
- digita ?s e conferma con Invio
- copia e incolla qui il risultato
Poi vedremo se dovrai allegarmi di nuovo tutti i file per vedere da vicino.
UPDATE [Foglio1$A1:N500] SET [stato lavorazione] = 'Lettera contabile firmata dall'Ente inoltrata a Gestore e Filiale per richiesta autorizzazione alla lavorazione' WHERE DESCRIZIONE = 'COMUNE DI BEVAGNA' And BENEFICIARI = 'DIPENDENTI' And DETTAGLIO = 'STIPENDI'
Ecco l'errore maledetto 🙂
La stringa "Lettera contabile firmata dall'Ente inoltrata a Gestore e Filiale per richiesta autorizzazione alla lavorazione" contiene un apice: dall'Ente
Edit by VF scusa è partito un messaggio incompleto
Bisogna fare un replace dell'apice come fatto con gli altri campi.
Quindi
s = Replace(s, "%s", ComboBox1)
deve diventare:
s = Replace(s, "%s", Replace(ComboBox1, "'", "''"))
Lo sospettavo e per semplicità avevo tolto gli apici dai messaggi di stato. Ci sono ancora delle circostanze in cui ha un comportamento anomalo. Appena riesco a circoscrivere la situazione ti faccio sapere.
Grazie ancora VF
rs4464 wrote:Ci sono ancora delle circostanze in cui ha un comportamento anomalo
Buongiorno VF,
non mi sono fatto sentire a causa di un incidente che mi ha tenuto lontano dal lavoro fino a ieri.
Avrei un paio di cose da chiederti.
La prima è la possibilità di lavorare in più persone nello stesso momento sul modello.VF9 ( pensavo che fosse possibile, immaginavo che l' accesso fosse in sola lettura ) .
La seconda è la seguente : inserendo un nuovo foglio di lavoro per una tipologia di beneficiari in un file già esistente, questo viene compilato con i dati presenti nelle celle gialle della tipologia di beneficiari esistente mentre dovrebbe essere mostrato vuoto, da compilare, a parte i dati presenti nelle celle bianche.
Un saluto
non mi sono fatto sentire a causa di un incidente che mi ha tenuto lontano dal lavoro fino a ieri.
Mi dispiace! Spero ora tutto a posto. Anch'io ho avuto qualche difficoltà, spero di essere rientrato a regime. Se vedi che passa troppo tempo senza risposta, fammi un reminder.
Buongiorno ,
ti riscrivo solo per chiederti se avevi comunque letto le due domande che avevo posto e che inoltro nuovamente per sicurezza :
- la possibilità di lavorare in più persone nello stesso momento sul modello.VF9 ( pensavo che fosse possibile, immaginavo che l' accesso fosse in sola lettura ) .
- inserendo un nuovo foglio di lavoro per una tipologia di beneficiari in un file già esistente, questo viene compilato con i dati presenti nelle celle gialle della tipologia di beneficiari esistente mentre dovrebbe essere mostrato vuoto, da compilare, a parte i dati presenti nelle celle bianche.
Saluti
Non ho potuto provare l'accesso di più persone al file, ma penso che sia bloccato in lettura e scrittura dal primo utente che apre il file. Dovresti provare a distribuire più copie del file da aprire in locale (cioè non si dovrebbe aprire il medesimo file situato in cartella condivisa, ognuno dovrebbe aprire il suo).
In un file esistente puoi inserire solo i beneficiari che corrispondono al codice cliente selezionato. I beneficiari quindi diventano dei sottofogli di quel file, di cui condividono le informazioni generali (il cod. cliente e la sua descrizione quindi sono gli stessi). I dati successivi (dettaglio, data pagamento, ecc.) vengono presi dal database. Non è corretto questo?
-
AutoreArticoli