› Sviluppare funzionalita su Microsoft Office con VBA › inserire dati da textbox (userform) a cella solo se valore presente
-
AutoreArticoli
-
Ciao a tutti,
non riesco a capire come far funzionare questo codice, in pratica ho creato un userform che ha al suo interno una serie di textbox (ognuna di essa collegata ad una cella specifica di un determinato foglio. Vorrei che se scrivo qualcosa nella text box lui inserisca il dato ma se non scrivo nulla l'azione non avvenga.
Es. la textbox1 è collegata alla cella B8 del foglio1: Se scrivo 1 mi deve scrivere 1 in B8, ma se non scrivo nulla non deve fare niente.
ho scritto questo che effettivamente mi scrive quanto detto in b8 però non so fare l'operazione nulla:
Option Explicit Private Sub CommandButton1_Click() Worksheets("Input").Range("B8").Value = TextBox1.Value End SubSo che è abbastanza semplice allego anche un'immagine dell'userform in quanto essendoci molte textbox se qualcuno ha un consiglio da dare lo ascolto volentieri
Grazie a tutti
Allegati:
You must be logged in to view attached files.Scusa,hai messo qualche controllo sulle Texbox che impone al codice che tutte le texbox debbono essere compilate?
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )Scusa,hai messo qualche controllo sulle Texbox che impone al codice che tutte le texbox debbono essere compilate?
no albatros nessun controllo deve solo guardare tutte le textbox e dove viene inserito qualcosa lo mette in celle dove non viene inserito nulla deve saltarla e non emettere nessuna operazione
oppure si potrebbero popolare le textbox con il contenuto delle celle ed alla loro modifica modificare il contenuto delle celle
Scusa,hai messo qualche controllo sulle Texbox che impone al codice che tutte le texbox debbono essere compilate?
oppure si potrebbero popolare le textbox con il contenuto delle celle ed alla loro modifica modificare il contenuto delle celle
questa me la sono risolta cosi
Private Sub UserForm_Initialize() TextBox1.Value = Sheets("Input").Range("B8").Value TextBox2.Value = Sheets("Input").Range("B9").Value TextBox3.Value = Sheets("Input").Range("B10").Value TextBox4.Value = Sheets("Input").Range("B11").Value TextBox5.Value = Sheets("Input").Range("B12").Value TextBox6.Value = Sheets("Input").Range("B22").Value TextBox65.Value = Sheets("Input").Range("D22").Value TextBox67.Value = Sheets("Input").Range("B23").Value TextBox66.Value = Sheets("Input").Range("D23").Value TextBox8.Value = Sheets("Input").Range("D24").Value TextBox9.Value = Sheets("Input").Range("D25").Value End SubAllora andando per gradi:
le textbox visualizzeranno tutto quello che è presente nelle celle (a volte sono anche formule, ma la textbox chiaramente visualizzerà il testo o valore numerico) attraverso questo codice:
Private Sub UserForm_Initialize() TextBox1.Value = Sheets("Input").Range("B8").Value TextBox2.Value = Sheets("Input").Range("B9").Value TextBox3.Value = Sheets("Input").Range("B10").Value TextBox4.Value = Sheets("Input").Range("B11").Value TextBox5.Value = Sheets("Input").Range("B12").Value TextBox6.Value = Sheets("Input").Range("B22").Value TextBox65.Value = Sheets("Input").Range("D22").Value TextBox67.Value = Sheets("Input").Range("B23").Value TextBox66.Value = Sheets("Input").Range("D23").Value TextBox8.Value = Sheets("Input").Range("D24").Value TextBox9.Value = Sheets("Input").Range("D25").Value End SubPoi tramite un tasto inserisco il testo presente nelle textbox nelle celle corrispondenti con questo codice:
Option Explicit Private Sub CommandButton1_Click() Worksheets("Input").Range("B8").Value = TextBox1.Value End Submi manca solo il pezzo che dice all'userform:
Se la textbox viene modificata, modifica la cella
se la textbox non viene modificata non toccare la cella
Si puo fare, secondo voi?
P.S.
Chiaramente ci sono molte textbox e nei codici postati ne ho messo solo alcune per dare l'idea, il codice completo poi lo completerò con calma io.
Ma scusa il numero di textbox che devi gestire sono quelle nella userform della foto che hai allegato ad inizio del topic? Cioè sono circa una trentina? Se si perché non fai un ciclo For...Next? 4 linee di codice e fai tutto.
Devi rinominare le textbox a piacere tuo (un modo convenzionale sarebbe "txt") e poi un numero che equivale al numero di colonna, o rigo in base a come sono posizionate, della cella in cui deve interagire quella textbox.
Per esempio ipotizzando che hai 30 textbox e la prima textbox deve interagire con la cella A3, la seconda con la cella A4, la terza con la cella A5, e così via fino alla cella A33...allora sarà un qualcosa del genere:
Dim i As Long For i = 3 To 33 Cells(i, "A").Value = Controls("txt" & i).Value Next itutte le textbox le numeri a partire dal 3 fino a 33 (txt1, txt2,txt3...txt33)
Se però non c'è sequenza tra le celle (ad esempio le celle sono la A3, A6, 10, A11, A12, A15, ecc...) allora il discorso cambia un po' ma nulla di impossibile. Basta definire un Array di numeri che corrispondono alle celle. Ora sono con il cellulare e non voglio sbagliare troppo a scrivere un codice che non funziona. Se indichi con esattezza le celle da passare in rassegna allora si scrive il codice giusto.
Ciao Alex,
Allora si, la foto è quella se poi noti c'è un'altra pagina che si riferisce ad un altro foglio in cui ci sono altre textbox.
Allora io purtroppo con i cicli for...next non me la cavo proprio nel senso che non li so usare ma con le dovute spiegazioni iniziali dovrei essere in grado di aiutare e completare il codice.
Se però non c'è sequenza tra le celle (ad esempio le celle sono la A3, A6, 10, A11, A12, A15, ecc...) allora il discorso cambia un po' ma nulla di impossibile. Basta definire un Array di numeri che corrispondono alle celle. Ora sono con il cellulare e non voglio sbagliare troppo a scrivere un codice che non funziona. Se indichi con esattezza le celle da passare in rassegna allora si scrive il codice giusto.
Effettivamente le celle non sono tutte consequenziali quindi penso che si debba passare alla seconda ipotesi dell'Array che non conosco nemmeno
Allora facciamo cosi se per te va bene, innanzitutto non c'è fretta. Ti metto apposto un po tutto quello che riesco e ti mando un file di prova dove vanno aggiunte queste cose se per te va bene.
Altra cosa quando effettuo delle modifiche con questo form, successivamente stampo sempre un pdf e vorrei che quelle celle che ho modificato ritornino allo stato iniziale (stato iniziale che potrebbe essere anche una formula), ho gia provato un codice ma mi va in debug che è questo:
.Range("D22") = "=SOMMA.SE('NON TOCCARE'!A2:A120;" >= "&Input!B6;'NON TOCCARE'!C2:C120)-SOMMA.SE('NON TOCCARE'!A2:A120;" >= "&Input!B7;'NON TOCCARE'!C2:C120)"cosa sbaglio?
Grazie mille alex
Dovrebbe essere qualcosa di simile:
Dim x As Variant, i As Integer x = Array(3, 5, 6, 7, 10, 11, 13, 16, 18, 20) For i = LBound(x) To UBound(x) Cells(x(i), "A").Value = Controls("txt" & x(i)).Value Next iRipeto sono con il cellulare e spero di non sbagliare. In pratica nell'Array x definisci il numero delle celle da processare (in questo esempio sarebbero le celle A3, A5, A6, A7, A10, A11, A13, A16, A18, A20).
Si fa partire un ciclo For che parte dalla parte bassa dell'insieme x (LBound(x) = 3) fino alla parte terminale dell'insieme x (UBound(x) = 20).
Le textbox le rinomini txt3, txt5, txt6...txt20
ok provo a fare qualcosa,
domanda ma questo codice come si accorge se io ho modificato qualcosa?
Lo devi inserire nell'evento click di CommandButton ad esempio...cioè quando fai click sul pulsante che vuoi che inserisce i dati.
Ma puoi fare la stessa cosa per popolare le textbox. Sull'evento Initialize della form devi invertire Cells(x(i), "A").Value con Controls("txt" & x(i)).Value
Dim x As Variant, i As Integer x = Array(3, 5, 6, 7, 10, 11, 13, 16, 18, 20) For i = LBound(x) To UBound(x) Cells(x(i), "A").Value = Controls("txt" & x(i)).Value Next icapito quello che hai spiegato ma dopo next i, cosa c'è?
Non lo so...io ti ho solo fatto un esempio di un codice (che mi auguro abbia scritto bene) che scrive il contenuto delle txt3, txt5, txt6...txt20 nelle celle A3, A5, A6...A20
Quello che c'è dopo devi saperlo tu. Io non so quali altre istruzioni vuoi dare.
Se vuoi che salva il file allora ci vuole altro codice dopo; se vuoi che svuoto le textbox allora ce ne vuole altro; ecc...
Allora ho provato ma non sono riuscito ad impostarlo, ho provato a buttare giu un codice semplice che fa alcune cose:
1. all'apertura dell'userform2 con il tasto modifica fogli mi popola tutte le textbox con quello che c'è nelle cella
2. premendo sul tasto "inserisci modifiche nel foglio input" lui inserisce tutte le textbox nelle varie celle:
Problemi con il punto 2:
1. Non voglio che mi inserisca tutte le textbox ma solo quelle che modifico
2. con questo codice se il campo inizialmente è vuoto ed io comunque non lo modifico lui mi azzera la cella cancellando anche le formule al suo interno
--------------------------------------
Cosa vorrei:
1. A me va bene vedere tramite le textbox cosa c'è nelle celle ma nella fase di modifica vorrei che modificasse solo quello dove io metto mano e non tutte le textbox indistintamente come fa adesso.
Poi vorrei creare un tasto che in caso di errore/emergenza mi ripristini tutte le formule presenti nel foglio ed avevo provato alcune cose che però mi vanno in debug tipo:
Range("D22").FormulaLocal = "=SOMMA.SE('NON TOCCARE'!A2:A120;">="&Input!B6;'NON TOCCARE'!C2:C120)-SOMMA.SE('NON TOCCARE'!A2:A120;">="&Input!B7;'NON TOCCARE'!C2:C120)"Non so perche mi vada in errore, mi pare che il codice corretto sia questo.
Allego un file prova completo con tutte le mie modifiche cosi può essere d'aiuto
Grazie a tutti
Allegati:
You must be logged in to view attached files.Poi vorrei creare un tasto che in caso di errore/emergenza mi ripristini tutte le formule presenti nel foglio ed avevo provato alcune cose che però mi vanno in debug tipo:
puoi evitare di modificare le formule involontariamente dalla tua Userform, imponendo alle TExtbox che ricevono il valore dalle formule del foglio, inserendo questo comando , per ogni Textbox che prendono il valore dale formule, nell'esempio la Txt6 riceve il valore dalla formula.
Txt6.Locked = Truecon questo comando non puoi modificare il valore della Tex6 della tua userform, quindi non modifichi involontariamente la formula,se ho capito
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )no in realtà io quella txt6 come tutte le altre dove sono presenti formule potrei aver bisogno di modificarla immettendo dei valori (non soggetti a formula). Pero nello stesso tempo subito dopo ho bisogno che tutto sia ripristinato sotto formula per quello chiedevo una tasto di reset utilizzando una stringa di questo tipo:
Range("D22").FormulaLocal = "=SOMMA.SE('NON TOCCARE'!A2:A120;">="&Input!B6;'NON TOCCARE'!C2:C120)-SOMMA.SE('NON TOCCARE'!A2:A120;">="&Input!B7;'NON TOCCARE'!C2:C120)"@frost220684: mi sono preso un giorno sabatico, per capire il funzionamento del tuo file.
1) Vorrei sapere a cosa ti serve la userform contutte quelle TextBox, se poi non archivi in un foglio i dati che introduci, in modo da avere un database da consultare in seguito.
2)Se i dati li devi introdurre nel foglio"input" perchè non li inserisci direttamente nel foglio? cosi eviti di modificare le formule.
3) La logica del tuo file è quella di aprire la userfom per inserire i dati che vanno nel foglio "input", dati che andranno persi al prossimo inserimento.
Aspetto delucidazioni
Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
Sempre il mare, uomo libero, amerai!
( Charles Baudelaire )non so se è cosi facile da spiegare,
in alcuni preventivi dobbiamo andare a modificare alcune cose a mano (una cella con una formula dobbiamo modificarla in testuale/numerico), questo ci fa passare da un foglio all'altro e da una modifica all'altra. Il senso del userform è avere tutte le celle a portata di mano per effettuare le modifiche manuali da un unica finestra che gestisce foglio input e foglio output. La cosa più importante è che alla fine di queste modifiche io faccio una stampa pdf e dopo quella ho bisogno che le modifiche che ho fatto vengano resettate e quindi la cella che ho trasformato da formula a testuale/numerica deve ritornare formula.
1) Vorrei sapere a cosa ti serve la userform contutte quelle TextBox, se poi non archivi in un foglio i dati che introduci, in modo da avere un database da consultare in seguito.
Le modifiche delle varie celle servono solo in quel dato momento il nostro database preventivi è sulla mail/google drive (come ti dicevo di queste modifiche stampo un pdf che poi mando via email al cliente)
2)Se i dati li devi introdurre nel foglio"input" perchè non li inserisci direttamente nel foglio? cosi eviti di modificare le formule.
Ma infatti adesso sai cosa facciamo? Modifichiamo a mano le celle che ci servono all'interno del foglio input ed output ed alla fine della stampa pdf chiudiamo il file senza salvare. Volevo cercare di semplificare ed automatizzare proprio questo passaggio
Spero di averti aiutato a capire. So che non conoscendo il mio lavoro ed il file alcune cose diventano particolare e mandano in confusione. Qualsiasi aiuto anche che non risolva il problema è ben accetto.
Grazie
Premesso che sono d'accordo con @albatros54, in quanto non ha molto senso utilizzare una UserForm per l'inserimento di dati in celle e che poi questi dati non saranno archiviati...quindi pare evidente che lo scopo si puramente visivo.
Comunque giusto per rendere l'idea di come operare...(questo ovviamente è un mio esempio, magari si potrebbe fare di meglio)
si potrebbe creare un Array dove al suo interno andiamo ad immagazzinare tutte le informazioni contenute nelle celle interessate. Questo appena si inizializza la UserForm. Una volta effettuati tutti i processi (immissione di dati tramite TextBox, stampe in PDF, ecc..) si procede nel richiamare l'Array creato in precedenza e riversare il contenuto nelle varie celle.
Non metto le mani io direttamente al tuo file perché ci sono un po' di cose da sistemare e l'operazione è un po' lunga...quindi lo lascio fare a te. Anche perché dovrai essere tu a scegliere quando deve avvenire il ripristino delle celle.
Ti allego un piccolo esempio con cui puoi studiare i procedimenti ed adattarlo al tuo progetto.
Ti do giusto delle indicazioni:
Nell'evento Initialize della UserForm1 parte un ciclo For...Next che va a determinare l'Array Formule_in_Cella(1 To 5). Questo Array è dichiarato pubblicamente nel Modulo1.
L'Array Formule_in_Cella prende i dati dalle celle C1, D3, E5, D8 e D10. Queste celle sono dichiarate a loro volta in un altro Array denominato x. (x = Array("C1", "D3", "E5", "D8", "D10"))
Come dicevo... nel Modulo1 dichiaro un Array Public Formule_in_Celle(1 To 5) As Variant. Questo Array sarà il contenitore che conterrà le informazioni delle celle. Come vedi va da 1 To 5 perché nel mio esempio ci sono solo 5 TextBox ma tu puoi espanderlo a tutte le TextBox che ti servono.
Devi avere l'accortezza però di rinominare le TextBox con un numero finale che inizia per 1, in modo sequenziale (TextBox1, TextBox2....). Questo perché verranno passate in rassegna all'interno di un ciclo For che parte da 1 fino a 5.
Che cosa entra nell'array Formule_in_Celle? Entrano proprio le formule e i dati scritti nelle celle in questione. Perciò ci saranno le Formule e i dati.
Quindi, una volta che inizializzi la UserForm1 si creerà questo Array che racchiuderà le informazioni dello stato iniziale delle celle. Poi attraverso le TextBox ed il button Conferma, immetterai nelle celle i nuovi dati. Infine con la Sub RipristinaFoglio (che si trova nel Modulo1), riversi i dati dell'Array Formule_in_Celle nelle varie celle.
Ti ho scritto anche dei commenti nel codice per aiutarti a capire il ragionamento. Adesso tu dovresti innanzitutto rinominare tutte le TextBox, poi definire una Array x che racchiude tutti i riferimenti delle celle (e forse anche un array y visto che i tuoi fogli sono 2 [Input e Output]). Poi devi definire la grandezza dell'array Formule_in_Celle in base a quante celle dovrai processare (forse anche qui converrebbe definire 2 array visto che i fogli sono 2). Infine dovresti inserire la Sub Routine che ripristina il foglio nell'esatto punto in qui tu vuoi che sia ripristinato. Mi sembra di aver letto che vuoi che si rispristina dopo la stampa in PDF.
Comunque un'alternativa a tutto questo potrebbe essere quella di immettere i dati dalle TextBox su un foglio copiato da quello originale e poi finite tutte le operazioni si elimina e si riparte da quello originale.
Allegati:
You must be logged in to view attached files.Ciao Alex,
ti ringrazio per l'aiuto, ci penso un po e ci studio sopra per me è una bella sfida nel senso che sono parti di vba che non conosco molto ma mi piace vedere e studiare quindi ci lavorerò un po su e chiaramente vi aggiornero. Guardo il file vedo un po come funziona e me lo studio per bene.
Continuo a ringraziare tutti siete sempre gentilissimi e questo forum rimane sempre una grande risorsa.
A presto
Ciao Alex,
Come promesso c'ho ragionato e studiato su, c'è pero qualcosa che non capisco e non mi fa partire l'userform (mi dice oggetto non trovato).
Ho creato come consigliato 2 array (x e y) e rinominato tutte le textbox, mi sembra di aver corretto tutto bene ma probabilmente mi sbaglio.
Aggiungo che il tuo file mi sembra ottimo per quello che intendo fare, quindi la soluzione mi sembra corretta
Ti allego file se riesci a farmi capire cosa sbaglio nella compilazione del codice.
Trovi tutto il codice nel modulo 8 e chiaramente nell'userform. Invece la sub per avviare l'userform nel modulo 5
Allegati:
You must be logged in to view attached files.Farò delle prove più approfondite appena potrò...purtroppo il tempo è sempre limitato. Comunque tanto per cominciare hai sbagliato a dichiarare gli Array x ed y. Non puoi mettere un'intervallo di celle, ma celle singole.
x = Array("B8", "B9", "B10", "D11", "D12", "B22", "D22", "B23", "D23", "D24:D43", "D46:D48", "D52", "D56:D58")
A parte il fatto che mi sa che hai sbagliato D11 e D12 (forse è B11 e B12) ma poi non va bene D24:D43 e anche per gli altri range la stessa cosa
x = Array("B8", "B9", "B10", "D11", "D12", "B22", "D22", "B23", "D23", "D24:D43", "D46:D48", "D52", "D56:D58")
Ecco ho sistemato ed effettivamente è partito il form
A parte il fatto che mi sa che hai sbagliato D11 e D12 (forse è B11 e B12)
hai ragione avevo sbagliato la lettera, sistemato anche questo.
Ora l'userform parte e funziona ci sono 2 problemi che non riesco a capire:
1. Quando cambio un dato numerico nel foglio Input che in genere è formattato con metodo personalizzato valuta, lui mi inserisce un numero senza lasciare la formattazione iniziale. Ecco in realtà mi deve inserire sempre la stessa formattazione. Chiaramente cambiandola di nuovo a mano la posso aggiustare però verrebbe meno l'automatismo. Non si riesce a dire a l'userform di inserire il dato mantenendo la stessa formattazione?
2. Se clicco sul tasto "inserisci modifiche nel foglio input" tutto funziona (a parte la formattazione), se invece passo nell'altra pagina e modifico dati cliccando sul tasto "inserisci modifiche nel foglio output" non succede nulla.
3. Sarebbe utile che quando clicco sulla pagina output dell'userform excel cambi anche foglio in modo che quando faccio le modifiche posso vedere quello che succede. Per intenderci clicco su Foglio Output (Userform) viene cambiato anche il foglio in Excel, stessa cosa se ripasso al foglio input.
Tranquillo per il tempo non c'è fretta, grazie come sempre del tuo aiuto e dei consigli mi è piaciuto modificare l'Array
e capirne un po il funzionamento, certo devo migliorareTi riallego il file con le ultime modifiche
Allegati:
You must be logged in to view attached files.Io però con il numero degli elementi negli Array non mi trovo. Tu hai dichiarato in Formula_in_Cella1(1 To 33) ma l'Array x deve contenere 36 elementi.
Invece in Formula_in_Celle2(1 To 28) ma nell'Array y ne dove contenere 29.
Ad ogni modo, rispetto al numero di TextBox presenti nella userform ModificaFogli, il numero dell'Array Formule_in_Celle1 dovrebbe essere (1 To 36) e non (1 To 33)
Quindi in tutte le parti del codice in cui sono coinvolti gli Array Formule_in_Celle1 e Formule_in_Celle2, è necessario dichiarare la grandezza esatta anche dei cicli i e k. Perciò anche negli eventi del Click dei Button di Conferma devi dichiararli esatti: i = (1 To 36) e k = (1 To 29). Stesso discorso nella Sub RipristinaFoglio () presente nel Modulo8. Anche qui i e k vanno da i = 1 To 36 e k = 1 To 29.
Per il discorso che nel foglio Output che non vedi modifiche...è ovvio!! Se tu dichiari un ciclo k = 1 To 29 e passi in rassegna le Textbox concatenato il numero k...nella Pagina Output della UserForm ModificaFogli, non hai la Textbox1, Textbox2...Textbox29. Ma hai Textbox 37, Textbox38, ecc...
Quindi devi modificare il ciclo facendo in modo che ad ogni iterazione, la Textbox iterata sia quella corretta. Quindi sarà qualcosa tipo:
For k = 1 To 29 If Controls("Textbox" & k + 36) <> "" Then Worksheets("Output").Range(y(k - 1)) = Controls("Textbox" & k + 36).Value End If Next kTi giro una versione aggiornata...ho dei dubbi sul foglio Output. Vedi se sono corretti i riferimenti alle celle da modificare
Allegati:
You must be logged in to view attached files.Ciao Alex, grazie delle correzioni
Io però con il numero degli elementi negli Array non mi trovo. Tu hai dichiarato in Formula_in_Cella1(1 To 33) ma l'Array x deve contenere 36 elementi.
Invece in Formula_in_Celle2(1 To 28) ma nell'Array y ne dove contenere 29.
Ad ogni modo, rispetto al numero di TextBox presenti nella userform ModificaFogli, il numero dell'Array Formule_in_Celle1 dovrebbe essere (1 To 36) e non (1 To 33)
Quindi in tutte le parti del codice in cui sono coinvolti gli Array Formule_in_Celle1 e Formule_in_Celle2, è necessario dichiarare la grandezza esatta anche dei cicli i e k. Perciò anche negli eventi del Click dei Button di Conferma devi dichiararli esatti: i = (1 To 36) e k = (1 To 29). Stesso discorso nella Sub RipristinaFoglio () presente nel Modulo8. Anche qui i e k vanno da i = 1 To 36 e k = 1 To 29.
eh beh non so che conti avevo fatto ma hai ragione, sono contento che almeno ho azzeccato la distinzione tra formule in celle 1 e 2 ed i cicli i e k (per me non era cosi scontato
)Per il discorso che nel foglio Output che non vedi modifiche...è ovvio!! Se tu dichiari un ciclo k = 1 To 29 e passi in rassegna le Textbox concatenato il numero k...nella Pagina Output della UserForm ModificaFogli, non hai la Textbox1, Textbox2...Textbox29. Ma hai Textbox 37, Textbox38, ecc...
a questa cosa davvero non ci avevo proprio pensato
Allora il file funziona correttamente, mi faccio un po di prove su tutte le textbox in modo da guardare bene i riferimenti ma pare siano corretti ma quelli li modifico facile, però adesso riscontro 1 problema ed 1 cavolata:
1. Nel modulo 1 ho inserito la sub ripristina foglio, quindi se tu compili i campi Cliente (b1:b5) e fai partire la macro dopo aver modificato qualcosa con l'userform, lui stampa il pdf ma non ripristina il foglio come se non avesse immagazzinato l'array (nel precedente file funzionava)
2. Quando apro l'userform mi parte dalla pagina output mentre vorrei che fosse il contrario che si apra sempre dalla pagina input
Penso che ci siamo corrette queste cose abbiamo raggiunto lo scopo. Grazie mille sei stato gentilissimo
-
AutoreArticoli
