creare casella a discesa



  • creare casella a discesa
    di pippp (utente non iscritto) data: 12/06/2015 15:37:50

    Dovrei creare con vba una colonna con 10 caselle a discesa uguali
    tutto questo da Vba.
    Come si fa??



  • di alfrimpa data: 12/06/2015 16:01:19

    Ciao Pipp

    La tua domanda non è chiara.

    Se parli di caselle combinate queste vanno inserite (ma dove sul foglio o su una userform?) una per volta.

    Oppure parli delle tendine della Convalida Dati?

    Io propenderei più per la seconda ipotesi.

    Comunque in entrambi casi (sempre che abbia capito bene) il VBA non c'entra molto.

    Alfredo





  • di pipp (utente non iscritto) data: 12/06/2015 16:04:02

    hai ragione,
    dovrei inserirle da codice vba nelle celle delle colonne B:3



  • di alfrimpa data: 12/06/2015 16:09:16

    Scusa Pipp ma ancora una volta non sei chiaro (un consiglio: prima di inviare il messaggio rileggilo)

    Che cosa dovrebbe fare questo codice VBA?

    B:3 non sono colonne.

    Allega il file di esempio e descrivi chiaramente quello che vuoi ottenere.

    Alfredo





  • di pipp (utente non iscritto) data: 12/06/2015 16:21:29

    io ho letto.
    in vba che allego devo creare nella cella una casella a discesa (tipo convalida dati ecc..)
     
    Private Sub CREA_CASELLA()
        
        Dim ultima As Long, i As Long, j As Long
        ultima = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row  'trovo l'ultima riga del foglio 1
         For i = 1 To ultima
            Sheets(1).Cells(i, 2) = "casella a discesa con elenco di dati"
              
        Next
        
    End Sub
    



  • di alfrimpa data: 12/06/2015 16:26:39

    Ed i dati che devono essere visualizzati nella Convalida Dati da dove devono essere presi?

    Alfredo





  • di alfrimpa data: 12/06/2015 16:41:47

    Non so se è quello che vuoi ma prova la macro qui sotto.

    Alfredo
     
    Sub CREACASELLA()
        
        Dim ultima As Long, i As Long, j As Long
        ultima = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row  'trovo l'ultima riga del foglio 1
     
      For i = 1 To ultima
      Range("b" & i).Select
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=voci"
            .IgnoreBlank = True
            .InCellDropdown = True
            .InputTitle = ""
            .ErrorTitle = ""
            .InputMessage = ""
            .ErrorMessage = ""
            .ShowInput = True
            .ShowError = True
        End With
        Next i
        
    End Sub
    






  • di alfrimpa data: 12/06/2015 16:42:58

    Eventualmente è da variare il parametro "Formula1:"

    Alfredo





  • di Pipp (utente non iscritto) data: 12/06/2015 19:09:43

    Grazie, dopo provo.
    Ma =voci..... Che vuol dire
    Per. Gli inserimenti delle voci? Se si.come?



  • di alfrimpa data: 12/06/2015 19:13:14

    Ciao Pippp

    "voci" è il Range di celle che alimenta la convalida dati.

    Ma tu la sai usare, intendo manualmente, la convalida dati?

    Alfredo





  • di Pipp (utente non iscritto) data: 12/06/2015 19:58:34

    Si lo usare manualmente.
    Quindi le voci ê l'elenco delle scelte.
    Provo e farò sapere. Grazie
    In pratica devo aprire un database, riempire un elenco compreso la casella a discesa.
    Poi salvare il file in una cartella.



  • di alfrimpa data: 13/06/2015 14:11:48

    Ciao Pipp

    Continuo a non capire il tuo obiettivo.

    E non capisco neanche la necessità di una macro per la creazione di una convalida dati quando per farla, anche manualmente, occorrono pochi secondi.

    Alfredo





  • di Pipp (utente non iscritto) data: 13/06/2015 18:58:36

    Lo voglio fare in via perché devo fare 100 file per 4 volte con un elenco di nome ciascuno prelevato da un database sul server. e salvare ogni file in automatico.
    Farlo manualmente penso che ci vuole un bel po' di tempo



  • di alfrimpa data: 13/06/2015 19:02:22

    Va bene.

    Hai provato la macro che ti ho postato in postato in precedenza?

    Fa quello che vuoi?

    Se hai 100 file occorrerebbe prevedere un ciclo che:

    1) apra ogni singolo file
    2) applichi la convalida dati
    3) salvi e chiuda il file

    È corretto?

    Alfredo





  • di alfrimpa data: 13/06/2015 19:06:52

    Ma se ogni file deve avere un elenco di voci di convalida diverso la vedo un po' dura.

    Occorrerebbe prevedere un Select Case sul nome del file per applicare il corretto elenco e questo per 100 file

    Non so se ho interpretato bene.

    Alfredo