Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258

    Creare form inserimento dati excel

    Salve, ho creato un database in excel, dove archio tutti i miei dati, ora visto che le colonne ne son parecchie e vengono aggiornate settimanalmente, per evitare problemi di inserimento dati, avevo pensato di creare una form dove richiamo il numero della riga, oppure un altro valore univoco, mi comparono in delle texbox tutti i valori , in modo da poterli modificare o aggiungere, senza sbagliare riga o altro...Ho provato a fare delle ricerche online ma non ho trovato nulla di specifico, potete darmi qualche input su come partire? grazie mille.

  2. #2
    Ciao,
    la cosa non è così immediata e richiede nozioni basilari di programmazione, comunque provo a farti un esempio molto semplice con tutti i passaggi in modo che ti possa rendere conto di come funzionano le cose.

    Per fare un form devi usare VBA, quindi la prima cosa da fare, se hai excel 2007 o superiori, è di salvare il foglio come "Cartella di lavoro con attivazione macro", cioè xlsm invece di xlsx.

    Se invece hai un excel precedente al 2007 va bene il formato xls.

    Ora inserisci nelle celle da A1 ad A10 del Foglio1 i valori da 1 a 10 e nelle celle da B1 a B10 le lettere da A a J. Questi sono i dati su cui andremo a lavorare per le prove.

    Dopo aver inserito i dati bisogna inserire sul foglio un pulsante che, cliccato, faccia aprire il form, quindi sempre restando sul Foglio1, clicca su Inserisci nella scheda Sviluppo (se non ce l'hai devi attivarne la visualizzazione dalle opzioni di Excel), seleziona il pulsante di comando dai controlli ActiveX e inseriscilo sul foglio.

    Clicca due volte sul pulsante in modo da entrare nell'editor di VBA (nell'editor puoi entrare anche con ALT-F11 ma così sei sicuro che il codice che inserisci sia associato a quel pulsante altrimenti potresti sbagliare scheda) e inserisci questo codice:

    codice:
    Private Sub CommandButton1_Click()
       With UserForm1
           .TextBox1 = ""
           .TextBox2 = ""
           .Show
       End With
    End Sub

    Questo codice, attivato dal click sul pulsante, visualizza il form (che ancora non abbiamo creato) e imposta i due campi TextBox (che ancora non abbiamo inserito) al valore vuoto.

    Fatto questo devi creare il form semplicmente cliccando su UserForm dal menu Inserisci dell'editor.
    Verifica che il form si chiami UserForm1.

    Inserisci poi sul form due caselle di testo e verifica, visualizzandone le proprietà, che il nome sia TextBox1 e TextBox2 e poi inserisci un "Pulsante di comando" che servirà per eseguire l'azione associata al form. Il pulsante deve chiamarsi CommandButton1.

    Fatto questo il form è completo, occorre solo il codice che deve essere eseguito alla pressione del pulsante. Clicca quindi due volte sul pulsante e inserisci questo codice:

    codice:
    Private Sub CommandButton1_Click()
       If TextBox1 <> "" Then
          For Each casella In Range("A:A")
             If CStr(casella) = CStr(TextBox1) Then
                If TextBox2 = "" Then
                   TextBox2 = casella.Offset(0, 1)
                Else
                   casella.Offset(0, 1) = TextBox2
                End If
                Exit For
             Else
                If casella = "" Then
                   Exit For
                End If
             End If
          Next
       End If
    End Sub

    Questo codice verifica se nella TextBox1 è stato inserito un valore e lo cerca nella colonna A, se lo trova si chiede se anche nella TextBox2 sia stato inserito un valore, se non è stato inserito preleva il valore dalla colonna B e lo visualizza nella TextBox2, se invece è stato inserito aggiorna il valore della colonna B con quanto inserito nella TextBox2.

    Per fare la prova torna sul foglio excel, disattiva la modalità di progettazione con l'apposita icona e clicca sul pulsante.

    La struttura che ti ho indicato è molto elementare e grezza (per esempio non prevede la pulizia dei campi fra un utilizzo e l'altro e tante altre cose) ma contiene sostanzialmente tutte le azioni che ti servono cioè la visualizzazione del form e la ricerca e aggiornamento dei dati del foglio.

    Ora tocca a te dedicarti ai particolari e se hai bisogno chiedi pure.

    Buon lavoro
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    258
    Ciao, grazie per la risposta, ho provato a fare il tuo esempio e fa quello che vorrei io, ma cosi impostato dovrei utilizzare la prima colonna come id univo per ogni riga, e poi modificare le varie colonne, giusto? adesso provo a fare una bozza, nel caso posso chiederti altre info?

  4. #4
    Quote Originariamente inviata da sixdas Visualizza il messaggio
    Ciao, grazie per la risposta, ho provato a fare il tuo esempio e fa quello che vorrei io, ma cosi impostato dovrei utilizzare la prima colonna come id univo per ogni riga, e poi modificare le varie colonne, giusto? adesso provo a fare una bozza, nel caso posso chiederti altre info?
    Sì, esatto, nell'esempio che ti ho fatto la prima colonna contiene la chiave e la seconda i dati ma ovviamente puoi sbizzarrirti come ti pare su quanti campi utilizzare e che ricerche fare.

    La cosa più difficile in questi casi è l'analisi del problema: devi chiarirti bene le idee su cosa vuoi che faccia il form e su come deve farlo e poi trasformare l'analisi in codice, ma questo viene dopo.

    Comincia a definire esattamente che campi e che controlli inserire nel form.

    Per esempio potrebbe essere utile un radio-button che ti faccia scegliere fra visualizzazione o aggiornamento dei dati, poi potresti mettere diverse textbox in cui inserire diverse chiavi di ricerca come numero di riga, data o altro (oppure anche una textbox unica e un radio che indichi la ricerca da fare), potresti fare un pulsante che duplica una riga esistente in modo da poterne inserire una simile senza doverla digitare daccapo ... insomma le possibilità sono infinite, l'importante e fare un buon progetto definendo esattamente i campi da inserire e le azioni da eseguire per arrivare al risultato.

    Chiedi pure se hai bisogno.
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.