Condividi:        

excel 2003:lavorare da form su un'altro file

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

excel 2003:lavorare da form su un'altro file

Postdi karug64 » 19/02/14 23:42

Salve a tutti.
Nel mio nuovo lavoro che sto accingendo ad iniziare, dovrei avere questa situazione:
- Un file xls (chiamiamolo "Base") che contiene dei form e tutto il codice vba
- un file xls (chiamiamolo "Database") con vari fogli contenenti dati di supporto per l'elaborazione. Questi fogli dovrebbero venire aggiornati dal codice del foglio "Base"
- un file xls (chiamiamolo "Elaborazione") che conterrà il risultato finale.

Mi interessava sapere se è possibile (e se possibile come) dopo aver lanciato "Base", aprire e lavorare (leggere e scrivere su celle, impostare larghezza colonne, colori celle ecc ecc ) sui singoli fogli.

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: excel 2003:lavorare da form su un'altro file

Postdi karug64 » 20/02/14 00:11

MI rispondo da solo:

Codice: Seleziona tutto
Workbooks.Open Application.ActiveWorkbook.Path & "\" & xlsdata
    Workbooks(xlsdata).Activate
    ActiveWindow.WindowState = xlMinimized
   
    Workbooks.Open Application.ActiveWorkbook.Path & "\" & xlstab
    Workbooks(xlstab).Activate
    ActiveWindow.WindowState = xlMinimized
   
    Workbooks(xlsprog).Activate
    ActiveWindow.WindowState = xlMinimized
   
    UserForm1.Show


Ma volendo lavorare sui fogli aperti devo fare cosi' ?

Codice: Seleziona tutto
Workbooks(xlsdata).Activate
For x = 1 To Sheets("art").Range("A65000").End(xlUp).Row
    Workbooks(xlsdata).Worksheets("art").Select
    ComboBox1.AddItem (Sheets("art").Cells(x, 1))
Next x


cioè ogni volta che devo fare riferimento ad oggetto del form devo prima selezionare il foglio e poi operare ?
Sbaglio o c'e' una via piu' breve ?

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22

Re: excel 2003:lavorare da form su un'altro file

Postdi ricky53 » 20/02/14 00:33

Ciao,
Non è necessario.
Per esempio guarda questo pezzo di codice e vedi come ho gestito l'accesso ai dati dei due file
Codice: Seleziona tutto
Sub Copia_Dati()
    Dim UR_A As Long, UR_B As Long, I As Long, J As Long, K As Long, Chiave_A As String, Chiave_B As String
    Dim UC As Integer, WS_A As Worksheet, WS_B As Worksheet, Trovato As String
    Dim Aggiornato As Integer, Aggiunto As Integer
       
    Windows("File_B.xls").Activate ' <<===== QUI metti il nome del tuo file
    Sheets("Foglio1").Select ' <<==== Controlla il nome del foglio
    Set WS_B = Sheets("Foglio1") ' <<==== Controlla il nome del foglio
    UR_B = WS_B.Range("B" & Rows.Count).End(xlUp).Row
   
    Windows("File_A.xls").Activate ' <<===== QUI metti il nome del tuo file
    Sheets("Foglio1").Select ' <<==== Controlla il nome del foglio
    Set WS_A = Sheets("Foglio1") ' <<==== Controlla il nome del foglio
    UR_A = WS_A.Range("B" & Rows.Count).End(xlUp).Row
    K = UR_A + 1
   
    Aggiornato = 0
    Aggiunto = 0
    For I = 2 To UR_B
        Chiave_B = WS_B.Cells(I, "B") & WS_B.Cells(I, "F")
        Trovato = "NO"
        For J = 2 To UR_A
            Chiave_A = WS_A.Cells(J, "B") & WS_A.Cells(J, "F")
            If Chiave_A = Chiave_B Then
                UC = WS_A.Cells(J, "W").End(xlToLeft).Column + 1
                WS_A.Cells(J, UC) = WS_B.Cells(I, "Q")
                Aggiornato = Aggiornato + 1
                Trovato = "SI"
                Exit For
            End If
        Next J
        If Trovato <> "SI" Then
            WS_B.Range("B" & I & ":V" & I).Copy Destination:=WS_A.Range("B" & K)
            K = K + 1
            Aggiunto = Aggiunto + 1
        End If
    Next I
    MsgBox "E' stata effettuata l'elaborazione dei dati da confrontare" & vbCrLf & vbCrLf & _
        "Aggiornati:  " & Aggiornato & "   cognomi" & vbCrLf & _
        "Aggiunti:    " & Aggiunto & "   cognomi"
End Sub


I due file sono gestiti tramite le due variabili WS_A e WS_B
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W10; Office 2003-10-13-16-19
Avatar utente
ricky53
Utente Senior
 
Post: 4565
Iscritto il: 11/04/09 19:29
Località: Italia

Re: excel 2003:lavorare da form su un'altro file

Postdi karug64 » 20/02/14 00:57

Ok. domani mattina incomincio a lavorarci.

Grazie
Office 2010
karug64
Utente Senior
 
Post: 746
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "excel 2003:lavorare da form su un'altro file":


Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti