Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Allora io ho fatto un programma in vba che mi permette di copiare il primo foglio di tutti i file xls contenuti in una cartella in un unico file.
    Però questo non bastava.
    Infatti ho dovuto modificarlo.
    Ti faccio presente che nella cartella sono presenti 30 file xls e il primo foglio di tutti e 30 file contengono pio o meno 20 colonne.
    Io gli passo i valori al codice e tramite il find mi vado a cercare il valore corrispondente, seleziono l'intera colonna e me la copio.
    E' un pò difficile da spiegare scrivendo, ma se non hai capito posso essere più chiaro e al limiste postare anche il codice che in alcune fasi di esecuzione non funziona come dovrebbe anche se non riesco a capire bene il perchè.

    In attesa di tue risposte,

    Grazie per la collaborazione.

  2. #2
    Cosi nn è abbastanza chiaro,metti il codice.

  3. #3
    Eh il codice è lunghissimo.
    Comunque diciamo che ho risolto quasi il tutto.
    L'unico problema adesso c'è l'ho con usedrange.rows.count
    cioè il metodo che mi permette di contare tutte le righe vuote.
    Il problema è questo
    Io mi copio la prima colonna ne nuovo file e fin qui tutto bene
    quando mi copio la seconda colonna invece di copiarmela accantop alla prima me la copia sotto sulla destra

    Ti dò un esempio

    codice:
                    If Problem.Value = True Then
                        Dim y As String
                        b = "Problem"
                        oWbk1.Activate
                        Cells(1, 15).Select
                        Cells.Find(What:=b, after:=ActiveCell, LookIn:=xlValues, LookAt _
                        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
                        False, SearchFormat:=False).Activate
    
                        y = ActiveCell.Column
                        
                        rig1 = ActiveSheet.UsedRange.Rows.Count
                        
                        Range(CStr(Chr(64 + y)) & "2", CStr(Chr(64 + y)) & rig1).Select
                        Range(CStr(Chr(64 + y)) & "2", CStr(Chr(64 + y)) & rig1).Copy
                        'rig1 = rig1 + 1
                        
                        'Apro il file excel creato all'inizio
                        Set cartExcel = appExcel.Workbooks.Open(namefile, ReadOnly:=True, AddToMru:=False)
                        Set foglioExcel = cartExcel.Sheets("Report")
                        foglioExcel.Select   'Seleziono il foglio "Paste"
                        oWsh2.Activate 'Attivo il foglio creato da me
                        rig1 = 0 'Inizializzo la variabile
                        Cells(1, 2).Select 'Seleziono la cella
                        Cells(1, 2).Value = "Problem" 'Le dò l'intestazione
                        Cells(2, 2).Select 'Seleziono la cella
                        rig1 = ActiveSheet.UsedRange.Rows.Count 'COnto tutte le celle piene
                        Range("B2", "B" & rig1).Select 'Seleziono l'intero range
                        rig1 = rig1 + 1 'Incremento di uno la cella
                        Cells(rig1, 2).Select 'Seleziono la cella vuota dopo la piena
                        oWsh2.Paste  'Copio nel foglio
    Non so se capisci ma a scrivere è un problema. Si dovrebbe parlare telefonicamente

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 © 2024 vBulletin Solutions, Inc. All rights reserved.