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

    Ale.1989
    Partecipante

      Ciao ragazzi, ho un problema ... scopiazzando e facendomi aiutare sono riuscito a scrivere questo codice che funziona perfettamente, ora vorrei aggiungere prima di mostrare la finestra di stampa, la creazione automatica di un pdf il cui nome sia la cella k6 e in un percorso particolare ( che poi modificherò io).

      Grazie a chi miaiuterà.

      Sub PopolaScheda()
      Dim wsMR As Worksheet
      Dim wsST As Worksheet
      Dim vFieldsMR As Variant
      Dim vFieldsST As Variant
      Dim i As Byte
      
      i = MsgBox("Vuoi copiare i dati nel foglio ""Scheda Tecnica?""", vbQuestion + vbYesNo, "Copia dati")
      If i = vbNo Then Exit Sub
      
      Set wsMR = ThisWorkbook.Worksheets("MASCHERA RICERCA")
      Set wsST = ThisWorkbook.Worksheets("Scheda Tecnica")
      
      
      wsMR.Activate
      vFieldsMR = Array("K7", "K8", "G11", "G14", "K13", "K14", "K15", "G16", "G7", "G8", "G9", _
                        "G12", "G13", "K26", "G10", "D4", "D5", "D6", "D9", "D36", _
                        "D7", "D8", "D21", "D22", "D23", "D13", "X7", "D10", "D16", "D14", _
                        "D11", "E16", "D12", "D15", "E17", "D30", "D31", "D32", "D18", "D49", _
                        "D17", "D20", "D19", "D24", "D25", "D26", "F37", "G37", "H37", "G34", _
                        "G35", "N49", "H31", "K18", "K19", "K20", "K21", "K22", "K23", "L17", "L18", "L19", "L20", _
                        "L21", "L22", "L23", "M17", "M18", "M19", "M20", "M21", "M22", "M23", "N17", "N18", "N19", _
                        "N20", "N21", "N22", "N23", "O17", "O18", "O19", "O20", "O21", "O22", "O23", _
                        "P17", "P18", "P19", "P20", "P21", "P22", "P23", "G15", "K29", "G6", "H48", "N15", "K16", _
                        "G17", "G18", "G19", "H8", "H9", "H14", "K24", "L15", "M15", "M24", "X9", "H16", "F21", _
                        "K6", "K35", "M37", "r31", "C63", "C65", "C67", "D63", "D65", "D67", "E63", "E65", "E67", _
                        "F63", "F65", "F67", "G63", "G65", "G67", "H63", "H65", "H67", "G26", "H26", "E25", "G29", "M26", "H29", "R37", "Q41", "AA35", "M27", _
                        "D31", "D32", "E31", "E32", "E30", "K17")
      wsST.Activate
      vFieldsST = Array("D2", "H2", "C8", "G8", "C10", "F10", "H10", "C12", "G12", "C14", _
                       "G14", "C18", "G18", "D20", "H20", "F32", "D33", "F33", "C36", _
                       "F36", "F35", "H35", "C37", "E37", "G37", "F40", "H40", "C41", _
                       "F41", "F43", "C44", "F44", "C47", "F46", "F47", "E49", "C50", _
                       "F50", "E52", "B53", "A56", "A59", "F58", "C62", "C63", "C64", _
                       "E62", "E63", "E64", "G62", "G63", "C65", "H52", _
                        "C24", "D24", "E24", "F24", "G24", "H24", _
                       "B26", "C26", "D26", "E26", "F26", "G26", "H26", _
                       "B27", "C27", "D27", "E27", "F27", "G27", "H27", _
                       "B25", "C25", "D25", "E25", "F25", "G25", "H25", _
                       "B28", "C28", "D28", "E28", "F28", "G28", "H28", _
                       "B29", "C29", "D29", "E29", "F29", "G29", "H29", "F54", "F20", "D6", "B66", "A25", "A24", _
                       "C42", "C38", "F42", "C13", "G13", "C22", "H41", "H44", "H47", "H42", "H66", "D12", "F19", _
                       "F4", "H4", "D4", "H6", "C78", "C80", "C82", "D78", "D80", "D82", "E78", "E80", "E82", _
                       "F78", "F80", "F82", "G78", "G80", "G82", "H78", "H80", "H82", "D54", "E54", "G64", "H53", "C19", "H54", "F6", "H22", "G36", "E12", _
                       "D50", "G50", "H48", "H49", "G49", "B24")
      
      'Cancella tutti i campi nel foglio Scheda Tecnica
      For i = LBound(vFieldsST) To UBound(vFieldsST)
          wsST.Range(vFieldsST(i)) = ""
      Next i
                        
      'Popola tutti i campi del foglio Scheda Tecnica prelevando i dati dal foglio Maschera Ricerca
      For i = LBound(vFieldsMR) To UBound(vFieldsMR)
          wsST.Range(vFieldsST(i)) = wsMR.Range(vFieldsMR(i))
      Next i
                        
      MsgBox "Dati copiati", vbInformation, "Copia dati"
       
          On Error GoTo ErrorHandler
          Application.Dialogs(xlDialogPrint).Show
      
      ErrorHandler:
          If Err.Number <> 0 Then
              MsgBox "Operazione annullata dall'utente.", vbInformation
              Err.Clear
          End If
          
        
      End Sub
      

       

      #53991 Score: 0 | Risposta

      alexps81
      Moderatore
        56 pts

        Ciao, ora non ho pc per aiutarti con il codice ma tu intanto prova a dare uno sguardo al metodo ExportAsFixedFormat

        https://learn.microsoft.com/it-it/office/vba/api/excel.worksheet.exportasfixedformat

        Vedi se riesci a tirar giù qualcosa di utile, eventualmente sistemiamo dopo.

      Login Registrati
      Stai vedendo 2 articoli - dal 1 a 2 (di 2 totali)
      Rispondi a: Creare pdf
      Gli allegati sono permessi solo ad utenti REGISTRATI
      Le tue informazioni: