› Sviluppare funzionalita su Microsoft Office con VBA › Modifica nome con numero progressivo e cella con numero progressivo
-
AutoreArticoli
-
Ciao a tutti,
Office 2021 Professional - Windows 11
il titolo non sarà esaustivo ma spiegherò meglio il problema, Ho questo file che crea preventivi in 3 soluzioni diverse (pdf, xlsx, xlsm) cliccando su un tasto collegato ad una macro. Quando si clicca il tasto "Preventivo Comitive" viene effettuato anche un reset di alcune celle e fino a qui funziona tutto correttamente. Vi allego un file con dei dati preimpostati e Vorrei pero che due celle in particolare al loro reset fossero autocompilate in questo modo:
Gentile (Cella B1): Fabrizio 1* (Deve diventare in automatico Fabrizio 2 poi Fabrizio 3 poi Fabrizio 4, etc fino a quando non ho finito)
* questo dato è variabile in base al numero di camere preventivate
Comitiva (Cella B2): 1 di 4* (deve diventare in automatico 2 di 4, 3 di 4, 4 di 4)
* questo dato è variabile in base al numero di camere preventivate
In sommi capi dovendo compilare più preventivi con gli stessi dati, cliccando sul tasto "Preventivo Comitive" mi lascia già le celle che mi servono ma non riesco a modificare quelle uniche 2 che devono progressivamente cambiare numero in base a quanti ne devo fare). Non so se sia una cosa possibile.
Per far funzionare il file chiaramente vanno modificati i percorsi di creazione dei file pdf, xlsx e xlsm dove adesso c'è il percorso del mio pc deve essere modificato.
Grazie a tutti se riuscirete a darmi una mano. Per qualsiasi chiarimento sono a disposizione
Allegati:
You must be logged in to view attached files.Immagino che se in cella B2 c'è scritto 1 di 5 allora dovrà diventare di volta in volta 2 di 5, poi 3 di 5, fino a 5-5....giusto?
Ma invece per la cella B1...dov'è che si vede il numero di CAMERE PREVENTIVATE?
Poi FABRIZIO chi sarebbe? Un nome statico o cambia di volta in volta? Così com'è codificato, quando lanci la Macro si aspetta una cartella denominata Fabrizio
Immagino che se in cella B2 c'è scritto 1 di 5 allora dovrà diventare di volta in volta 2 di 5, poi 3 di 5, fino a 5-5....giusto?
si giustissimo
Poi FABRIZIO chi sarebbe? Un nome statico o cambia di volta in volta? Così com'è codificato, quando lanci la Macro si aspetta una cartella denominata Fabrizio
No, allora spiego meglio. Il nome fabrizio è un nome esempio cambia in base al cognome del cliente.
Ti do un'altra info, il primo preventivo lo compilo io. Quindi sono io che inserirò un nome (esempio Fabrizio 1) e sono io che inserirò il primo intervallo camere (es: 1 di 5)
Quello che mi serve è che cliccando il tasto lui mi renda progressiva questa cosa e che lo trasformi in Fabrizio 2 ed intervallo 2 di 5. Poi quando lo premo di nuovo: Trasforma in Fabrizio 3 ed intervallo 3 di 5 e cosi via.
Spero di essermi spiegato meglio mi rendo conto che magari non l'ho fatto 🙂
Ma invece per la cella B1...dov'è che si vede il numero di CAMERE PREVENTIVATE?
dimenticavo questa domanda. Sono io che immetto per la prima volta i dati quindi:
Sono io ad inserire Fabrizio 1 e intervallo 1 di 5 (che sarà il numero di camere e cioè 5.) che sta per camera 1 di 5
Non è che ho inteso molto bene quello che ti serve...cmq proviamo a vedere se funziona con il Campo COMITIVA.
Fai delle prove e dimmi se così va bene. Tieni presente che il tutto funziona solo se c'è sempre scritto qualcosa come 1 di 5; 10 di 15; 4 di 50....cioè ci devono essere sempre un numero (anche più di una cifra), lo spazio, la dicitura "di", un altro spazio, e infine un numero (anche più di una cifra). Se siamo sulla strada giusta, dovresti spiegarmi meglio il Campo dove c'è scritto Fabrizio 1.
Forse anche lì metti Fabrizio 1 di 5?
Se così fosse ti consiglio di mettere 1 di 5 nella cella C1 così è più semplice gestirla.
Allegati:
You must be logged in to view attached files.Allora, il file sembra funzionare perfettamente. Mi pare che tu non abbia modificato nulla del codice originale ma aggiunto solo questo:
If .Range("B2") <> "" Then On Error GoTo errore v = Split(.Range("B2"), " ") If CInt(v(0)) >= CInt(v(2)) Then GoTo Salta .Range("B2") = CInt(v(0)) + 1 & " " & v(1) & " " & CInt(v(2)) End Ifti lascio delle impressioni: quando arriva al numero 5 se io provo a fare il 6 lui va in errore debug. Si potrebbe fare invece che esce messaggio alert che ti dice "non puoi andare avanti"? (anche se non ha senso sarebbe un opzione di controllo dell'errore)
ti spiego meglio l'altro campo:
1. A me arriva una email di richiesta Preventivo per 3 camere a nome Fabrizio.
2. Compilo il primo preventivo con campo Fabrizio 1
3. Premendo il tasto Preventivo Comitive lui mi genera il preventivo Fabrizio 1 e vorrei che in automatico cambiasse in Fabrizio 2 per fare il secondo preventivo e successivamente in Fabrizio 3 per fare l'ultimo.
Note: Fabrizio è un campo variabile perchè dipende dal nome del cliente, mentre il numero è sempre un progressivo che parte da 1 e finisce al numero di camere richieste. Se ha richiesto 3 camere finirà a 3 se ne chiede 5 finirà a 5.
Spero di essermi spiegato per qualsiasi cosa a disposizione e grazie mille dell'aiuto sembra che vada molto bene.
Ma se per caso l'intervallo è 1 di 5, dopo che 5 volte che hai avviato la macro, poi bisogna che non ti consente più di avviarla? Ipotizziamo che sei arrivato a 5 di 5 e ripremi sul pulsante PREVENTIVO COMITIVE, la macro non deve partire perché sei arrivato al limite?
Quando dici che ti arriva una richiesta di preventivo a nome Fabrizio di 3 camere, dov'è che trovo il dato 3 nel Foglio? Io ho bisogno di appoggiarmi su quel numero per determinare il limite.
Ma non è che il numero è quello nella cella delle Comitive?
Scusa ma ora sono sprovvisto di PC e non ricordo bene la struttura del Foglio.
Ma se per caso l'intervallo è 1 di 5, dopo che 5 volte che hai avviato la macro, poi bisogna che non ti consente più di avviarla? Ipotizziamo che sei arrivato a 5 di 5 e ripremi sul pulsante PREVENTIVO COMITIVE, la macro non deve partire perché sei arrivato al limite?
allora il 5 di 5 me lo deve far fare perchè è l'ultimo. finito il 5 potrebbe partire un linguaggio che mi resetta il foglio tipo questo che già fa il suo lavoro:
With wb1.Worksheets("Input") ' inizio istruzioni di resettaggio celle .Range("B1,B2,B4,B5,B12:D12,B6:D6,E7,B8:D12,B20:D20,G26,G28:G30,G33,G35,J27,N45,D56,D57,D58,J31:J33,D64").ClearContents .Range("B6:D6") = "8/11/2024" .Range("E7") = "7" .Range("B8:D8") = "2" .Range("B9:D9") = "1" .Range("A56:C56") = "Rigo personalizzabile" .Range("A57:C57") = "Rigo personalizzabile" .Range("A58:C58") = "Rigo personalizzabile" ' istruzione di aggiunta +1 al preventivo .Range("B3").Value = .Range("B3").Value + 1 End WithQuindi ricapitolando se io ho 1 di 5 camere premero 5 volte sul tasto preventivi per fare tutti e 5 i preventivi. Quando pero premero per la 5 volta si aziona il linguaggio di reset che trovi su. la stessa cosa pero deve succedere con un altro numero tipo 1 di 6 arrivati alla sesta volta che lo premo si resetta tutto.
Quando dici che ti arriva una richiesta di preventivo a nome Fabrizio di 3 camere, dov'è che trovo il dato 3 nel Foglio? Io ho bisogno di appoggiarmi su quel numero per determinare il limite.
il dato sul foglio non lo trovi perchè sono io ad immettere per la prima volta i dati sia Fabrizio 1 che poi dovrà arrivare a Fabrizio 3, sia 1 di 3 che poi dovrà arrivare a 3 di 3.
Ma non è che il numero è quello nella cella delle Comitive?
anche qui certo il numero massimo coincide con il numero nella cella comitive. Ad esempio Fabrizio mi chiede 3 preventivi. io immettero i primi dati che sono Fabrizio 1 e 1 di 3. Poi la macro deve fare il resto e passare di volta in volta a:
Fabrizio 2 - 2 di 3
Fabrizio 3 - 3 di 3
Tranquillo non c'è problema provo a spiegarti e mi rendo conto che io conosco le necessità ed il file. Anzi grazie che mi stai aiutando. spero di aver spiegato meglio
Perdonami, ma da quello che leggo mi sembra che a te serve generare tante stampe in PDF e tante copie in xls e xlsx, quanti sono le richieste dei preventivi che tu indichi nella cella B2 (Comitiva = 1 di 3 vuol dire che ti servono 3 preventivi...giusto?)
Sperando di aver capito bene...anziché fare tutti sti giri strani (Fabrizio da 1 diventa 2, poi 3 - Comitiva da 1 di 3, diventa 2 di 3, poi 3 di 3), non facciamo prima a far generare tante stampe e copie quante sono le richieste dei preventivi in un sol colpo?
Con un ciclo Do While y<x facciamo tutte le stampe e le copie in un solo click.
y = 1 mentre x = al numero che indichi nella cella B2 (Comitiva)
Alla fine ti ritroverai nelle cartelle che hai indicato nel codice il nome del file che termina con "Nr. 1.pdf"... "Nr. 2.pdf"... "Nr. 3.pdf" e così anche per le copie in xls e xlsx.
Ti giro un esempio.
Allegati:
You must be logged in to view attached files.allora purtroppo no, c'è un sistema lavorativo che tutti conoscono e sinceramente far cambiare un po di cose mi porterebbe parecchi pensieri. Sinceramente il codice che hai scritto per 1 di 3, 2 di 3 etc era perfetto bisogna solo trovarlo sul nome ed è fatta. ma mi rendo conto non sia sempre facile o possibile. Con un solo click non sarebbe possibile perchè il numero di ospiti in base al preventivo può cambiare è un po complicato da spiegare ma ti posso assicurare che il file fa perfettamente quello che deve fare volevo solo apportare questa miglioria ed automatismo
Allora...lo ammeto...non mi fa impazzire quello che codificato...ma di più non riesco. Purtroppo mi sono dovuto un po' arrangiare con le mie conoscenze. Spero che qualcun altro sappia fare di meglio.
Prova il file che ti allego. Ovviamente funziona purché rispetti lo standard il nome del cliente e il numero. Puoi mettere anche un nome composto...ad esempio Paperon de Paperoni 1. La cosa importante è che ci sia uno spazio tra ogni parola e il numero.
Stessa cosa per il campo Comitiva. Deve essere tipo 1 di 3, oppure 1 di 5, o anche 1 di 10, cioè numero (lo spazio) 'di' (lo spazio) numero
Allegati:
You must be logged in to view attached files.Ciao Alex,
Intanto grazie per l'aiuto anche se non dovesse andare bene sei stato molto gentile. Senti allora io un occhiata già l'ho data ti dico impressioni:
1. Il codice è stato un po cambiato anche se ho visto che hai lasciato un po tutto quello che c'era spostando le cose (essendo per lavoro operativo devo testarlo bene per capire se fa tutto quello che faceva prima e ti aggiorno)
2. Sicuro c'era un problema sulla cella B3 dove è presente il numero del preventivo e che secondo le istruzioni dovrebbe passare sempre ad ogni click a +1 nel momento in cui si preme il tasto insieme ma questo non avveniva ma l'ho sistemato ti posto il codice cosi te lo aggiorni:
Option Explicit Dim sCliente As String, sComitiva As String Dim x As Integer, k As Integer Sub save_ascomitive() Dim ws As Worksheet Dim vCliente As Variant, vComitiva As Variant Dim y As Integer, j As Integer, i As Integer Set ws = ThisWorkbook.Sheets("Input") If ws.Range("B1") = "" Or ws.Range("B2") = "" Then MsgBox "Devi specificare ""Cliente"" e ""Comitiva""", vbCritical, "Attenzione..." Exit Sub End If vCliente = Split(ws.Range("B1"), " ") vComitiva = Split(ws.Range("B2"), " ") i = UBound(vCliente) x = CInt(vCliente(i)) '<-- nr. Cliente i = UBound(vComitiva) y = CInt(vComitiva(i)) '<-- nr. fine Comitiva i = LBound(vComitiva) k = CInt(vComitiva(i)) '<-- nr. inizio Comitiva sComitiva = k & " di " & CInt(vComitiva(2)) If x = y Then MsgBox "Limite raggiunto. Ultima stampa consentita.", vbInformation, "Attenzione..." Salva_e_Stampa ResettaFoglio ws.Range("B3").Value = ws.Range("B3").Value + 1 Exit Sub Else sCliente = "" For j = 0 To UBound(vCliente) - 1 sCliente = sCliente & " " & vCliente(j) Next j ws.Range("B1") = Trim(sCliente) & " " & x + 1 ws.Range("B2") = k + 1 & " di " & CInt(vComitiva(2)) Salva_e_Stampa ws.Range("B3").Value = ws.Range("B3").Value + 1 End If Set ws = Nothing End Sub Sub Salva_e_Stampa() Dim p As String Dim s As String Dim v As Variant Dim i As Integer Dim wb1 As Workbook, wb2 As Workbook 'inizio istruzioni cursore mouse With Application .ScreenUpdating = False .Cursor = xlWait End With Set wb1 = ThisWorkbook Set wb2 = Workbooks.Add 'in wb2 imposto riferimento a nuovo foglio di lavoro p = "C:\Users\Eurolido\Desktop\Preventivi" 'inserire percorso cartelle preventivi 'p = "C:\Users\alebo\Downloads\Lavori in Excel\Preventivi" 'variabile per salvataggio con nome ' s = "@A - @B - @C - @D - @E" ' For i = 1 To 5 ' 'v = Choose(i, "B3", "B1", "B6", "B7") ' v = Choose(i, Trim(sCliente), x, "B1", "B6", "B7") ' s = Replace(s, "@" & Chr$(64 + i), wb1.Worksheets("Input").Range(v)) ' Next With wb1.Worksheets("Input") s = .Range("B3") & " - " & Trim(sCliente) & " " & x & " - " & .Range("B6") & " - " & .Range("B7") End With ' inserire il nome della cartella preventivi excel al posto di Preventivi Excel wb1.Worksheets.Copy before:=wb2.Worksheets(1) 'in cella N46 del foglio originale salvo data e ora di creazione del foglio copiato With wb2 .Worksheets("Input").Range("B1") = Trim(sCliente) & " " & x .Worksheets("Input").Range("B2") = sComitiva .Worksheets("Input").Range("N46") = "Preventivo creato il " & Date .SaveAs p & "\excel\" & Replace(s, "/", "-") & ".xlsx", FileFormat:=xlWorkbookDefault For Each v In .LinkSources(Type:=xlLinkTypeExcelLinks) .BreakLink Name:=v, Type:=xlLinkTypeExcelLinks Next wb1.SaveCopyAs p & "\vba\" & Replace(s, "/", "-") & ".xlsm" With .Worksheets("Output") ' inserire il nome della cartella preventivi PDF al posto di Preventivi Excel .Columns("A:A").ColumnWidth = 44.57 .Select .Range("$A$5:$C$64").AutoFilter Field:=3, Criteria1:="<>" wb1.Worksheets("Input").Range("N45").Value = p & "\pdf\" & Replace(s, "/", "-") & ".pdf" .ExportAsFixedFormat xlTypePDF, p & "\pdf\" & Replace(s, "/", "-") & ".pdf", from:=1, To:=4 End With .Worksheets("Input").Select .Close True 'salva e chiude il nuovo foglio creato End With 'fine istruzioni cursore mouse With Application .ScreenUpdating = True .Cursor = xlDefault End With Set wb1 = Nothing: Set wb2 = Nothing End Sub Sub ResettaFoglio() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets("Input") With ws ' inizio istruzioni di resettaggio celle .Range("B1:B2,B4,B5,B12:D12,B8:D12,B20:D20,G26,G28:G30,G33,G35,J27,N45,D56,D57,D58,J31:J33,D64").ClearContents .Range("B8:D8") = "2" .Range("B9:D9") = "1" .Range("A56:C56") = "Rigo personalizzabile" .Range("A57:C57") = "Rigo personalizzabile" .Range("A58:C58") = "Rigo personalizzabile" ' istruzione di aggiunta +1 al preventivo .Range("B3").Value = .Range("B3").Value + 1 End With Set ws = Nothing End Subapprezzo molto l'aiuto se poi ci sarà qualcuno che riesca ad ottimizzare che ben venga sicuramente io non sarei riuscito a fare nemmeno 3 righe di codice, sono molto in difficoltà a scrivere da capo mentre a leggere mi trovo meglio.
Grazie mille ed appena l'ho testato bene ti aggiorno
Ciao Alex,
avrei una necessità, il file sembra andare bene, vorrei pero che il file lavorasse in questo modo:
Le comitive possono essere di due tipi:
1. Persona singola che richiede più camere (in questo caso si sceglie di mettere Fabrizio 1, Fabrizio 2, Fabrizio 3)
2. Persona che richiede più camere dando nominativi diversi es. Fabrizio (Comitiva 1 di 3), Sergio (Comitiva 2 di 3), Francesco (Comitiva 3 di 3) (in questo caso si dovrebbe dire al codice che hai creato se non trovi un numero dopo il nome cambia solo la cella comitiva 1 di 3, 2 di 3, 3 di 3 - in modo che io posso immettere nomi diversi che non hanno numeri)
Pensi si posso fare? provandolo abbiamo capito che ci potrebbe essere questa casistica, per quello che hai fatto da quello che ho visto sembra funzionare bene
Grazie mille
Ciao Alex,
Grazie ho guardato il file è sembra fare il suo dovere, lo testo per bene e ti do un feedback. Grazie tante per l'aiuto.
Salutiiiii
Ciao Alex, devo purtroppo fare un dietro front. Allora in sommi capi il file ha capito cosa deve fare ma probabilmente ci sono alcune scremature che lo portano in errore:
1. Quando finisce una comitiva dovrebbe aumentare il preventivo di + 1 ma in realtà lo aumenta di +2
2. Quando si inizia la seconda comitiva lui subito identifica un fine comitiva (es. ho fatto la prima comitiva, ne inizio un'altra di 3 camere lui già alla prima camera mi segnala il fine comitiva e chiaramente resetta il foglio)
3. Sempre collegato al punto 2, quando mi fa questo preventivo della seconda comitiva i file che crea li crea con il nome del precedente preventivo e non con il nuovo nome.
Ho pensato di farti un video screen per farti vedere bene i movimenti che faccio e gli errori che escono, se ti va di continuare posso mandartelo in privato o posto qui un link wetransfer.
Grazie mille per l'aiuto
Ciao @frost220684,
perdonami ma non avevo notato questa tua risposta...solo ora l'ho vista.
Per quanto riguarda ciò che hai evidenziato...hai perfettamente ragione. C'erano un po' di cose da sistemare. Prova questa nuova versione. Dovrebbe funzionare, almeno dai test che ho fatto.
L'unica cosa che devi tenere a mente è che se scrivi comitiva 1 di 3 e non lanci le 3 stampe allora succederà il problema che hai evidenziato ai punti 2 e 3.
2 sono le soluzioni: ho chiudi e riapri il file (soluzione che non mi fa impazzire) oppure prevediamo un pulsante di reset che svuota le celle e resetta il foglio richiamando proprio la Routine che resetta il Foglio. Questo dipende perché ho fatto uso di variabili pubbliche e rimangono valorizzate finché non parte la Routine di reset.
Allegati:
You must be logged in to view attached files.Ciao @frost220684,
poi ci ho ripensato e ho trovato una soluzione riguardo al fatto che potrebbero nascere problemi se interrompi la sequenza di stampa. Devo dire che nel sistemare questo problema, ne avevo scoperto un altro, che ho anche risolto. Ti giro, mi auguro, la versione definitiva.
Fammi sapere se funziona.
Allegati:
You must be logged in to view attached files.Ciao Alex, il primo file sembrava funzionare bene avevo fatto alcune modifiche aggiungendo anche un reset parziale durante i preventivi comitiva (avevo bisogno che cancellasse solo alcune celle prima del reset totale). Ad ogni modo provo il nuovo e ti dico. Mi puoi dire solo nello specifico cosa hai sistemato così mi rendo conto meglio.
Grazie ancora per l'aiuto.
È un po' lungo il discorso ma in poche parole siccome ho dichiarato delle variabili pubbliche (sCliente, sComitive, x, k), queste vanno azzerate ad ogni lancio della Routine, altrimenti incidono sul proseguo della Routine stessa.
Poi in fase di lancio, c'erano delle istruzioni che si avviavano prima rispetto ad altre. Quindi ho sistemato le varie posizioni delle istruzioni.
Ciao Alex, allora secondo me ci siamo.
Ti chiedo se possibile solo una correzione:
In pratica se adesso non compilo il campo comitiva lui mi da un messaggio di alert (manca cliente o comitiva) che ho visto hai inserito nel codice. In un vecchio codice nello specifico questo:
Option Explicit Sub save_ascomitive() Dim p As String Dim s As String Dim v As Variant Dim i As Integer Dim wb1 As Workbook Dim wb2 As Workbook 'inizio istruzioni cursore mouse With Application .ScreenUpdating = False .Cursor = xlWait End With Set wb1 = ThisWorkbook 'in wb1 imposto riferimento a questo foglio di lavoro Set wb2 = Workbooks.Add 'in wb2 imposto riferimento a nuovo foglio di lavoro p = "Z:\Altri computer\Il mio computer\Archivio\UFFICO BOOKING" 'inserire percorso cartelle preventivi 'variabile per salvataggio con nome s = "@A - @B - @C - @D" For i = 1 To 4 v = Choose(i, "B3", "B1", "B6", "B7") s = Replace(s, "@" & Chr$(64 + i), wb1.Worksheets("Input").Range(v)) Next ' inserire il nome della cartella preventivi excel al posto di Preventivi Excel wb1.Worksheets.Copy before:=wb2.Worksheets(1) 'in cella N46 del foglio originale salvo data e ora di creazione del foglio copiato With wb2 .Worksheets("Input").Range("N46") = "Preventivo creato il " & Date .SaveAs p & "\1 PREVENTIVI E VOUCHER\PREVENTIVI EXCEL\" & Replace(s, "/", "-") & ".xlsx", FileFormat:=xlWorkbookDefault For Each v In .LinkSources(Type:=xlLinkTypeExcelLinks) .BreakLink Name:=v, Type:=xlLinkTypeExcelLinks Next wb1.SaveCopyAs p & "\1 PREVENTIVI E VOUCHER\PREVENTIVI Excel VBA\" & Replace(s, "/", "-") & ".xlsm" With .Worksheets("Output") ' inserire il nome della cartella preventivi PDF al posto di Preventivi Excel .Columns("A:A").ColumnWidth = 44.57 .Select .Range("$A$5:$C$64").AutoFilter Field:=3, Criteria1:="<>" wb1.Worksheets("Input").Range("N45").Value = p & "\0 OPERATORI\Fabrizio\PREVENTIVI PDF fabrizio\" & Replace(s, "/", "-") & ".pdf" .ExportAsFixedFormat xlTypePDF, p & "\0 OPERATORI\Fabrizio\PREVENTIVI PDF fabrizio\" & Replace(s, "/", "-") & ".pdf", from:=1, To:=4 End With .Worksheets("Input").Select .Close True 'salva e chiude il nuovo foglio creato End With With wb1.Worksheets("Input") ' inizio istruzioni di resettaggio celle .Range("B12:D12,B8:D12,B20:D20,G26,G28:G30,G33,G35,J27,N45,D56,D57,D58,J31:J33,D64").ClearContents .Range("B8:D8") = "2" .Range("B9:D9") = "1" .Range("A56:C56") = "Rigo personalizzabile" .Range("A57:C57") = "Rigo personalizzabile" .Range("A58:C58") = "Rigo personalizzabile" ' istruzione di aggiunta +1 al preventivo .Range("B3").Value = .Range("B3").Value + 1 If .Range("B2") <> "" Then On Error GoTo errore v = Split(.Range("B2"), " ") If CInt(v(0)) >= CInt(v(2)) Then GoTo Salta .Range("B2") = CInt(v(0)) + 1 & " " & v(1) & " " & CInt(v(2)) End If Salta: End With 'fine istruzioni cursore mouse With Application .ScreenUpdating = True .Cursor = xlDefault End With Exit Sub errore: MsgBox "Errore nr.: " & Err.Number & " - " & Err.Description End Subnon funzionava il campo Cliente per come lo hai fatto adesso e sembra andare bene ma mi permetteva di non inserire il campo comitiva. Tu dirai a cosa ti serve?
Se io voglio fare 2 preventivi allo stesso cliente, ma per periodi diversi (quindi non è una comitiva), mi avvalgo di questa macro per non farmi cancellare i dati in quanto il successivo preventivo cambierà solo il periodo, es:
Preventivo 1: Cliente: Salvatore - periodo 11/08 - 18/08
Preventivo 2: Cliente: Salvatore - periodo 04/08 - 11/08
Quindi se possibile vorrei che il campo comitiva non sia obbligatorio ma che funzionasse proprio come lo hai creato ma se non lo metto stampa cmq il preventivo. E' possibile secondo te?
Ti allego una versione 7.0 su cui ho modificato alcune cose, cosi parti da qui.
Grazie mille
Allegati:
You must be logged in to view attached files.Ciao,
dovremmo esserci....prova e fammi sapere
Allegati:
You must be logged in to view attached files.Sembra tutto ok. Grazie milleeeeeeeeeeee
-
AutoreArticoli
