Si, con l' inputbox puoi ottenere un unico dato alla volta; teoricamente sarebbe possibile chiedere all' utente l' immissione di piu' informazioni separate da un carattere chiave, per poi splittarle via codice, ma non credo che il risultato sia brillante.
Come alternative vedi quali di queste ipotesi ti aggrada di piu':
1) piu' inputbox in successione
2) vai su un foglio (magari normalmente nascosto) dove hai creato anche visivamente un "modulo" con intestazioni e celle da riempire; puoi inserire pulsanti con macro associate tipo Azzera modulo (cancella le celle da compilare, in caso di errore) e Fatto (prende i dati e li sposta nelle celle di destinazione; se il foglio e' protetto salvo le celle da compilare, e nella protezione hai impostato "consenti la selezione delle sole celle non protette" allora il cursore si muovera' solo sulle celle da riempire.
3) Oppure usi una UserForm (questa e' la tecnica piu' professionale)
La userform e' un componente totalmente da progettare, quindi puo' contenere numerosi oggetti al suo interno che poi vanno gestiti da codice vba.
Ti conviene fare qualche esercizio su un file di prova; ad esempio:
-parti da un file nuovo
-apri il vba editor con Alt-F11
-Menu /Inserisci /Userform; ti dovrebbe comparire una form dal titolo Userform1 e la Casella degli strumenti Form.
-cerca tra gli oggetti ("controlli") della casella degli strumenti il simbolo di Casella di testo; cliccalo, vai sulla form, disegna un rettangolo orizzontale, che apparira' bianco su sfondo grigio. Questo oggetto si chiama TextBox1
-ripeti e disegna il TextBox2 e se vuoi altri, prendendo nota del nome.
-sopra ai textbox puo' essere opportuno scrivere qualcosa: cegli l' oggetto Etichetta, disegnala sulla form, cambia la loro scritta che indichi cosa bisogna mettere nel textbox sottostante; questi oggetti si chiamano Label1, Label2, etc, ma probabilmente non necessiteranno di nessuna elaborazione.
-disegna un Pulsante di comando, modificagli il testo in Ok; questo oggetto si chiama CommandButton1
-disegna un secondo pulsante di comando con il testo Azzera; si chiama CommandButton2
-disegna un terzo pulsante con il testo Fine; e' il CommandButton3
-se abiliti la finestra "Proprietà" (con F4) e selezioni qualsiasi oggetto vedrai quali sono le caratteristiche di questo oggetto; molte sono modificabili per cambiare nome, descrizione, caratteristiche, apparenza, comportamento dell' oggetto: non cominciare a farlo adesso altrimenti rischi la saturazione...
E' il momento di passare al codice:
-premi F7 ed entriamo sul modulo codice della form (per tornare alla form, doppioclick sulla scritta Userform1 nella finestra Progetto a sx)
-come prima carrellata, scorri sul drop down menu di sx gli oggetti e confronta sul drop down menu di dx quali eventi puoi gestire; finita la carrellata cancella tutto il codice che ti ha scritto
-al momento gestiremo solo gli eventi Click dei due CommandButton; per questo:
--seleziona CommandButton1 a sx e Click a dx
--completa la macro con queste istruzioni:
- Codice: Seleziona tutto
Private Sub CommandButton1_Click()
Sheets(1).Range("A1") = TextBox1.Text
Sheets(1).Range("A2") = TextBox1.Text
End Sub
--ripeti con CommandButton2/click con questo codice
- Codice: Seleziona tutto
Private Sub CommandButton2_Click()
TextBox1.Text = ""
TextBox2.Text = ""
End Sub
--ripeti con CommandButton3/Click con questo codice:
- Codice: Seleziona tutto
Private Sub CommandButton3_Click()
Me.Hide 'Chiude ma lascia in memoria
'Unload UserForm1 'Chiude e toglie dalla memoria
End Sub
Ovviamente se hai creato piu' di 2 textbox scriverai altre istruzioni che ricalcano quelle dell' esempio. Il concetto e' che il primo pulsante (quello con la scritta Ok) spostera' il contenuto dei textbox nelle celle a tuo piacere (oppure li userai in ulteriori calcoli prima di finire in qualche cella); il secondo (Cancella) cancella invece il contenuto dei textbox, ad esempio in caso di errore; il terzo (Fine) chiude la form ma lascia in memoria oppure scarica anche la memoria.
Ti manca ancora questa macro, che va in un "Modulo standard" di codice (es Modulo1):
- Codice: Seleziona tutto
Sub ApriUF1()
UserForm1.Show
End Sub
A questo punto un breve collaudo:
-vai su Foglio1
-lancia la macro ApriUF1
-vedi cosa succede
Per oggi per me puo' bastare; tu puoi continuare esplorando come usare le Proprieta' degli oggetti semplici che abbiamo inserito, quali sono gli altri oggetti disponibili, come puoi eseguire dei controlli sulle sequenze, come azzerare i dati o metterli a valori di default all' apertura della form, etc etc.
E quando sei pronta a lavorare sul tuo vero file, prima di cominciare sul pc e' opportuno che ti fai uno schema di quali controlli ti servono sulla form e di come vuoi che si comportino; poi comincia col disegno della Form, prendendo nota del nome degli oggetti man mano che li crei (lo leggi in testa alla finestra Proprieta', tab Alfabetico); infine passi al codice di gestione Form, basato sulla gestione degli eventi associati al singolo oggetto.
Ti avverto che le form non sono la mia passione, non aspettarti risposte furbe alla domande che farai; non da me.
Ciao.