Finestra per comando



  • Finestra per comando
    di Pippofe data: 25/11/2010

    Per favore chi mi aiuta a generare una comando che inserisca una finestra di richiesta? del tipo "digita il numero che vuoi nella cella x". grazie



  • di Baz (utente non iscritto) data: 25/11/2010

    Ciao,
    immagino tu intenda da vba, quindi suppongo tu sappia aprirne l'editor (cmq sia in excel alt+f11):

    ecco il comando:
    inputbox

    l'help ti può aiutare per la sintassi.


  • Finestra per comando
    di Pippofe (utente non iscritto) data: 25/11/2010

    Ti ringrazio molto. io purtroppo sono un utente "fai da te" e forse anche un po' ciucco!
    provo a spiegarmi mettendo "in chiaro" la serie di comandi che vorrei fossero preceduti da una finestra che mi chieda di inserire un numero nella cella f5. tieni presente che la macro inizia prima e quindi dovrebbe interrompersi con la finestra per poi proseguire.

    ' falsub macro
    '
    application.screenupdating = false
    '

    range("f5").select
    selection.copy
    range("s5").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    sheets("referto").select


  • Finestra per comando
    di Pippofe (utente non iscritto) data: 25/11/2010

    Scusa ho scritto non correttamente. l'input che chiedo è quello di scegliere un pulsante macro (tra i dieci disponibili).



  • di Baz (utente non iscritto) data: 25/11/2010

    Ora il ciucco divento io

    potresti ripartire con la spiegazione da zero?



  • Finestra per comando
    di Pippofe (utente non iscritto) data: 25/11/2010

    Credo che visto il tuo interlocutore (io) se riuscirai ad aiutarmi sarai proposto per il nobel. provo ad essere più chiaro inserendo la macro per intero.
    sub fallavv()
    '
    ' fallavv macro
    '

    application.screenupdating = false
    '
    range("e11").select
    selection.copy
    range("s11").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    sheets("referto").select
    range("a3:l3").select
    selection.insert shift:=xldown, copyorigin:=xlformatfromleftorabove
    sheets("input").select
    range("b21:m21").select
    selection.copy
    sheets("referto").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    sheets("input").select
    range("am7").select
    selection.copy
    range("j7").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("an7").select
    selection.copy
    range("l7").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("ao7").select
    selection.copy
    range("m7").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("j1:o1").select
    selection.clearcontents
    range("s2:u11").select
    selection.clearcontents
    range("a1").select

    application.screenupdating = true

    dim message, title, myvalue
    message = "inserisci n° maglia 4t che ha subito il fallo :"
    title = "fallo subito"
    myvalue = inputbox(message, title)
    if myvalue <> "" then
    range("s2").value = myvalue
    end if

    ' falsub macro
    '
    application.screenupdating = false
    '

    range("f5").select
    selection.copy
    range("s5").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    sheets("referto").select
    range("a3:l3").select
    selection.insert shift:=xldown, copyorigin:=xlformatfromleftorabove
    sheets("input").select
    range("b19:m19").select
    selection.copy
    sheets("referto").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    sheets("input").select
    range("am1").select
    selection.copy
    range("j1").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("an1").select
    selection.copy
    range("l1").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("ao1").select
    selection.copy
    range("m1").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("ap1").select
    selection.copy
    range("o1").select
    selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _
    :=false, transpose:=false
    range("j7:o7").select
    selection.clearcontents
    range("s2:u11").select
    selection.clearcontents
    range("a1").select

    application.screenupdating = true
    end sub

    a metà macro ho inserito una inputbox che serve per inserire un numero (n° di maglia che ha subito il fallo). in questo caso se mi affidassi ad un tablet con il solo uso touchscreen avrei la difficoltà di dover digitare un numero da tastiera. nel mio programma esistono già dei tasti (macro) che individuano i diversi numeri di maglia e inseriscono lo stesso in una cella definita.
    vorrei modificare l'input facendo in modo che la finestra mi chieda di digitare uno dei tasti.
    se non hai capito è certamente colpa mia. ti prometto, se ti interessa, di inviarti la soluzione se dovessi, per grazia divina, trovarla. grazie comunque.



  • di Baz (utente non iscritto) data: 25/11/2010

    Mmm a parte i 1000 copia incolla, che ovviamente spero ti servano, non ho ancora capito cosa ne vorresti fare della variabile "myvalue"

    come fai "azionare" i tuoi 10 pulsanti?
    ______________________________

    la puoi ovviamente snellire togliendo i vari select ... (vedi sotto la prima parte della tua macro)
     
    Sub fallavv()
    '
    ' fallavv macro
    '
    
    Application.ScreenUpdating = False
    '
    Range("e11").Copy
    Range("s11").PasteSpecial xlPasteAll
    
    Sheets("referto").Select
    Range("a3:l3").Insert shift:=xlDown
    Sheets("input").Select
    Range("b21:m21").Copy
    Sheets("referto").PasteSpecial xlPasteAll
    Sheets("input").Select
    Range("am7").Select
    Selection.Copy
    Range("j7").PasteSpecial xlPasteAll
    Range("an7").Copy
    Range("l7").PasteSpecial xlPasteAll
    Range("ao7").Copy
    Range("m7").PasteSpecial xlPasteAll
    Range("j1:o1").ClearContents
    Range("s2:u11").ClearContents
    
    Application.ScreenUpdating = True
    '....


  • Finestra per comando
    di Pippofe (utente non iscritto) data: 25/11/2010

    Premetto che le macro le ho costruite utilizzando "registra macro", quindi i 1000 copia incolla derivano da li.
    i tasti servono per pescare il numero della maglia e per copiarlo in una cella definita. lo so che è una banalità ma io l'ho pensato così il passaggio.
    ne approfitto per farti una domanda. sei per caso un esperto anche di sviluppo per iphone? se si mi piacerebbe farti una proposta di business.



  • di Baz (utente non iscritto) data: 25/11/2010

    Peccato, niente business.

    ma i copia/incolla da e11 -> s11, a3:i3 -> b21:m21 , am7 -> j7 , an7 -> l7 ...
    seppur registrati ti serviranno, no?

    pe risolvere il tuo problema mi manca ancora capire come vai selezionare i tuoi pulsanti, sono su una userform o dove? che evento click vien generato?
    non potresti fare un combobox e selezionare da un tuo elenco il valore che ti serve?

    (spero non aver detto una cavolata)