Sviluppare funzionalita su Microsoft Office con VBA Macro creata ma non completa.

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

    Alby
    Partecipante

      Buongiorno a tutti,
      ho creato questa macro per far aggiungere, tramite il "pulsante (controllo modulo), una riga con copia formato a mio piacimento.

      Unico intoppo è dove si genera la riga nuova: sempre sotto alla riga 69. Vi allego due screen.
      Io vorrei creare una macro che mi inserisca una riga sempre sotto all'ultima popolata. (ultima versione di microsoft 365)

       

      "Sub Riga()
      '
      ' Riga Macro
      ' Inserisce e formatta riga.
      '
      ' Scelta rapida da tastiera: CTRL+MAIUSC+I
      '
      ActiveWindow.SmallScroll Down:=57
      Rows("70:70").Select
      Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
      Range("C69").Select
      Range(Selection, Selection.End(xlToRight)).Select
      Selection.Copy
      ActiveWindow.ScrollColumn = 8
      ActiveWindow.ScrollColumn = 7
      ActiveWindow.ScrollColumn = 3
      Range("C70").Select
      Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
      SkipBlanks:=False, Transpose:=False
      Application.CutCopyMode = False
      End Sub"

      Grazie mille.

      #43382 Score: 0 | Risposta

      alfrimpa
      Partecipante
        33 pts

        Gli screen non servono serve il file

        #43383 Score: 0 | Risposta

        Alby
        Partecipante

          Ho allegato un file prova,

          mi inserisce sempre una riga sotto la riga 69 e non sotto l'ultima riga popolata.

          Grazie.

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

          maxpit
          Partecipante
            7 pts

            Buon pomeriggio Alby,

            l'intoppo è voluto infatti nel codice del post #43381 leggo Rows("70:70").Select dove viene incollata la riga.

            Dovresti agire prima ricercando l'ultima riga popolata e successivamente scrivere il formato sulla riga succesiva.

            Fai qualche tentativo e poi modifichiamo il codice in conformità alla richiesta.

            A presto.

             

            P.S.: nel file non sono presenti macro ... 

            P.S. 2: ma la riga da cui attingere il formato è la 69? nel foglio allegato tale riga è vuota e non avrebbe senso ...

             

            #43387 Score: 0 | Risposta

            Alby
            Partecipante

              Stavo cercando di fare questo e dopo un po' di tempo ho ottenuto lo script   (aiutato da chatgpt)

              Sub InserisciRigaFormattataultima()
              Dim tbl As ListObject
              Dim newRow As ListRow
              Dim lastRow As ListRow
              Dim i As Integer

              ' Set reference to the table
              Set tbl = ThisWorkbook.Sheets("nome sheet).ListObjects("nome tabella")

              ' Check if there are existing rows in the table
              If tbl.ListRows.Count > 0 Then
              ' Get reference to the last row
              Set lastRow = tbl.ListRows(tbl.ListRows.Count)

              ' Add a new row after the last row
              Set newRow = tbl.ListRows.Add

              ' Copy formatting from the row above
              lastRow.Range.Copy
              newRow.Range.PasteSpecial Paste:=xlPasteFormats

              ' Clear contents of the new row
              newRow.Range.ClearContents
              End If
              End Sub

               

              Era questo il risultavo che mi serviva...

              #43390 Score: 2 | Risposta

              vecchio frac
              Senior Moderator
                272 pts

                Alby ha scritto:

                (aiutato da chatgpt)

                Vi prego, non cadete in questa tentazione... abbandonate ChatGPT (che spara delle boiate pazzesche e ogni volta che glielo si fa notare si discolpa con mille scuse) e tutti gli altri sedicenti aiuti al programmatore   

                #43391 Score: 0 | Risposta

                Alby
                Partecipante

                  Capisco e concordo con il tuo ragionamento ma ero veramente in "crisi" per sta macro...
                  ps sono alle prime armi con vba

                  #43402 Score: 0 | Risposta

                  Raffaele53
                  Partecipante
                    23 pts

                    Onestamente non ho capito nulla, comunque elimina tutte le righe tranne la prima e prova questo codice.

                    Option Explicit
                    Sub Aggiungi_Riga()
                    Dim tbl As ListObject, Ur As Long
                    Set tbl = Sheets("TRADINGJOURNAL").ListObjects("Tabella444")
                    Ur = Range("C" & Rows.Count).End(xlUp).Row
                    Sheets("TRADINGJOURNAL").Range("C" & Ur & ":G" & Ur).ListObject.ListRows.Add AlwaysInsert:=True
                    Sheets("TRADINGJOURNAL").Range("C" & Ur + 1 & ":G" & Ur + 1) = ""
                    End Sub
                  Login Registrati
                  Stai vedendo 8 articoli - dal 1 a 8 (di 8 totali)
                  Rispondi a: Macro creata ma non completa.
                  Gli allegati sono permessi solo ad utenti REGISTRATI
                  Le tue informazioni: