Sviluppare funzionalita su Microsoft Office con VBA Macro per selezione intervallo righe da input box

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

    M4rK081
    Partecipante

      Ciao a tutti!
      Sono un nuovo iscritto purtroppo senza alcuna o quasi competenza di programmazione.
      Avrei la necessità di ricevere aiuto in merito alla realizzazione di una macro da inserire all'interno di un file Excel che mi permetta attraverso una input box, con la quale andare a chiedere all'utente di scegliere quale/i righe del file Excel vuole selezionare ed importarne il contenuto all'interno di un file Word attraverso una stampa unione.
      Ho un file Excel che utilizzo come sorta di DB ed ho un file Word già predisposto per ricevere i dati all’interno di alcune tabelle.
      La Macro che sono riuscito a realizzare mi permette di selezionare dal DB (file Excel) una riga a mia scelta dalla quale prelevare i dati ed importarli nel file Word (fin qui nessun problema, funziona correttamente).
      Avrei bisogno invece di poter selezionare più righe ed ottenere per ciascuna di esse un singolo file Word.

      Allego i files in questione.

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

      patel
      Moderatore
        50 pts

        Potresti provare con Application.InputBox che ti permette di selezionare direttamente dal foglio le righe o il range, per capire prova questo codice

        Sub a()
        Dim rng As Range
        Set rng = Application.InputBox(prompt:="select range to copy", Type:=8)
        rng.Copy Sheets(2).Range("A1")
        End Sub

         

        #26910 Score: 0 | Risposta

        M4rK081
        Partecipante

          No, ho bisogno di selezionare di volta in volta righe differenti.

          Questo perché essendo il mio foglio Excel composto da centinaia di righe, mi sarebbe comodo poter scegliere per quali di esse andare ad importare i dati nel file Word.

          #26911 Score: 0 | Risposta

          patel
          Moderatore
            50 pts

            Rileggi il post precedente, l'ho modificato

            #26912 Score: 0 | Risposta

            M4rK081
            Partecipante

              Perdonami ma sono assolutamente non esperto di programmazione (quello che sono riuscito a fare fino ad ora è frutto di diversi copia ed incolla di codici presi da esempi vari).

              Questo è il codice della mia Macro, potresti indicarmi come potrei modificarlo?

              Ti ringrazio.

              Sub StampaWord()
              
                  Dim xWord As Object
                  Dim wdFileName As Variant
                  Dim xTab As Object          ' Oggetto Tabella data
                  Dim xTab1 As Object         ' Oggetto Tabella sez a1
                  Dim xTab2 As Object         ' Oggetto Tabella sez a2
                  Dim xTab3 As Object         ' Oggetto Tabella sez a3
                  Dim xTab4 As Object         ' Oggetto Tabella sez a4
                  Dim xTab5 As Object         ' Oggetto Tabella riepilogo sezioni
                  Dim xTab6 As Object         ' Oggetto Tabella riepilogo sezioni
                  Dim NumTotRows1 As Long     'NUMERO DI RIGHE DATABASE
                  Dim I As Integer            'INDICE
                  Dim risp As String
                  Dim nriga As String
                  
              
                  Application.ScreenUpdating = False                               ' Serve per disabilitare i saltellamenti dello schermo (macro più veloci)
                  
                  Set Wb = ActiveWorkbook
                  With Wb
                      Set WsG = Sheets("Check")
                  End With
                  
                  NumTotRows1 = WsG.Range("AO" & Rows.Count).End(xlUp).Row
              
                  
                  wdFileName = Application.GetOpenFilename()
                  If wdFileName = False Then Exit Sub 'user cancelled import file browser
                  
              ciclo:
                  I = 2
                  risp = InputBox("Inserisci la riga che vuoi importare:", "Numero della pratica", "Numero cliente")
                  If risp <> "" Then
                  If Not IsNumeric(risp) Then
                     MsgBox risp & " è una stringa, devi digitare un numero"
                     GoTo ciclo
                  Else
                  End If
              
              nriga = risp
              If nriga <= 1 Then
                     MsgBox risp & " è un numero inferiore a 2, devi digitare un numero superiore"
                     GoTo ciclo
                  Else
                  End If
                  
                  For I = 2 To NumTotRows1
                    If I = nriga Then
                      Set xWord = CreateObject("Word.Application")
                      xWord.Documents.Open wdFileName
                      
                      Set xTab = xWord.ActiveDocument.Tables(1)
                      Set xTab1 = xWord.ActiveDocument.Tables(2)
                      Set xTab2 = xWord.ActiveDocument.Tables(3)
                      Set xTab3 = xWord.ActiveDocument.Tables(4)
                      Set xTab4 = xWord.ActiveDocument.Tables(5)
                      Set xTab5 = xWord.ActiveDocument.Tables(6)
                      Set xTab6 = xWord.ActiveDocument.Tables(8)
                      
                      xTab.Rows(1).Cells(2).Range.Text = WsG.Cells(NumTotRows1 + 2, 2)
                      
                      xTab1.Rows(2).Cells(2).Range.Text = WsG.Cells(1, 2)
                      xTab1.Rows(2).Cells(3).Range.Text = WsG.Cells(I, 2)
                      xTab1.Rows(3).Cells(2).Range.Text = WsG.Cells(1, 3)
                      xTab1.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 3)
                      xTab1.Rows(4).Cells(2).Range.Text = WsG.Cells(1, 4)
                      xTab1.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 4)
                      xTab1.Rows(5).Cells(2).Range.Text = WsG.Cells(1, 5)
                      xTab1.Rows(5).Cells(3).Range.Text = WsG.Cells(I, 5)
                      xTab1.Rows(6).Cells(2).Range.Text = WsG.Cells(1, 6)
                      xTab1.Rows(6).Cells(3).Range.Text = WsG.Cells(I, 6)
                      xTab1.Rows(7).Cells(2).Range.Text = WsG.Cells(1, 7)
                      xTab1.Rows(7).Cells(3).Range.Text = WsG.Cells(I, 7)
                      xTab1.Rows(8).Cells(2).Range.Text = WsG.Cells(1, 8)
                      xTab1.Rows(8).Cells(3).Range.Text = WsG.Cells(I, 8)
                      xTab1.Rows(9).Cells(2).Range.Text = WsG.Cells(1, 9)
                      xTab1.Rows(9).Cells(3).Range.Text = WsG.Cells(I, 9)
                      xTab1.Rows(10).Cells(2).Range.Text = WsG.Cells(1, 10)
                      xTab1.Rows(10).Cells(3).Range.Text = WsG.Cells(I, 10)
                      xTab1.Rows(11).Cells(2).Range.Text = WsG.Cells(1, 11)
                      xTab1.Rows(11).Cells(3).Range.Text = WsG.Cells(I, 11)
                      xTab1.Rows(12).Cells(2).Range.Text = WsG.Cells(1, 12)
                      xTab1.Rows(12).Cells(3).Range.Text = WsG.Cells(I, 12)
                      xTab1.Rows(13).Cells(2).Range.Text = WsG.Cells(1, 13)
                      xTab1.Rows(13).Cells(3).Range.Text = WsG.Cells(I, 13)
                      
                      xTab2.Rows(3).Cells(2).Range.Text = WsG.Cells(1, 14)
                      xTab2.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 14)
                      xTab2.Rows(4).Cells(2).Range.Text = WsG.Cells(1, 15)
                      xTab2.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 15)
                      
                      xTab3.Rows(3).Cells(2).Range.Text = WsG.Cells(1, 16)
                      xTab3.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 16)
                      xTab3.Rows(4).Cells(2).Range.Text = WsG.Cells(1, 17)
                      xTab3.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 17)
                      xTab3.Rows(5).Cells(2).Range.Text = WsG.Cells(1, 18)
                      xTab3.Rows(5).Cells(3).Range.Text = WsG.Cells(I, 18)
                      xTab3.Rows(6).Cells(2).Range.Text = WsG.Cells(1, 19)
                      xTab3.Rows(6).Cells(3).Range.Text = WsG.Cells(I, 19)
                      xTab3.Rows(7).Cells(2).Range.Text = WsG.Cells(1, 20)
                      xTab3.Rows(7).Cells(3).Range.Text = WsG.Cells(I, 20)
                      xTab3.Rows(8).Cells(2).Range.Text = WsG.Cells(1, 21)
                      xTab3.Rows(8).Cells(3).Range.Text = WsG.Cells(I, 21)
                      xTab3.Rows(9).Cells(2).Range.Text = WsG.Cells(1, 22)
                      xTab3.Rows(9).Cells(3).Range.Text = WsG.Cells(I, 22)
                      xTab3.Rows(10).Cells(2).Range.Text = WsG.Cells(1, 23)
                      xTab3.Rows(10).Cells(3).Range.Text = WsG.Cells(I, 23)
                      xTab3.Rows(11).Cells(2).Range.Text = WsG.Cells(1, 24)
                      xTab3.Rows(11).Cells(3).Range.Text = WsG.Cells(I, 24)
                      xTab3.Rows(12).Cells(2).Range.Text = WsG.Cells(1, 25)
                      xTab3.Rows(12).Cells(3).Range.Text = WsG.Cells(I, 25)
                      xTab3.Rows(13).Cells(2).Range.Text = WsG.Cells(1, 26)
                      xTab3.Rows(13).Cells(3).Range.Text = WsG.Cells(I, 26)
                      xTab3.Rows(14).Cells(2).Range.Text = WsG.Cells(1, 27)
                      xTab3.Rows(14).Cells(3).Range.Text = WsG.Cells(I, 27)
                      xTab3.Rows(15).Cells(2).Range.Text = WsG.Cells(1, 28)
                      xTab3.Rows(15).Cells(3).Range.Text = WsG.Cells(I, 28)
                      xTab3.Rows(16).Cells(2).Range.Text = WsG.Cells(1, 29)
                      xTab3.Rows(16).Cells(3).Range.Text = WsG.Cells(I, 29)
                      xTab3.Rows(17).Cells(2).Range.Text = WsG.Cells(1, 30)
                      xTab3.Rows(17).Cells(3).Range.Text = WsG.Cells(I, 30)
                      xTab3.Rows(18).Cells(2).Range.Text = WsG.Cells(1, 31)
                      xTab3.Rows(18).Cells(3).Range.Text = WsG.Cells(I, 31)
                      
                      
                      xTab4.Rows(2).Cells(2).Range.Text = WsG.Cells(1, 36)
                      xTab4.Rows(2).Cells(3).Range.Text = WsG.Cells(I, 36)
                      xTab4.Rows(3).Cells(2).Range.Text = WsG.Cells(1, 37)
                      xTab4.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 37)
                      xTab4.Rows(4).Cells(2).Range.Text = WsG.Cells(1, 38)
                      xTab4.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 38)
                      xTab4.Rows(5).Cells(2).Range.Text = WsG.Cells(1, 39)
                      xTab4.Rows(5).Cells(3).Range.Text = WsG.Cells(I, 39)
                      xTab4.Rows(6).Cells(2).Range.Text = WsG.Cells(1, 40)
                      xTab4.Rows(6).Cells(3).Range.Text = WsG.Cells(I, 40)
                      xTab4.Rows(7).Cells(2).Range.Text = WsG.Cells(1, 41)
                      xTab4.Rows(7).Cells(3).Range.Text = WsG.Cells(I, 41)
                      
                      
                      xTab5.Rows(2).Cells(1).Range.Text = WsG.Cells(1, 32)
                      xTab5.Rows(2).Cells(2).Range.Text = WsG.Cells(I, 32)
                      
                      xTab6.Rows(1).Cells(1).Range.Text = WsG.Cells(1, 33)
                      xTab6.Rows(1).Cells(2).Range.Text = WsG.Cells(I, 33)
                      xTab6.Rows(2).Cells(1).Range.Text = WsG.Cells(1, 34)
                      xTab6.Rows(2).Cells(2).Range.Text = WsG.Cells(I, 34)
                      xTab6.Rows(3).Cells(1).Range.Text = WsG.Cells(1, 35)
                      xTab6.Rows(3).Cells(2).Range.Text = WsG.Cells(I, 35)
                      
                      
                      xWord.ActiveDocument.SaveAs wdFileName & I & ".doc"
                      xWord.ActiveDocument.Close
                      xWord.Quit
                      
                      Exit Sub
                    End If
                  Next I
                  Else
                      MsgBox "La riga non corrisponde a nessun cliente"
                  End If
              
              
              
              
                  Application.ScreenUpdating = True
              
              End Sub
              #26913 Score: 0 | Risposta

              patel
              Moderatore
                50 pts

                L'obiettivo del forum è di aiutare a risolvere i problemi, non di fornire soluzioni pronte, se vuoi imparare il VBA trovi un corso in fondo alla pagina

                #26914 Score: 0 | Risposta

                M4rK081
                Partecipante

                  Non chiedevo la soluzione pronta, ma semplicemente di capire il codice che mi hai suggerito cosa dovrebbe sostituire del mio....

                  #26929 Score: 0 | Risposta

                  patel
                  Moderatore
                    50 pts

                    Potresti copiare le righe selezionate in un altro foglio e poi su questo fare un ciclo che le esplora tutte ed utilizza il codice già scritto con le opportune modifiche, non è una cosa semplice e richiede un po' di tempo

                    #26933 Score: 0 | Risposta

                    M4rK081
                    Partecipante

                      Bene, come non detto.... ho capito che non è una cosa che fa per me 🙁

                      #26943 Score: 0 | Risposta

                      patel
                      Moderatore
                        50 pts

                        Se hai intenzione di imparare e ci provi qui siamo sempre disponibili ad aiutarti

                        #27015 Score: 0 | Risposta

                        M4rK081
                        Partecipante

                          Ciao, sono riuscito finalmente ad arrivare ad una soluzione definitiva che mi permette di raggiungere l'obiettivo che mi ero prefissato. 

                          Avrei però un'ultima esigenza, ovvero, poter convertire automaticamente tutti i file Word generati in file PDF.

                          Qualcuno potrebbe darmi indicazioni in merito? 

                          #27016 Score: 0 | Risposta

                          patel
                          Moderatore
                            50 pts

                            Sarebbe gentile da parte tua condividere la soluzione col forum, per il resto puoi risolvere con una semplice ricerca su google del tipo "vba word to pdf"

                            #27019 Score: 0 | Risposta

                            M4rK081
                            Partecipante

                              Ho risolto andando a prevedere una colonna aggiuntiva all'interno del mio file Excel nella quale sono andato ad indicare lo "STATO" in cui si trovano le pratiche.

                              Fatto questo, con un semplice ciclo For vado a selezionare solo quelle righe che contengono nella colonna "STATO" la parola "EVASA" per poi procedere alla generazione del file Word.

                              Al momento, non sapendo come andare a generare contemporaneamente anche i files PDF, ho risolto con una macro che mi converte in PDF tutti i file Word generati e presenti all'interno della cartella nella quale si trova il file Excel.

                              #27030 Score: 0 | Risposta

                              M4rK081
                              Partecipante

                                M4rK081 ha scritto:

                                Al momento, non sapendo come andare a generare contemporaneamente anche i files PDF, ho risolto con una macro che mi converte in PDF tutti i file Word generati e presenti all'interno della cartella nella quale si trova il file Excel.

                                Volevo chiarire ulteriormente rispetto a quest'ultima problematica...

                                La cartella nella quale si trova il mio file Excel contiene anche il file "modello" di Word utilizzato per effettuare la stampa unione. 

                                Ciò comporta il fatto che quando voglio andare a generare i files pdf, in automatico mi carica anche il file "modello" e ne crea appunto la rispettiva copia in PDF.

                                Ci sarebbe una soluzione per escludere dalla conversione solo il file "modello"?

                                 

                                #27116 Score: 0 | Risposta

                                M4rK081
                                Partecipante

                                  Nessun suggerimento?

                                  #27145 Score: 0 | Risposta

                                  patel
                                  Moderatore
                                    50 pts

                                    Il nome del file modello lo conosci, quindi devi nel ciclo escludere i file con quel nome.

                                    Se alleghi la macro che usi possiamo provare a modificarla

                                    #27149 Score: 0 | Risposta

                                    M4rK081
                                    Partecipante

                                      Il file modello si chiama "Tabella di check.doc"

                                      Questa invece è la macro che utilizzo attualmente per salvare i file in pdf:

                                      Option Explicit
                                      
                                      Sub create_pdf()
                                      Dim wdApp As Object
                                      Dim wdDoc As Object
                                      Dim fso As Object
                                      Dim f As Object
                                      Dim src As String, dest As String, s As String
                                      
                                          Set wdApp = CreateObject("Word.Application")
                                          Set fso = CreateObject("Scripting.FileSystemObject")
                                          
                                          src = "C:\Users\marko\Desktop\Macro"
                                        
                                          
                                          For Each f In fso.GetFolder(src).Files
                                              If Right(f.Name, 3) = "doc" Or Right(f.Name, 4) Like "doc*" Then
                                                  Set wdDoc = wdApp.Documents.Open(CStr(f), Visible:=False)
                                                  s = Left(f.Name, InStrRev(f.Name, ".") - 1)
                                                  wdDoc.ExportAsFixedFormat OutputFilename:="C:\Users\marko\Desktop\Macro\Checklists\" & "" & s & ".pdf", ExportFormat:=17    '17=wdExportFormatPDF
                                                  wdDoc.Close
                                              End If
                                          Next
                                          wdApp.Quit
                                          
                                          Set wdDoc = Nothing
                                          Set wdApp = Nothing
                                          Set f = Nothing
                                          
                                          MsgBox "Tutti i files Word sono stati convertiti in PDF!"
                                      End Sub
                                      #27150 Score: 0 | Risposta

                                      patel
                                      Moderatore
                                        50 pts

                                        f.name è il nome del file trovato, basta modificare così

                                        Option Explicit
                                        
                                        Sub create_pdf()
                                        Dim wdApp As Object
                                        Dim wdDoc As Object
                                        Dim fso As Object
                                        Dim f As Object
                                        Dim src As String, dest As String, s As String
                                        
                                            Set wdApp = CreateObject("Word.Application")
                                            Set fso = CreateObject("Scripting.FileSystemObject")
                                            
                                            src = "C:\Users\marko\Desktop\Macro"
                                          
                                            
                                            For Each f In fso.GetFolder(src).Files
                                                If Right(f.Name, 3) = "doc" Or Right(f.Name, 4) Like "doc*" Then '<<<<<<<<<<<<
                                                    If f.name <> "Tabella di check.doc" Then
                                                       Set wdDoc = wdApp.Documents.Open(CStr(f), Visible:=False)
                                                       s = Left(f.Name, InStrRev(f.Name, ".") - 1)
                                                       wdDoc.ExportAsFixedFormat OutputFilename:="C:\Users\marko\Desktop\Macro\Checklists\" & "" & s & ".pdf", ExportFormat:=17    '17=wdExportFormatPDF
                                                       wdDoc.Close
                                                    End If
                                                End If
                                            Next
                                            wdApp.Quit
                                            
                                            Set wdDoc = Nothing
                                            Set wdApp = Nothing
                                            Set f = Nothing
                                            
                                            MsgBox "Tutti i files Word sono stati convertiti in PDF!"
                                        End Sub
                                        #27151 Score: 0 | Risposta

                                        M4rK081
                                        Partecipante

                                          E' perfetto! Funziona esattamente come avrei voluto, grazie. 

                                          #27448 Score: 0 | Risposta

                                          M4rK081
                                          Partecipante

                                            Ciao, torno nuovamente a chiedere aiuto in quanto mi si è presentata l'esigenza di salvare con un nome ben preciso i singoli files word generati. In sostanza, dovrei andare a leggere, per ogni riga selezionata (solo  quelle che contengono nella colonna "STATO" la parola "EVASA") il contenuto di una particolare cella ed utilizzarlo appunto come nome per il file word generato.

                                            Qualche idea?

                                            Grazie.

                                            #27450 Score: 0 | Risposta

                                            patel
                                            Moderatore
                                              50 pts

                                              non è ben chiaro il problema, per ogni riga selezionata ?

                                              #27453 Score: 0 | Risposta

                                              M4rK081
                                              Partecipante

                                                Come avevo scritto in precedenza, avevo risolto il mio problema andando a prevedere una colonna aggiuntiva all'interno del mio file Excel nella quale sono andato ad indicare lo "STATO" in cui si trovano le pratiche.

                                                Fatto questo, con un semplice ciclo for, vado a selezionare solo quelle righe che contengono nella colonna "STATO" la parola "EVASA" per poi procedere alla generazione del file Word per ogni rispettiva riga.

                                                Avrei ora bisogno di poter salvare ogni singolo file Word generato, utilizzando come nome file il valore di una specifica cella presente nella riga stessa.

                                                Spero di essere stato più chiaro adesso... 🙂

                                                #27454 Score: 0 | Risposta

                                                patel
                                                Moderatore
                                                  50 pts

                                                  Non è chiaro cosa non riesci a fare, il ciclo for ? ricavare il nome ? qual'è la nuova macro che hai scritto ?

                                                  #27461 Score: 0 | Risposta

                                                  M4rK081
                                                  Partecipante

                                                    Il ciclo for che ho provato a scrivere è il seguente ma a quanto pare non funziona...

                                                        For I = 3 To NumTotRows1
                                                            If Cells(I, 1).Value = "EVASA" Then
                                                    
                                                            Set xWord = CreateObject("Word.Application")
                                                            xWord.Documents.Open wdFileName
                                                    
                                                            Set xTab = xWord.ActiveDocument.Tables(1)
                                                            Set xTab1 = xWord.ActiveDocument.Tables(2)
                                                            Set xTab2 = xWord.ActiveDocument.Tables(3)
                                                            Set xTab3 = xWord.ActiveDocument.Tables(4)
                                                            Set xTab4 = xWord.ActiveDocument.Tables(5)
                                                            Set xTab5 = xWord.ActiveDocument.Tables(6)
                                                            Set xTab6 = xWord.ActiveDocument.Tables(8)
                                                    
                                                            xTab.Rows(1).Cells(2).Range.Text = WsG.Cells(1, 2)
                                                    
                                                            xTab1.Rows(2).Cells(2).Range.Text = WsG.Cells(2, 2)
                                                            xTab1.Rows(2).Cells(3).Range.Text = WsG.Cells(I, 2)
                                                            xTab1.Rows(3).Cells(2).Range.Text = WsG.Cells(2, 3)
                                                            xTab1.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 3)
                                                            xTab1.Rows(4).Cells(2).Range.Text = WsG.Cells(2, 4)
                                                            xTab1.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 4)
                                                            xTab1.Rows(5).Cells(2).Range.Text = WsG.Cells(2, 5)
                                                            xTab1.Rows(5).Cells(3).Range.Text = WsG.Cells(I, 5)
                                                            xTab1.Rows(6).Cells(2).Range.Text = WsG.Cells(2, 6)
                                                            xTab1.Rows(6).Cells(3).Range.Text = WsG.Cells(I, 6)
                                                            xTab1.Rows(7).Cells(2).Range.Text = WsG.Cells(2, 7)
                                                            xTab1.Rows(7).Cells(3).Range.Text = WsG.Cells(I, 7)
                                                            xTab1.Rows(8).Cells(2).Range.Text = WsG.Cells(2, 8)
                                                            xTab1.Rows(8).Cells(3).Range.Text = WsG.Cells(I, 8)
                                                            xTab1.Rows(9).Cells(2).Range.Text = WsG.Cells(2, 9)
                                                            xTab1.Rows(9).Cells(3).Range.Text = WsG.Cells(I, 9)
                                                            xTab1.Rows(10).Cells(2).Range.Text = WsG.Cells(2, 10)
                                                            xTab1.Rows(10).Cells(3).Range.Text = WsG.Cells(I, 10)
                                                            xTab1.Rows(11).Cells(2).Range.Text = WsG.Cells(2, 11)
                                                            xTab1.Rows(11).Cells(3).Range.Text = WsG.Cells(I, 11)
                                                            xTab1.Rows(12).Cells(2).Range.Text = WsG.Cells(2, 12)
                                                            xTab1.Rows(12).Cells(3).Range.Text = WsG.Cells(I, 12)
                                                            xTab1.Rows(13).Cells(2).Range.Text = WsG.Cells(2, 13)
                                                            xTab1.Rows(13).Cells(3).Range.Text = WsG.Cells(I, 13)
                                                    
                                                            xTab2.Rows(3).Cells(2).Range.Text = WsG.Cells(2, 14)
                                                            xTab2.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 14)
                                                            xTab2.Rows(4).Cells(2).Range.Text = WsG.Cells(2, 15)
                                                            xTab2.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 15)
                                                    
                                                            xTab3.Rows(3).Cells(2).Range.Text = WsG.Cells(2, 16)
                                                            xTab3.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 16)
                                                            xTab3.Rows(4).Cells(2).Range.Text = WsG.Cells(2, 17)
                                                            xTab3.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 17)
                                                            xTab3.Rows(5).Cells(2).Range.Text = WsG.Cells(2, 18)
                                                            xTab3.Rows(5).Cells(3).Range.Text = WsG.Cells(I, 18)
                                                            xTab3.Rows(6).Cells(2).Range.Text = WsG.Cells(2, 19)
                                                            xTab3.Rows(6).Cells(3).Range.Text = WsG.Cells(I, 19)
                                                            xTab3.Rows(7).Cells(2).Range.Text = WsG.Cells(2, 20)
                                                            xTab3.Rows(7).Cells(3).Range.Text = WsG.Cells(I, 20)
                                                            xTab3.Rows(8).Cells(2).Range.Text = WsG.Cells(2, 21)
                                                            xTab3.Rows(8).Cells(3).Range.Text = WsG.Cells(I, 21)
                                                            xTab3.Rows(9).Cells(2).Range.Text = WsG.Cells(2, 22)
                                                            xTab3.Rows(9).Cells(3).Range.Text = WsG.Cells(I, 22)
                                                            xTab3.Rows(10).Cells(2).Range.Text = WsG.Cells(2, 23)
                                                            xTab3.Rows(10).Cells(3).Range.Text = WsG.Cells(I, 23)
                                                            xTab3.Rows(11).Cells(2).Range.Text = WsG.Cells(2, 24)
                                                            xTab3.Rows(11).Cells(3).Range.Text = WsG.Cells(I, 24)
                                                            xTab3.Rows(12).Cells(2).Range.Text = WsG.Cells(2, 25)
                                                            xTab3.Rows(12).Cells(3).Range.Text = WsG.Cells(I, 25)
                                                            xTab3.Rows(13).Cells(2).Range.Text = WsG.Cells(2, 26)
                                                            xTab3.Rows(13).Cells(3).Range.Text = WsG.Cells(I, 26)
                                                            xTab3.Rows(14).Cells(2).Range.Text = WsG.Cells(2, 27)
                                                            xTab3.Rows(14).Cells(3).Range.Text = WsG.Cells(I, 27)
                                                            xTab3.Rows(15).Cells(2).Range.Text = WsG.Cells(2, 28)
                                                            xTab3.Rows(15).Cells(3).Range.Text = WsG.Cells(I, 28)
                                                            xTab3.Rows(16).Cells(2).Range.Text = WsG.Cells(2, 29)
                                                            xTab3.Rows(16).Cells(3).Range.Text = WsG.Cells(I, 29)
                                                            xTab3.Rows(17).Cells(2).Range.Text = WsG.Cells(2, 30)
                                                            xTab3.Rows(17).Cells(3).Range.Text = WsG.Cells(I, 30)
                                                            xTab3.Rows(18).Cells(2).Range.Text = WsG.Cells(2, 31)
                                                            xTab3.Rows(18).Cells(3).Range.Text = WsG.Cells(I, 31)
                                                    
                                                    
                                                            xTab4.Rows(2).Cells(2).Range.Text = WsG.Cells(2, 36)
                                                            xTab4.Rows(2).Cells(3).Range.Text = WsG.Cells(I, 36)
                                                            xTab4.Rows(3).Cells(2).Range.Text = WsG.Cells(2, 37)
                                                            xTab4.Rows(3).Cells(3).Range.Text = WsG.Cells(I, 37)
                                                            xTab4.Rows(4).Cells(2).Range.Text = WsG.Cells(2, 38)
                                                            xTab4.Rows(4).Cells(3).Range.Text = WsG.Cells(I, 38)
                                                            xTab4.Rows(5).Cells(2).Range.Text = WsG.Cells(2, 39)
                                                            xTab4.Rows(5).Cells(3).Range.Text = WsG.Cells(I, 39)
                                                            xTab4.Rows(6).Cells(2).Range.Text = WsG.Cells(2, 40)
                                                            xTab4.Rows(6).Cells(3).Range.Text = WsG.Cells(I, 40)
                                                            xTab4.Rows(7).Cells(2).Range.Text = WsG.Cells(2, 41)
                                                            xTab4.Rows(7).Cells(3).Range.Text = WsG.Cells(I, 41)
                                                    
                                                    
                                                            xTab5.Rows(2).Cells(1).Range.Text = WsG.Cells(2, 32)
                                                            xTab5.Rows(2).Cells(2).Range.Text = WsG.Cells(I, 32)
                                                    
                                                            xTab6.Rows(1).Cells(1).Range.Text = WsG.Cells(2, 33)
                                                            xTab6.Rows(1).Cells(2).Range.Text = WsG.Cells(I, 33)
                                                            xTab6.Rows(2).Cells(1).Range.Text = WsG.Cells(2, 34)
                                                            xTab6.Rows(2).Cells(2).Range.Text = WsG.Cells(I, 34)
                                                            xTab6.Rows(3).Cells(1).Range.Text = WsG.Cells(2, 35)
                                                            xTab6.Rows(3).Cells(2).Range.Text = WsG.Cells(I, 35)
                                                    
                                                            NomeFile = "Check_List"
                                                            CF = Range("B3").Value
                                                            xWord.ActiveDocument.SaveAs FileName:=CF & NomeFile & ".doc"
                                                            xWord.ActiveDocument.Close
                                                            xWord.Quit
                                                        End If
                                                    #27490 Score: 0 | Risposta

                                                    M4rK081
                                                    Partecipante

                                                      Nessuno riesce a darmi qualche indicazione?

                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 28 totali)
                                                    Rispondi a: Macro per selezione intervallo righe da input box
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: