target riporta valori



  • target riporta valori
    di bruce.27 data: 18/05/2015 18:56:20

    Salve, sto muovendo i primi passi nel VBA e sto cercando di creare un automatismo.
    In pratica ho varie colonne da C1 fino a BG1 che indicano i giorni del mese, in altro foglio ho la cella A1 dove voglio che in base alla cella attiva cambi data.. in pratica se il focus è su C15 o C20 lui restituisce giorno 1 del mese, se cambio colonna cambia la data in base alla selezione.
    io ho provato con il target ma non so come andare avanti
    c'è da sottolineare che nella cella dove devo aggiornare la data vi è già una data e devono solo cambiare i 2 numeri del giorno mentre nell' intestazione colonna il formato è numero quindi 1,2,3,4, e così via.
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target = Range("C:BG") Then
    ............
    End Sub



  • di alfrimpa data: 18/05/2015 19:10:02

    Ciao Bruce e benvenuto su questo Forum.

    Dalla tua spiegazione non è che si capisca molto e l'evento WorkSheet_Change non mi sembra il più appropriato per quello che vuoi fare (se ho capito bene).

    Come al solito ti consiglio di allegare un file di esempio (su questo forum c'è un pulsante apposito in alto a destra) e spiega quel che vuoi fare.

    Alfredo





  • di alfrimpa data: 18/05/2015 19:19:34

    Intanto dai uno sguardo al file che ti ho allegato ed al codice qui sotto e dimmi se ho interpretato bene.

    Alfredo
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Range("a1:e1")) Is Nothing Then
        Worksheets("Foglio2").Range("a1").Value = Target.Value
    End If
    End Sub
    






  • di bruce.27 data: 19/05/2015 12:45:53

    Ciao Sensei!! mi hai beccato!!!!
    il file è quello che mi hai fatto tu sul mensile in foglio 1 e in foglio 2 la tabella con i posti i turni e i rispettivi nominativi con la function "prova" di select case; però voglio arrivarci io a scrivere il codice non aiutarmi troppo..io ho pensato di mettere il controllo con target in modo che ogni volta che seleziono una cella nel foglio 1 mensile mi veda quella colonna a che giorno corrisponde e la tab del foglio 2 aggiorni la data che alimenta la tab in base alla selezione..io a monte metterò un interruttore che attiva questa automazione per poterlo arrestare quando non mi serve ma questo non è importante.
    Per questo ho pensato a
    Worksheet_Change(ByVal Target As Range)
    poi dichiararli il range in base alle colonne che deve guardare ma non so che linea seguire con If per prendere ad esempio alla selezione della colonna C nella C2 risulta essere valore 2 del mese ed allora la data della tab (che è in formato data) cambi solo il giorno..Alfredo dammi le linee guida ma devo arrivarci io..mi sono letto i file che mi hai passato ma mettere in pratica e scrivere codice è diverso da leggerlo e capire..solo così imparerò



  • di bruce.27 data: 19/05/2015 18:17:16

    Alfredo ci sono riuscito!!!! e da solo!!!!!!!!!!!!!
    Quello che voglio ottenere io si ha con il codice qui sotto..ma così riempirò di tanti if per quante sono le colonne dei giorni
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then
        Worksheets(2).Range("A1").Value = Range("C5").Value
    End If
    End Sub
    If Target.Column = 5 Then
        Worksheets(2).Range("A1").Value = Range("E5").Value
    End If
    End Sub
    Etc. etc.



  • di alfrimpa data: 20/05/2015 14:31:46

    Bravo ma guarda che c'è qualche End Sub di troppo.

    Poi potresti gestire il target.column con un Select Case

    Alfredo





  • di bruce.27 data: 22/05/2015 08:31:17

    Si hai ragione Alfredo meglio con select case è meglio