+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18

Discussione: Problema con menu a tendina e macro

  1. #1
    Bensisko non è in linea Novello
    Post
    9

    Problema con menu a tendina e macro

    Salve a tutti Ragazzi,
    sono un neofita, avrei bisogno di un aiutino, vengo al problema.
    In foglio (come da foto) ho delle colonne cui sopra ci sono diversi menu a tendina, voglio che ogni volta che ci sono scritte tipo "Riposo" ci creino sotto delle x su tutta la colonna sottostante, esclusa quella subito sotto dove c'e la data.
    Vorrei anche che se lascio vuota o cancello il dato nel menu a colonna cancelli tutte le "x" lasciando nuovamente le celle vuote.
    Ora mi sono guardato in giro e ho trovato questa istruzione

    codice:
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <>  "$H$6:$T$6:$N$6:$Q$6:$H$40:$K40:$N$40:$Q$40:$T$40:$H$40:$H$73:$K73:$N$73:$Q$73:$T$73:$H$73" Then GoTo Uscita
        Select Case Target.Value
            Case Is = "Riposo"
                Call Giorno_Riposo
             Case Is = "Congedo"
                Call Giorno_Riposo
             Case Is = "Ferie"
                Call Giorno_Riposo
            Case Is = "Ho Mattinale"
                Call Giorno_Riposo_Cancella
            Case Is = "Chiedo P. Presto"
                Call Giorno_Riposo_Cancella
            Case Is = "Chiedo Pom Normale"
                Call Giorno_Riposo_Cancella
            Case Is = "Chiedo Tardi"
                Call Giorno_Riposo_Cancella
            Case Is = "Cancella Colonna"
                Call Giorno_Riposo_Cancella
         End Select
    Uscita:
    End Sub
    Se lascio il simbolo <> non succede niente, se metto il simbolo = funziona ma su tutte le colonne, ci sono altri menu a tendina sotto la colonna Autista, ma se cancello e vuoto la cella dopo aver scelto un nome dal menu a tendina dinamico mi cancella tutta la colonna. Io vorrei che la istruzione agisse solo sulle colonne/ celle specifiche e basta.
    Ringrazio chi spenderà' un po' del suo tempo per aiutarmi.
    Ultima modifica di AntonioG; 05-09-2019 18:07 

  2. #2
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,253
    Blogs
    5
    Correggo il titolo.

    Inoltre devi usare il tag CODE per il codice.

    Attenzione per le prossime volte.
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  3. #3
    Bensisko non è in linea Novello
    Post
    9
    Salve Antonio,
    mi scuso per le inesattezze,
    dove trovo le spiegazioni su come si utilizza e cosa e' il tag CODE?
    Grazie

  4. #4
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,253
    Blogs
    5
    Vedi nel regolamento
    Avvisi generali e importanti, a pena CHIUSURA thread e/o BAN
    Il crossposting è vietato.
    Le richieste di "pappa pronta" sono vietate.
    Utilizzate i tag CODE per il codice.
    Leggere il Regolamento per chiarimenti PRIMA di creare nuovi thread.
    Utilizzare sempre i PM per comunicare con i moderatori.
    Non mi contattate in PM per problemi di software, usate il forum

  5. #5
    Bensisko non è in linea Novello
    Post
    9
    Grazie Antonio,
    ho letto il regolamento senza trovare nulla, su tag CODE poi ho guardato altri Thread per vedere un esempio senza trovare niente. So che non e' il posto giusto per questa discussione un link dove trovo un esempio grazie, cosi non violo il regolamento.

  6. #6
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    290
    Qui trovi tutto. Ma se avessi veramente letto il regolamento, avresti i link diretti. Trovi tutto nella sezione "Pappa Pronta"

  7. #7
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    290
    In merito alla domanda del post, sei tu che devi far agire le funzioni [Giorno_Riposo] e [Giorno_Riposo_Cancella] sul Range che ti interessa... Senza vedere come hai scritto quelle funzioni non ti si riesce ad aiutare.
    Inoltre la stringa dell'If non ha senso. Quel confronto ti restituirà sempre e solo False quindi al Select non ci arriverai mai. Metti un bel punto di interruzione e fai un po' di Debug.

  8. #8
    Marius44 non è in linea Scolaretto
    Luogo
    Catania
    Post
    315
    Buon pomeriggio a tutti
    Apporto qualche "piccolo" ritocco al tuo codice.
    codice:
    Private Sub Worksheet_Change(ByVal Target As Range)
    if Not Intersect (Target,range("$H$6:$T$6:$N$6:$Q$6:$H$40:$K40:$N$40:$Q$40:$T$40:$H$40:$H$73:$K73:$N$73:$Q$73:$T$73:$H$73")) is nothing Then
        Select Case Target
            Case Is = "Riposo", "Congedo", "Ferie"
                Call Giorno_Riposo
            Case Is = "Ho Mattinale", "Chiedo P. Presto", "Chiedo Pom Normale", "Chiedo Tardi", "Cancella Colonna"
                Call Giorno_Riposo_Cancella
         End Select
    end if
    End Sub
    Provalo e fai sapere. Ciao,
    Mario

  9. #9
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    290
    Ho paura che continuerà a piantarsi sul [$H$6:$T$6:$N$6:$Q$6:$H$40:$K40:$N$40:$Q$40:$T$40:$ H$40:$H$73:$K73:$N$73:$Q$73:$T$73:$H$73]. È del tutto privo di senso. I due punti servono ad indicare intervalli di celle contigue. I suoi sono addirittura parzialmente sovrapposti! E per dividere Range non contigui si usa il punto e virgola, ma il metodo Range non la accetta una stringa tipo ["A1:E1;A2:E2"]. Dovrebbe concatenare con [And] tutti gli [Intersect] sui vari Range che gli interessano.

  10. #10
    Marius44 non è in linea Scolaretto
    Luogo
    Catania
    Post
    315
    Ciao
    @Sgrubak
    Hai ragione ma volevo si rendesse conto da solo di quanti "errori" ci sono nel codice da lui postato. Mi sono limitato a dare un "suggerimento" circa il modo di impostare l'If e come intercettare i vari casi con Select Case.
    Per quanto attiene al suddetto codice, per l'indicazione delle celle, voglio sperare (ed è questo quello che ho immaginato) che si tratti di celle singole, quindi potrebbe bastare come separatore la virgola.

    Ciao,
    Mario

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi