Visualizzazione dei risultati da 1 a 5 su 5

Visualizzazione discussione

  1. #3
    Utente di HTML.it L'avatar di ing82
    Registrato dal
    Sep 2014
    Messaggi
    177
    Quote Originariamente inviata da patel Visualizza il messaggio
    potresti provare a popolare la combo col metodo additem inserito in un ciclo che scandisce gli elementi dell'array
    Ho superato il blocco relativo al riempimento della combobox1: bastava richiamarla come ComboBox1 e usare .additem

    Ora però ho un'ulteriore difficoltà: alla userform ho aggiunto due pulsanti , commandbutton1 "ok" e commandbutton2 "Annulla".
    Quando clicco commandbutton1, vorrei:
    - recuperare il valore dell'item selezionato nella combobox (funzionante);
    - sfruttare quell'indice per far partire la copia del range "Area_stampa" del foglio desiderato.

    La macro che seleziona il range e lo copia in word è da adattare, ho trovato un esempio in internet e fa questo però da excel verso un nuovo documento word, ma con qualche aggiustatina non dovrei aver grosse difficoltà.
    Il problema sostanziale, che credo sia più di logica del VBA che altro, nella macro sotto riportata, una volta fatto Userform1.show, come faccio a passare alla sub commandbutto1.click l'oggetto xlApp da cui effettuare la copia dell'area di interesse?

    codice:
    Sub insertExcel()
        Dim wrdApp As Word.Application
        Dim wrdDoc As Word.Document
        Set wrdApp = GetObject(, "Word.Application")
        wrdApp.Visible = True
        Set wrdDoc = wrdApp.ActiveDocument
        Dim s As Variant
        Dim Res As Integer
        Dim dlgOpen As FileDialog
        Set dlgOpen = Application.FileDialog( _
        FileDialogType:=msoFileDialogOpen)
        dlgOpen.AllowMultiSelect = False
        dlgOpen.Filters.Clear
        dlgOpen.Filters.Add "Custom Excel Files", "*.xlsm, *.xlsx, *.csv, *.xls"
        dlgOpen.FilterIndex = 1
        Res = dlgOpen.Show
        Dim xlApp As Object
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
        If Not Res = 0 Then
            For Each s In dlgOpen.SelectedItems  'There is only one
                With wrdApp
                    .Selection.TypeText Text:=s 'passaggio fatto solo per verificare che acquisissi correttamente l'indirizzo del file, poi verrà tolto
                    .Selection.TypeParagraph
                End With
                xlApp.Workbooks.Open (s)
            Next
        End If
        Dim i As Integer
        Dim sheets As Integer
        sheets = xlApp.ActiveWorkbook.sheets.Count
        Dim fg() As String
        ReDim fg(0 To sheets - 1) As String
        For i = 0 To xlApp.ActiveWorkbook.sheets.Count - 1
            fg(i) = xlApp.ActiveWorkbook.sheets(i + 1).Name
        Next i
        For i = 0 To UBound(fg)
            UserForm1.ComboBox1.AddItem fg(i)
        Next
        Call UserForm1.Show
        xlApp.ActiveWorkbook.Close savechanges:=False
        MsgBox "Finito!"
        Set xlApp = Nothing
        Set dlgOpen = Nothing
        Set wrdDoc = Nothing
        Set wrdApp = Nothing
    End Sub
    File allegati File allegati
    Ultima modifica di ing82; 16-03-2021 a 13:24

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.