Sviluppare funzionalita su Microsoft Office con VBA Insirere nuova riga alla compilazione della riga superiore

Login Registrati
Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
  • Autore
    Articoli
  • #20095 Score: 0 | Risposta

    Fabio90
    Partecipante

      Buongiorno,
      ho un foglio di calcolo che va compilato inserendo dei codici in colonna A.
      Nelle altre colonne vengono calcolati dei dati.
      Le ultime righe contengono valori di TOTALE.

      Vorrei che VBA creasse in automatico una riga, alla compilazione della prima riga, spostando le righe di totale sotto e trasportando anche le formule, creando quindi una tabella che si auto dimensiona in base alla quantità di righe necessarie e mantiene i totali a fondo pagina.

      Allego file di esempio

      Grazie

      Allegati:
      You must be logged in to view attached files.
      #20100 Score: 0 | Risposta

      patel
      Moderatore
        50 pts

        ma non è più semplice utilizzare la prima riga per i totali utilizzando un range per la somma abbastanza ampio ?

        #20101 Score: 0 | Risposta

        Fabio90
        Partecipante

          patel ha scritto:

          ma non è più semplice utilizzare la prima riga per i totali utilizzando un range per la somma abbastanza ampio ?

           

          Si certo, ma da questo file dovrò poi generare una stampa ed il numero di righe da inserire può variare da poche a diverse decine.

          L'idea è inoltre di non fare mettere troppo le mani nelle formule agli utenti che lo andranno a compilare nella colonna A con i codici, quindi vorrei togliere più possibile la necessità di interventi manuali per aggiungere / togliere righe, riportare formule etc...

          #20103 Score: 0 | Risposta

          Luca73
          Partecipante
            56 pts

            Io userei un qualcosa del genere.

             

            Private Sub Worksheet_Change(ByVal Target As Range)
            Application.EnableEvents = False
            If Not (Intersect(Target, Cells(Rows.Count, 1).End(xlUp)) Is Nothing) Then
                Range(Target, Target.Offset(0, 5)).Copy
                Target.Offset(0, 0).Insert Shift:=xlDown
                Target.Offset(0, 0).ClearContents
            End If
            Application.EnableEvents = True
            End Sub
            

            Bisogna partire con almeno due righe perchè il subtotale funzioni.

            La funzione di subtotaledeve diventare qualcosa del genere 

            =SUM($E$2:E3)

            #20113 Score: 0 | Risposta

            patel
            Moderatore
              50 pts

              Fabio90 ha scritto:

              L'idea è inoltre di non fare mettere troppo le mani nelle formule agli utenti che lo andranno a compilare nella colonna A con i codici, quindi vorrei togliere più possibile la necessità di interventi manuali per aggiungere / togliere righe, riportare formule etc...

              ma anche proporre a utenti inesperti fogli con macro che gestiscono eventi non penso sia molto raccomandabile

            Login Registrati
            Stai vedendo 5 articoli - dal 1 a 5 (di 5 totali)
            Rispondi a: Insirere nuova riga alla compilazione della riga superiore
            Gli allegati sono permessi solo ad utenti REGISTRATI
            Le tue informazioni: