You are here:--[RISOLTO] Aggiunta di dati tramite macro per tabella Excel
[RISOLTO] Aggiunta di dati tramite macro per tabella Excel 2018-11-14T12:07:27+00:00

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

  • Autore
    Articoli
  • antinoantino
    Partecipante
      Post totali: 25
      #7088 |

      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 argomento è stato modificato 5 giorni, 18 ore fa da sid sid.
    • sidsid
      Moderatore
        Post totali: 445

        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: 25

          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: 445

            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: 25

              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: 445

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

                • antinoantino
                  Partecipante
                    Post totali: 25

                    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: 445

                    La larghezza delle colonne è automaticamente adattata al testo.

                    Manda un’immagine di come vuoi il risultato finale.

                  • antinoantino
                    Partecipante
                      Post totali: 25

                      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 settimana, 4 giorni fa da sid sid.
                      • Questa risposta è stata modificata 1 settimana, 4 giorni fa da sid sid.
                    • sidsid
                      Moderatore
                        Post totali: 445

                        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: 25

                          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: 445

                            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: 25

                              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: 445

                                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: 25

                                  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: 25

                                    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: 25

                                      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: 25

                                        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 settimana, 2 giorni fa da antino antino.
                                      • sidsid
                                        Moderatore
                                          Post totali: 445

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

                                        • sidsid
                                          Moderatore
                                            Post totali: 445

                                            Così al volo…..
                                            Riattiva

                                            .Columns("A:D").AutoFit

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

                                          • antinoantino
                                            Partecipante
                                              Post totali: 25

                                              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: 445


                                                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 settimana, 2 giorni fa da sid sid.
                                              • antinoantino
                                                Partecipante
                                                  Post totali: 25

                                                  Si partono da riga 3.

                                                • sidsid
                                                  Moderatore
                                                    Post totali: 445

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

                                                  • antinoantino
                                                    Partecipante
                                                      Post totali: 25

                                                      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: 445

                                                        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: 25

                                                          Grazie Sid

                                                          Inserisco la modifica e ti faccio sapere.

                                                        • antinoantino
                                                          Partecipante
                                                            Post totali: 25

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

                                                            • Questa risposta è stata modificata 5 giorni, 20 ore fa da antino antino.
                                                          • antinoantino
                                                            Partecipante
                                                              Post totali: 25

                                                              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: 445

                                                                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: 25

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

                                                                • sidsid
                                                                  Moderatore
                                                                    Post totali: 445

                                                                    Ci penso io; ciao

                                                                  Devi essere loggato per rispondere a questa discussione.

                                                                  Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                                                                  Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                                                                  Chiudi