You are here:Home-Domande su Excel VBA e MACRO-[RISOLTO] Aggiunta di dati tramite macro per tabella Excel
[RISOLTO] Aggiunta di dati tramite macro per tabella Excel2018-11-14T12:07:27+01:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Aggiunta di dati tramite macro per tabella Excel

Visualizzazione 30 filoni di risposte
  • Autore
    Post
    • antinoantino
      Partecipante
        Post totali: 38

        Buongiorno,

        Con l’aiuto di Sid, che saluto, qualche tempo indietro è stato completato con successo un programma relativo alla fatturazione.

        Tra le altre cose il programma gestisce la situazione di ogni cliente relativo al periodo di fatturazione tramite click su “Report Fatturazione” nella schermata iniziale del programma.

        Ora vorrei che nella tabella che compare venisse aggiunto:

        – due colonne (C e D) con intestazione rispettivamente “Periodo da Fatturare” e “Costo”. La prima colonna (C) senza alcun dato da riportare e la seconda (D) riportando – se esiste – il dato esistente nella cella “H1” del foglio numerato relativo a quel cliente;

        – Una riga in più per ogni cliente al report da stampare;

        – la stampa prevedesse il foglio orizzontale anziché, come è adesso, verticale.

        Inserisco il link da dove scaricare i files interessati. Per far partire il programma cliccare su “Programma fatturazione”.

        Grazie dell’aiuto.

        https://www.dropbox.com/sh/csu41no8emdj3j5/AADfTRFm3RuDA_LTrl61bfD5a?dl=0

         

         

        • Questo topic è stato modificato 1 anno, 6 mesi fa da sidsid.
      • sidsid
        Moderatore
          Post totali: 749

          Ciao
          Francia Gino non ha nessuna voce nel suo database, ma ha un valore di 20 euro in H1; è un errore oppure bisogna tenere conto anche di questa condizione?
          Mi spiego meglio: bisogna verificare il valore di H1 in ogni foglio cliente, anche se questo ha il database vuoto?

        • antinoantino
          Partecipante
            Post totali: 38

            Ciao Sid,

            Si, bisogna verificare sempre il valore inserito in H1.

            Il report che esce serve, in realtà, per predisporre la nuova fatturazione per ogni cliente, quindi se il database è vuoto verrà scritto “Mai fatturato”, nel caso contrario troveremo scritto il periodo già fatturato.

            Un saluto

             

          • sidsid
            Moderatore
              Post totali: 749

              Secondo le tue indicazioni il report come nell’immagine
              Francia Gino che non ha mai fatturato, ma ha il valore 20 nella colonna “Costo”; è corretto?

            • antinoantino
              Partecipante
                Post totali: 38

                Ciao Sid,

                correttissimo.

                La colonna relativa al periodo da fatturare deve essere più larga (ecco perché ho chiesto la visione e la stampa su foglio orizzontale) ed inoltre per ogni cliente n. 2 righe.

                Se possibile direi anche di centrare il titolo sulle quattro colonne da cui è formato il report.

                Grazie di tutto.

              • sidsid
                Moderatore
                  Post totali: 749

                  Non so se ho capito bene; questo è il risultato che vorresti?

                  • antinoantino
                    Partecipante
                      Post totali: 38

                      Non so se ho capito bene; questo è il risultato che vorresti?

                      Esattamente. Se è possibile la colonna “Periodo da fatturare” più larga.
                      E dato che l’appetito vien mangiando è possibile inserire una riga più spessa per ogni nominativo (dopo ogni riga in bianco)?

                  • sidsid
                    Moderatore
                      Post totali: 749

                      La larghezza delle colonne è automaticamente adattata al testo.

                      Manda un’immagine di come vuoi il risultato finale.

                    • antinoantino
                      Partecipante
                        Post totali: 38

                        La larghezza delle colonne è automaticamente adattata al testo. Manda un’immagine di come vuoi il risultato finale.

                        Questa è l’immagine di come dovrebbe uscire.

                        Grazie

                         

                        • Questa risposta è stata modificata 1 anno, 6 mesi fa da sidsid.
                        • Questa risposta è stata modificata 1 anno, 6 mesi fa da sidsid.
                      • sidsid
                        Moderatore
                          Post totali: 749

                          Francia Gino, nell’immagine la formattazione di “MAI FATTURATO” prende 2 righe a differernza di MANZONI SPA

                          ot
                          Quando carichi un’immagine su Imgur, devi prelevare il link per i forum, così l’immagine la vedi direttamente nel post

                        • antinoantino
                          Partecipante
                            Post totali: 38

                            Francia Gino, nell’immagine la formattazione di “MAI FATTURATO” prende 2 righe a differernza di MANZONI SPA ot Quando carichi un’immagine su Imgur, devi prelevare il link per i forum, così l’immagine la vedi direttamente nel post

                            No, non c’è bisogno che prenda le due righe.

                            Grazie per come inserire l’immagine da imgur.

                             

                          • sidsid
                            Moderatore
                              Post totali: 749

                              Prova la macro così modificata:

                              Sub crea_report2() 'SITUAZIONE FATTURAZIONE CLIENTI
                              Application.ScreenUpdating = False
                              Dim wb As Workbook
                              Dim wb1 As Workbook
                              Dim wb2 As Workbook
                              Dim ultC As Long, j As Long
                              Dim riga As Long, riga2 As Long
                              Dim Ws As Worksheet
                              Dim aperto As Boolean
                              Dim jj As Long
                              Dim aBordi As Variant
                              aBordi = Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)
                              
                              'VERIFICO SE IL FILE "Schede Clienti.xlsm" è APERTO
                              For Each wb In Application.Workbooks
                                  If wb.Name = "SCHEDE CLIENTI.xlsm" Then
                                      aperto = True
                                      Set wb1 = Workbooks("SCHEDE CLIENTI.xlsm")
                                      Exit For
                                  End If
                              Next wb
                              
                              'SE è CHIUSO LO APRO
                              If Not aperto Then
                                 Set wb1 = Workbooks.Open("C:\FATTURAZIONE\SCHEDE CLIENTI.xlsm")
                              End If
                              
                              'Set wb1 = Workbooks("Schede Clienti.xlsm")
                              Set wb2 = Workbooks.Add
                              riga = 3
                              riga2 = riga + 1
                              
                              ' On Error GoTo uscita
                              'FORMATTO IL FOGLIO1 DEL NUOVO FILE
                              With wb2.Sheets("Foglio1")
                                  .Range("A1").Value = "SITUAZIONE FATTURAZIONE CLIENTI AL " & Date
                                  With .Range("A1:D1")
                                      .Borders.Weight = xlMedium
                                      .Borders.LineStyle = xlContinuous
                                      .Merge
                                      .HorizontalAlignment = xlCenter
                                      .Font.Bold = True
                                  End With
                                  .Range("A2").Value = "CLIENTE"
                                  .Range("B2").Value = "ULTIMO PERIODO FATTURATO"
                                  .Range("C2").Value = "PERIODO DA FATTURARE"
                                  .Range("D2").Value = "COSTO"
                                  .Rows(1).RowHeight = 25
                                  With .Range("A2:D2")
                                      .HorizontalAlignment = xlCenter
                                      .Font.Bold = True
                                      .Borders.LineStyle = xlContinuous
                                      .Borders.Weight = xlMedium
                                  End With
                              End With
                              
                              'CICLO I FOGLI DEL FILE PRINCIPALE
                              For Each Ws In wb1.Worksheets
                                  With wb1.Sheets(Ws.Name)
                                      ultC = IIf(.Range("C3").Value = "", 3 _
                                      , .Range("C" & Rows.Count).End(xlUp).Row)
                                      With wb2.Sheets("Foglio1")
                                              
                                              'INSERIMENTO DATI
                                              .Range("A" & riga).Value = wb1.Sheets(Ws.Name).Range("A1").Value
                                              If wb1.Sheets(Ws.Name).Range("C3") = "" Then
                                                  With .Range("B" & riga)
                                                      .Value = "MAI FATTURATO"
                                                      '.Interior.ColorIndex = 3 'colore fondo cella
                                                      '.Font.ColorIndex = 2 ' colore carattere
                                                  End With
                                              Else
                                                  .Range("B" & riga).Value = wb1.Sheets(Ws.Name).Range("C" & ultC).Value
                                              End If
                                              .Range("D" & riga).Value = wb1.Sheets(Ws.Name).Range("h1").Value 'COSTO
                                              riga = riga + 1
                                      End With
                                  End With
                              Next Ws
                              
                              'CHIUDO IL FILE "SCHEDE_CLIENTI.xlsm"
                              wb1.Close
                              
                              'ADATTO LA LARGHEZZA DELLE COLONNE.
                              'SELEZIONO IL TITOLO.
                              'ADATTO I MARGINI PER LA STAMPA
                              
                              With wb2.Sheets("Foglio1")
                                  .Columns("A:D").AutoFit
                                  .Range("A1:D1").Select
                              'End With
                                  With .PageSetup
                                      .LeftMargin = Application.InchesToPoints(0.26)
                                      .RightMargin = Application.InchesToPoints(0.34)
                                      .FitToPagesWide = 1
                                      .FitToPagesTall = 1
                                      .Orientation = xlLandscape ' foglio orizzontale
                                  End With
                              
                              'Ordinamento database
                                  .Sort.SortFields.Add Key:=.Range("A3:A200") _
                                      , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                                  With .Sort
                                      .SetRange wb2.Sheets("Foglio1").Range("A2:D200")
                                      .Header = xlYes
                                      .MatchCase = False
                                      .SortMethod = xlPinYin
                                      .Apply
                                  End With
                              
                              'INSERIMENTO DOPPIA RIGA, BORDI E FONDO ROSSO
                                  For j = riga - 1 To riga2 Step -1
                                      .Rows(j).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                                      For jj = LBound(aBordi) To UBound(aBordi)
                                          With .Range("A" & j + 1 & ":D" & j + 2).Borders(aBordi(jj))
                                              .LineStyle = xlContinuous
                                              .Weight = xlMedium
                                          End With
                                      Next jj
                                      With .Range("B" & j + 1)
                                          If .Value = "MAI FATTURATO" Then
                                              .Interior.ColorIndex = 3 'colore fondo cella
                                              .Font.ColorIndex = 2 ' colore carattere
                                          End If
                                      End With
                                  Next j
                                  
                                  For jj = LBound(aBordi) To UBound(aBordi)
                                      With .Range("A3:D4").Borders(aBordi(jj))
                                          .LineStyle = xlContinuous
                                          .Weight = xlMedium
                                      End With
                                  Next jj
                                  With .Range("B3")
                                      If .Value = "MAI FATTURATO" Then
                                         .Interior.ColorIndex = 3 'colore fondo cella
                                         .Font.ColorIndex = 2 ' colore carattere
                                      End If
                                  End With
                              End With
                              Set wb1 = Nothing
                              Set wb2 = Nothing
                              
                              Application.ScreenUpdating = True
                              End Sub
                            • antinoantino
                              Partecipante
                                Post totali: 38

                                Ciao Sid,

                                Il report va bene, chiedevo soltanto la colonna “Periodo da Fatturare” rimane stretta.

                                Si può allargare?

                                Con l’occasione, ma è soltanto per una questione di grafica i dati della colonna “Costo” possono essere inseriti “centrati” ed inoltre (non mi ci mandare) l’altezza delle righe può essere aumentata un pochino.

                                Grazie

                                 

                              • sidsid
                                Moderatore
                                  Post totali: 749

                                  Come già detto le colonne si adattano al testo in automatico.
                                  Se vuoi una misura personalizzata, devi darmi la misura esatta. Stessa cosa per l’altezza delle righe.
                                  Per il testo centrato in colonna “costo” nessun problema

                                • antinoantino
                                  Partecipante
                                    Post totali: 38

                                    Se vuoi una misura personalizzata, devi darmi la misura esatta. Stessa cosa per l’altezza delle righe.

                                    La larghezza della colonna penso che vada bene: 60

                                    L’altezza delle righe: 27

                                    Grazie

                                  • antinoantino
                                    Partecipante
                                      Post totali: 38

                                      Ciao Sid,
                                      Ho modificato la macro che mi hai mandato e per quanto riguarda la larghezza della colonna “C” tutto OK, mentre non sono riuscito a sistemare l’altezza delle righe del report e la centratura dei dati nella colonna “Costo”.
                                      Questa è la macro con le modifiche apportate:

                                      Sub crea_report2() ‘SITUAZIONE FATTURAZIONE CLIENTI
                                      Application.ScreenUpdating = False
                                      Dim wb As Workbook
                                      Dim wb1 As Workbook
                                      Dim wb2 As Workbook
                                      Dim ultC As Long, j As Long
                                      Dim riga As Long, riga2 As Long
                                      Dim Ws As Worksheet
                                      Dim aperto As Boolean
                                      Dim jj As Long
                                      Dim aBordi As Variant
                                      aBordi = Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)

                                      ‘VERIFICO SE IL FILE “Schede Clienti.xlsm” è APERTO
                                      For Each wb In Application.Workbooks
                                      If wb.Name = “SCHEDE CLIENTI.xlsm” Then
                                      aperto = True
                                      Set wb1 = Workbooks(“SCHEDE CLIENTI.xlsm”)
                                      Exit For
                                      End If
                                      Next wb

                                      ‘SE è CHIUSO LO APRO
                                      If Not aperto Then
                                      Set wb1 = Workbooks.Open(“C:\FATTURAZIONE\SCHEDE CLIENTI.xlsm”)
                                      End If

                                      ‘Set wb1 = Workbooks(“Schede Clienti.xlsm”)
                                      Set wb2 = Workbooks.Add
                                      riga = 3
                                      riga2 = riga + 1

                                      ‘ On Error GoTo uscita
                                      ‘FORMATTO IL FOGLIO1 DEL NUOVO FILE
                                      With wb2.Sheets(“Foglio1”)
                                      .Range(“A1”).Value = “SITUAZIONE FATTURAZIONE CLIENTI AL ” & Date
                                      With .Range(“A1:D1”)
                                      .Borders.Weight = xlMedium
                                      .Borders.LineStyle = xlContinuous
                                      .Merge
                                      .HorizontalAlignment = xlCenter
                                      .Font.Bold = True
                                      End With
                                      .Range(“A2”).Value = “CLIENTE”
                                      .Range(“B2”).Value = “ULTIMO PERIODO FATTURATO”
                                      .Range(“C2”).Value = “PERIODO DA FATTURARE”
                                      .Range(“D2”).Value = “COSTO”
                                      .Rows(1).RowHeight = 25
                                      With .Range(“A2:D2”)
                                      .HorizontalAlignment = xlCenter
                                      .Font.Bold = True
                                      .Borders.LineStyle = xlContinuous
                                      .Borders.Weight = xlMedium
                                      End With
                                      End With

                                      ‘CICLO I FOGLI DEL FILE PRINCIPALE
                                      For Each Ws In wb1.Worksheets
                                      With wb1.Sheets(Ws.Name)
                                      ultC = IIf(.Range(“C3”).Value = “”, 3 _
                                      , .Range(“C” & Rows.Count).End(xlUp).Row)
                                      With wb2.Sheets(“Foglio1”)

                                      ‘INSERIMENTO DATI
                                      .Range(“A” & riga).Value = wb1.Sheets(Ws.Name).Range(“A1”).Value
                                      If wb1.Sheets(Ws.Name).Range(“C3”) = “” Then
                                      With .Range(“B” & riga)
                                      .Value = “MAI FATTURATO”
                                      ‘.Interior.ColorIndex = 3 ‘colore fondo cella
                                      ‘.Font.ColorIndex = 2 ‘ colore carattere
                                      End With
                                      Else
                                      .Range(“B” & riga).Value = wb1.Sheets(Ws.Name).Range(“C” & ultC).Value
                                      End If
                                      .Range(“D” & riga).Value = wb1.Sheets(Ws.Name).Range(“h1”).Value ‘COSTO
                                      riga = riga + 1
                                      End With
                                      End With
                                      Next Ws

                                      ‘CHIUDO IL FILE “SCHEDE_CLIENTI.xlsm”
                                      wb1.Close

                                      ‘ADATTO LA LARGHEZZA DELLE COLONNE.
                                      ‘SELEZIONO IL TITOLO.
                                      ‘ADATTO I MARGINI PER LA STAMPA

                                      With wb2.Sheets(“Foglio1”)
                                      ‘.Columns(“A:D”).AutoFit
                                      .Columns(“A”).AutoFit
                                      .Columns(“B”).AutoFit
                                      .Columns(“C”).ColumnWidth = 62
                                      .Columns(“D”).AutoFit
                                      .Range(“A1:D1”).Select
                                      ‘End With
                                      With .PageSetup
                                      .LeftMargin = Application.InchesToPoints(0.26)
                                      .RightMargin = Application.InchesToPoints(0.34)
                                      .FitToPagesWide = 1
                                      .FitToPagesTall = 1
                                      .Orientation = xlLandscape ‘ foglio orizzontale
                                      End With

                                      ‘Ordinamento database
                                      .Sort.SortFields.Add Key:=.Range(“A3:A300”) _
                                      , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                                      With .Sort
                                      .SetRange wb2.Sheets(“Foglio1”).Range(“A2:D300”)
                                      .Header = xlYes
                                      .MatchCase = False
                                      .SortMethod = xlPinYin
                                      .Apply
                                      End With

                                      ‘INSERIMENTO DOPPIA RIGA, BORDI E FONDO ROSSO
                                      For j = riga – 1 To riga2 Step -1
                                      .Rows(j).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                                      For jj = LBound(aBordi) To UBound(aBordi)
                                      With .Range(“A” & j + 1 & “:D” & j + 2).Borders(aBordi(jj))
                                      .LineStyle = xlContinuous
                                      .Weight = xlMedium
                                      End With
                                      Next jj
                                      With .Range(“B” & j + 1)
                                      If .Value = “MAI FATTURATO” Then
                                      .Interior.ColorIndex = 3 ‘colore fondo cella
                                      .Font.ColorIndex = 2 ‘ colore carattere
                                      End If
                                      End With
                                      Next j

                                      For jj = LBound(aBordi) To UBound(aBordi)
                                      With .Range(“A3:D4”).Borders(aBordi(jj))
                                      .LineStyle = xlContinuous
                                      .Weight = xlMedium
                                      End With
                                      Next jj
                                      With .Range(“B3”)
                                      If .Value = “MAI FATTURATO” Then
                                      .Interior.ColorIndex = 3 ‘colore fondo cella
                                      .Font.ColorIndex = 2 ‘ colore carattere
                                      End If
                                      End With
                                      End With
                                      Set wb1 = Nothing
                                      Set wb2 = Nothing

                                      Application.ScreenUpdating = True
                                      End Sub

                                    • antinoantino
                                      Partecipante
                                        Post totali: 38

                                        Riporto la Macro modificata.

                                        Sub crea_report2() 'SITUAZIONE FATTURAZIONE CLIENTI
                                        Application.ScreenUpdating = False
                                        Dim wb As Workbook
                                        Dim wb1 As Workbook
                                        Dim wb2 As Workbook
                                        Dim ultC As Long, j As Long
                                        Dim riga As Long, riga2 As Long
                                        Dim Ws As Worksheet
                                        Dim aperto As Boolean
                                        Dim jj As Long
                                        Dim aBordi As Variant
                                        aBordi = Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)
                                        
                                        'VERIFICO SE IL FILE "Schede Clienti.xlsm" è APERTO
                                        For Each wb In Application.Workbooks
                                            If wb.Name = "SCHEDE CLIENTI.xlsm" Then
                                                aperto = True
                                                Set wb1 = Workbooks("SCHEDE CLIENTI.xlsm")
                                                Exit For
                                            End If
                                        Next wb
                                        
                                        'SE è CHIUSO LO APRO
                                        If Not aperto Then
                                           Set wb1 = Workbooks.Open("C:\FATTURAZIONE\SCHEDE CLIENTI.xlsm")
                                        End If
                                        
                                        'Set wb1 = Workbooks("Schede Clienti.xlsm")
                                        Set wb2 = Workbooks.Add
                                        riga = 3
                                        riga2 = riga + 1
                                        
                                        ' On Error GoTo uscita
                                        'FORMATTO IL FOGLIO1 DEL NUOVO FILE
                                        With wb2.Sheets("Foglio1")
                                            .Range("A1").Value = "SITUAZIONE FATTURAZIONE CLIENTI AL " & Date
                                            With .Range("A1:D1")
                                                .Borders.Weight = xlMedium
                                                .Borders.LineStyle = xlContinuous
                                                .Merge
                                                .HorizontalAlignment = xlCenter
                                                .Font.Bold = True
                                            End With
                                            .Range("A2").Value = "CLIENTE"
                                            .Range("B2").Value = "ULTIMO PERIODO FATTURATO"
                                            .Range("C2").Value = "PERIODO DA FATTURARE"
                                            .Range("D2").Value = "COSTO"
                                            .Rows(1).RowHeight = 25
                                            With .Range("A2:D2")
                                                .HorizontalAlignment = xlCenter
                                                .Font.Bold = True
                                                .Borders.LineStyle = xlContinuous
                                                .Borders.Weight = xlMedium
                                            End With
                                        End With
                                        
                                        'CICLO I FOGLI DEL FILE PRINCIPALE
                                        For Each Ws In wb1.Worksheets
                                            With wb1.Sheets(Ws.Name)
                                                ultC = IIf(.Range("C3").Value = "", 3 _
                                                , .Range("C" & Rows.Count).End(xlUp).Row)
                                                With wb2.Sheets("Foglio1")
                                                        
                                                        'INSERIMENTO DATI
                                                        .Range("A" & riga).Value = wb1.Sheets(Ws.Name).Range("A1").Value
                                                        If wb1.Sheets(Ws.Name).Range("C3") = "" Then
                                                            With .Range("B" & riga)
                                                                .Value = "MAI FATTURATO"
                                                                '.Interior.ColorIndex = 3 'colore fondo cella
                                                                '.Font.ColorIndex = 2 ' colore carattere
                                                            End With
                                                        Else
                                                            .Range("B" & riga).Value = wb1.Sheets(Ws.Name).Range("C" & ultC).Value
                                                        End If
                                                        .Range("D" & riga).Value = wb1.Sheets(Ws.Name).Range("h1").Value 'COSTO
                                                        riga = riga + 1
                                                End With
                                            End With
                                        Next Ws
                                        
                                        'CHIUDO IL FILE "SCHEDE_CLIENTI.xlsm"
                                        wb1.Close
                                        
                                        'ADATTO LA LARGHEZZA DELLE COLONNE.
                                        'SELEZIONO IL TITOLO.
                                        'ADATTO I MARGINI PER LA STAMPA
                                        
                                        With wb2.Sheets("Foglio1")
                                           '.Columns("A:D").AutoFit
                                            .Columns("A").AutoFit
                                            .Columns("B").AutoFit
                                            .Columns("C").ColumnWidth = 62
                                            .Columns("D").AutoFit
                                            .Range("A1:D1").Select
                                        'End With
                                            With .PageSetup
                                                .LeftMargin = Application.InchesToPoints(0.26)
                                                .RightMargin = Application.InchesToPoints(0.34)
                                                .FitToPagesWide = 1
                                                .FitToPagesTall = 1
                                                .Orientation = xlLandscape ' foglio orizzontale
                                            End With
                                        
                                        'Ordinamento database
                                            .Sort.SortFields.Add Key:=.Range("A3:A300") _
                                                , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                                            With .Sort
                                                .SetRange wb2.Sheets("Foglio1").Range("A2:D300")
                                                .Header = xlYes
                                                .MatchCase = False
                                                .SortMethod = xlPinYin
                                                .Apply
                                            End With
                                        
                                        'INSERIMENTO DOPPIA RIGA, BORDI E FONDO ROSSO
                                            For j = riga - 1 To riga2 Step -1
                                                .Rows(j).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                                                For jj = LBound(aBordi) To UBound(aBordi)
                                                    With .Range("A" & j + 1 & ":D" & j + 2).Borders(aBordi(jj))
                                                        .LineStyle = xlContinuous
                                                        .Weight = xlMedium
                                                    End With
                                                Next jj
                                                With .Range("B" & j + 1)
                                                    If .Value = "MAI FATTURATO" Then
                                                        .Interior.ColorIndex = 3 'colore fondo cella
                                                        .Font.ColorIndex = 2 ' colore carattere
                                                    End If
                                                End With
                                            Next j
                                            
                                            For jj = LBound(aBordi) To UBound(aBordi)
                                                With .Range("A3:D4").Borders(aBordi(jj))
                                                    .LineStyle = xlContinuous
                                                    .Weight = xlMedium
                                                End With
                                            Next jj
                                            With .Range("B3")
                                                If .Value = "MAI FATTURATO" Then
                                                   .Interior.ColorIndex = 3 'colore fondo cella
                                                   .Font.ColorIndex = 2 ' colore carattere
                                                End If
                                            End With
                                        End With
                                        Set wb1 = Nothing
                                        Set wb2 = Nothing
                                        
                                        Application.ScreenUpdating = True
                                        End Sub
                                        
                                        
                                      • antinoantino
                                        Partecipante
                                          Post totali: 38

                                          Ciao Sid,
                                          Ho effettuato una ulteriore modifica alla macro con la quale i dati della colonna “Costo” risultano centrati.
                                          Manca soltanto l’aumento dell’altezza delle righe, che non riesco a fare.

                                          Questa è la parte della macro modificata

                                          'ADATTO LA LARGHEZZA DELLE COLONNE.
                                          'SELEZIONO IL TITOLO.
                                          'ADATTO I MARGINI PER LA STAMPA
                                          
                                          With wb2.Sheets("Foglio1")
                                          '.Columns("A:D").AutoFit
                                          .Columns("A").AutoFit
                                          .Columns("B").AutoFit
                                          .Columns("C").ColumnWidth = 62
                                          .Columns("D").AutoFit
                                          .Columns("D").HorizontalAlignment = xlCenter
                                          .Range("A1:D1").Select
                                          'End With
                                          With .PageSetup
                                          .LeftMargin = Application.InchesToPoints(0.26)
                                          .RightMargin = Application.InchesToPoints(0.34)
                                          .FitToPagesWide = 1
                                          .FitToPagesTall = 1
                                          .Orientation = xlLandscape ' foglio orizzontale
                                          End With
                                          

                                          E’ giusta la modifica fatta?
                                          Grazie

                                          • Questa risposta è stata modificata 1 anno, 6 mesi fa da antinoantino.
                                        • sidsid
                                          Moderatore
                                            Post totali: 749

                                            Non ho il pc sottomano; appena ho modo vediamo di risolvere

                                          • sidsid
                                            Moderatore
                                              Post totali: 749

                                              Così al volo…..
                                              Riattiva

                                              .Columns("A:D").AutoFit

                                              E lasci solo
                                              .Columns("C").ColumnWidth = 62

                                            • antinoantino
                                              Partecipante
                                                Post totali: 38

                                                Ciao Sid,
                                                ho sistemato la macro come mi ha suggerito e tutto è OK.
                                                L’altra modifica per centrare la colonna va bene?
                                                Poi rimane soltanto l’aumento dell’altezza delle righe.
                                                Grazie

                                              • sidsid
                                                Moderatore
                                                  Post totali: 749


                                                  L’altra modifica per centrare la colonna va bene?

                                                  l’istruzione è quella; immagino tu l’abbia testata.

                                                  Le righe a cui va modificata l’altezza partono da riga 3?

                                                  • Questa risposta è stata modificata 1 anno, 6 mesi fa da sidsid.
                                                • antinoantino
                                                  Partecipante
                                                    Post totali: 38

                                                    Si partono da riga 3.

                                                  • sidsid
                                                    Moderatore
                                                      Post totali: 749

                                                      Prima dell’End With finale inserisci
                                                      .Rows("3:" & (riga - 3) * 2 + 2).RowHeight = 27

                                                    • antinoantino
                                                      Partecipante
                                                        Post totali: 38

                                                        Ciao Sid,
                                                        Perfetto
                                                        Grazie
                                                        A presto perché il report che scaturisce dalla macro è abbastanza lungo essendo circa 200 i clienti inseriti di cui diversi o non sono più clienti oppure comunque non si deve fatturare.
                                                        Avevo pensato di inserire una spunta o un simbolo in una cella del foglio riferito a quel cliente da non farlo apparire sul report.
                                                        Che ne dici è complicato?

                                                      • sidsid
                                                        Moderatore
                                                          Post totali: 749

                                                          No, basta indicare la cella e il valore che ci metti, per far capire a vba che è da escludere.
                                                          Esempio se in K1 inserisci la stringa “no” in modo da escludere il foglio, devi aggiungere 2 istruzioni esattamente nello stesso punto dell’immagine

                                                        • antinoantino
                                                          Partecipante
                                                            Post totali: 38

                                                            Grazie Sid

                                                            Inserisco la modifica e ti faccio sapere.

                                                          • antinoantino
                                                            Partecipante
                                                              Post totali: 38

                                                              Ciao Sid,
                                                              Perfetto, provvedo ad inserire risolto alla richiesta.
                                                              Un grazie grandissimo

                                                              • Questa risposta è stata modificata 1 anno, 6 mesi fa da antinoantino.
                                                            • antinoantino
                                                              Partecipante
                                                                Post totali: 38

                                                                Scusate ma non riesco ad inserire risolto nel post.
                                                                Ho cercato di fare come suggerito in “come fare” ma non ci riesco.
                                                                Mi spiegato un attimo.
                                                                Grazie

                                                                Antino

                                                              • sidsid
                                                                Moderatore
                                                                  Post totali: 749

                                                                  Ciao Antino
                                                                  Devi andare nel post di apertura della discussione, e verificare se nella barra azzurra hai l’opzione “modifica”; ma non credo che questa opzione sia abilitata per un normale utente

                                                                • antinoantino
                                                                  Partecipante
                                                                    Post totali: 38

                                                                    Difatti non ce l’ho.
                                                                    Ho soltanto “risposta” e “Quote”.
                                                                    Provvedi tu ad inserire risolto?
                                                                    Grazie

                                                                  • sidsid
                                                                    Moderatore
                                                                      Post totali: 749

                                                                      Ci penso io; ciao

                                                                  Visualizzazione 30 filoni di risposte
                                                                  • Devi essere connesso per rispondere a questo topic.