Sviluppare funzionalita su Microsoft Office con VBA Aumentare valori di celle tramite selezione di celle collegate

LoginRegistrati
Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
  • Autore
    Articoli
  • #29518 Risposta

    rucli

      Ciao è la prima volta che scrivo in questo forum.

      Cerco una soluzione ad un problema. In Foglio1 dalla cella D4 ho un gruppo di celle fino a D70. Queste sono collegate ad altre celle, stessa quantità, in Foglio2 dalla cella C4. Vorrei aumentare per esempio di 1 il valore della cella C4 di Foglio2 selezionando la cella D5 di Foglio 1.

      Con questo codice riesco a raggiungere il risultato:

      If ActiveCell.Address = "D5" Then
      Worksheets("Foglio2").Range("C4") = ActiveCell.Value + 1
      ElseIf ActiveCell.Address = "D6" then ...

      Però, questo codice va bene per poche celle; invece per un totale di 70 celle x 14 colonne direi di no. E' possibile secondo voi scrivere una Macro che svolga questa azione in modo ragionato che possa valere per tutte le celle della regione? Cioè la macro deve agire solo se la cella è selezionata e solo per la cella collegata.

      GRAZIE in anticipo per chiunque vuole cimentarsi con questo problema. 

       

      #29667 Risposta
      rollis13
      rollis13
      Partecipante

        Puoi usare questa mia macro, come base di partenza, da mettere nel modulo del Foglio1. Considerato che hai fornito pochissime e forse imprecise informazione su come vorresti venga realizzata l'attivazione, ti ho proposto due tipi di Evento. Pensando ad un refuso ti ho proposto anche due riferimenti di riga diversi ma se così non è, dove va effettuato l'incremento se seleziono la cella D4 ?

        Option Explicit
        'Private Sub Worksheet_Change(ByVal Target As Range) '<= alla variazione nella cella
        Private Sub Worksheet_SelectionChange(ByVal Target As Range) '<= alla semplice selezione della cella
            Dim ws2    As Worksheet
            Set ws2 = Worksheets("Foglio2")
            If Not Intersect(Target, Range("D4:D70")) Is Nothing Then
                ws2.Range("C" & Target.Row - 1) = ws2.Range("C" & Target.Row - 1).Value + 1 '<= riga precedente
                'ws2.Range("C" & Target.Row) = ws2.Range("C" & Target.Row).Value + 1 '<=stessa riga
            End If
        End Sub
      LoginRegistrati
      Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
      Rispondi a: Aumentare valori di celle tramite selezione di celle collegate
      Gli allegati sono permessi solo ad utenti REGISTRATI
      Le tue informazioni:



      vecchio frac - 2750 risposte

      albatros54
      albatros54 - 1038 risposte

      patel
      patel - 1032 risposte

      Marius44
      Marius44 - 922 risposte

      Luca73
      Luca73 - 750 risposte