+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Aiuto su una macro

  1. #1
    MARVIN55 non è in linea Novello
    Post
    36

    Aiuto su una macro

    Buongiorno ragazzi , "non voglio la pappa pronta" ma sono proprio novello ,di piu' non sono riuscito a fare ....
    in un foglio excel in colonna "A" da riga 8 a riga 372 ho le date dal 1 gennaio al 31 dicembre ,nelle celle K2 ,K3,L2 ,devo inserire una data selezionandola dalla colonna A.
    con il mouse clicco su K2 e in colonna A selezionare la data da copiare in essa ....
    con il mouse clicco su K3 e in colonna A selezionare la data da copiare in essa ....
    con il mouse clicco su L2 e in colonna A selezionare la data da copiare in essa ....
    puo' essere fatto solo con una macro ?
    ho provato con :
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("L2") = Selection.Value
    Range("K2") = Selection.Value
    Range("K3") = Selection.Value
    End Sub

    come modificarla :
    1- Range("???").Select deve essere solo colonna A
    2- Se clicco su "L2" la data selezionata in colonna A deve essere copiata solo in "L2"
    Se clicco su "k2" la data selezionata in colonna A deve essere copiata solo in "k2"
    Se clicco su "K3" la data selezionata in colonna A deve essere copiata solo in "K3"
    3-La macro deve andare in esecuzione solo se clicco su L2,K2,K3 e interrompersi dopo la scelta in colonna A

    Speranzoso di un aiuto vi ringrazio
    Ultima modifica di AntonioG; 18-10-2019 18:38 

  2. #2
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    388
    Invece di impazzire con una macro, hai provato a vedere di impostare un elenco a discesa su L2, K2 e K3 con riferimento ai dati nella colonna A?

  3. #3
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,772
    Blogs
    5
    Il titolo che hai usato per la discussione non va affatto bene. E non usi neanche i tag cose per il codice. Questa volta passi ma la prossima volta chiudo il thread senza preavviso. Leggi il 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

  4. #4
    MARVIN55 non è in linea Novello
    Post
    36
    Grazie Sgrubak per aver letto , preferirei utilizzare una macro (anche per imparare ) e chiedo scusa al moderatore AntonioG per gli errori commessi ,
    ho cercato di fare la macro ma purtroppo non funziona o meglio non da il risultato che desideravo ...


    codice:
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim mCella As Range
    Dim mCella1 As Range
    Dim mCella2 As Range
    Set Data = Me.Range( "a8:a372" )
    If Not Intersect(Target, Data) Is Nothing Then
    Set mCella = Range("k2")
    Set Rng = Me.Range( "a8:a372" )
    Range("k2") = Selection.Value
    End If
    '
    Set Data = Me.Range( "a8:a372" )
    If Not Intersect(Target, Data) Is Nothing Then
    Set mCella1 = Range("k3")
    Set Data = Me.Range( "d1:d22" )
    Range("k3") = Selection.Value
    End If
    '
    Set Data = Me.Range( "a8:a372" )
    If Not Intersect(Target, Data) Is Nothing Then
    Set mCella2 = Range("l2")
    Set Data = Me.Range( "a8:a372" )
    Range("l2") = Selection.Value
    End If
    End Sub
    il risultato desiderato doveva essere che cliccando la cella k2 e selezionando valore in colonna A (esempio 13/11/2019) mi copiasse in k2 il valore ( 13/11/2019),
    cliccando la cella k3 e selezionando valore in colonna A (esempio 02/11/2019) mi copiasse in k2 il valore ( 02/11/2019),
    cliccando la cella L2 e selezionando valore in colonna A (esempio (18/08/2019) mi copiasse in L2 il valore (18/08/2019),
    invece sia in k2,k3 e L2 scrive il valore selezionato in colonna A ( 13/11/2019).
    Forse non e' la strada giusta .....pensavo che cliccando su k2 o k3 o L2 selezionavo la cella in cui doveva scrivere il valore selezionato nella colonna A
    Ultima modifica di AntonioG; 18-10-2019 14:34 

  5. #5
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    388
    Dunque... Se sfrutti l'evento Selection_Change, sai dove arrivi con la selezione ma non sai da dove parti. Non si può quindi percorrere la strada che cerchi di intraprendere tu.
    Ergo io propenderei per la gestione di due casi, mantenendo valido il tipo di evento scelto:
    1) [Target] è una delle 3 celle che ti interessano. Salvi il range in una variabile pubblica a livello di modulo e magari le cambi il colore dello sfondo o del bordo per sapere che l'hai memorizzata. Questa variabile la chiamiamo [Destinazione]
    2) [Target] appartiene alla colonna "A". Copi il valore di [Target] in [Destinazione].

    Da qui, ci si può sbizzarrire col codice e estendere il ragionamento, ma così su due piedi mi sembra la soluzione più simile al tuo approccio.

  6. #6
    MARVIN55 non è in linea Novello
    Post
    36
    Rinnovo il grazie Sgrubak .... qualche altra indicazione ... considera che stai parlando ad un nonnino ,uso excel da 10 anni ma mai utilizzato il vba,di volonta' tantissima ....studiero' andando a leggere (vaiabile pubblica) e altro

  7. #7
    L'avatar di AntonioG
    AntonioG non è in linea Moderatore Globale Ultimo blog: Commodore 64 e Codemotion
    Luogo
    Roma
    Post
    16,772
    Blogs
    5
    Marvin... questo è un forum di programmazione... la conoscenza di vba è necessaria, non approfondita ma almeno di base.

    Il codice pronto non è consentito.
    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

+ Rispondi al Thread

Permessi di invio

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