Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207

    Copiare dati da File excel (vba)

    Ciao a tutti
    Sto cercando di copiare una intero foglio di un file excel
    Non riesco, vi faccio vedere il codice a cui sono arrivato per ora.

    codice:
    Option Explicit
    Dim i As Long
    Dim y As Long
    
    Sub Dati()
    Workbooks.Open Filename:="C:\Documenti\FileDati.xlsx"
    Sheets("Dati").Select
    For i = 1 To 3000
        For y = 1 To 34
             Foglio1.Cells(i, y) = Cells(i, y).Select
         Next y
    Next i
    
    End Sub
    il Codice è all'interno di un foglio vuoto di un nuovo file excel
    Quello che vorrei fare è inserire in ogni cella del foglio1 i valori presenti nel foglio "Dati"
    grazie :P

  2. #2
    Che ha che non va il codice?
    Dovrebbe funzionare
    Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
    Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
    >>>Visita il mio blog<<<

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    L'errore è questo:

    Errore di run-time '1004': Errore definito dall'applicazione o dall'oggetto

    Sto cercando di capire perchè.... ma non riesco...

  4. #4
    Su che riga lo da?

    Forse il problema potrebbe essere che fa confusione tra il workbook che apri e quello in cui stai eseguendo la routine?
    Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
    Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
    >>>Visita il mio blog<<<

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Come posso chiamare la parte di codice relativa alle celle del workbook ?

    ____.Cells(i, y).Select

    ???

  6. #6
    Ciao,
    non ho capito bene se vuoi copiare da un file a un altro o da un foglio ad un altro dello stesso file o se vuoi creare un nuovo foglio comunque forse questo può esserti utile:

    Worksheet.Copy, metodo
    Copia il foglio in una posizione diversa della cartella di lavoro.

    Sintassi

    espressione.Copy(Prima, Dopo)

    espressione Variabile che rappresenta un oggetto Worksheet.

    Parametri

    Nome Obbligatorio/Facoltativo Tipo di dati Descrizione
    Prima Facoltativo Variant Specifica il foglio prima del quale verrà copiato il foglio. Non è possibile specificare Prima se si specifica Dopo.
    Dopo Facoltativo Variant Specifica il foglio dopo il quale verrà copiato il foglio. Non è possibile specificare Dopo se si specifica Prima.

    Note


    Se l'argomento Prima o Dopo non viene specificato, il foglio verrà copiato in una nuova cartella di lavoro.


    Esempio


    In questo esempio Sheet1 viene copiato dopo Sheet3.

    Visual Basic, Application Edition
    Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  7. #7
    Originariamente inviato da lele85red
    Come posso chiamare la parte di codice relativa alle celle del workbook ?

    ____.Cells(i, y).Select

    ???
    Devi dichiarare una variabile che assegni al 2° workbook che apri
    Poi fai
    codice:
    ThisWorkbook.Sheets(numeroDelFoglioInCuiCopiare(x,y)=Workbook.Sheets(numeroDelFoglioDaCopiare).Cells(x,y)
    iterando i valori x e y
    Mi contraddico facilmente, ma lo faccio così spesso che questo fa di me una persona coerente [Caparezza]
    Se la conoscenza crea problemi, non è con l'ignoranza che li si risolve [Isaac Asimov]
    >>>Visita il mio blog<<<

  8. #8
    Ciao,
    ho provato e funziona anche fra file diversi: con questo pulsante, inserito in file2.xlsm, ho copiato il Foglio1 di file1.xlsx dopo il Foglio2 di file2.xlsm

    codice:
    Private Sub CommandButton1_Click()
    
       Workbooks.Open Filename:="D:\... path ...\file1.xlsx"
       
       Worksheets("Foglio1").Copy After:=Workbooks("file2.xlsm").Worksheets("Foglio2")
    
    End Sub
    Ciao
    La democrazia rappresentativa ha fatto il suo tempo, è ora di passare alla democrazia diretta.
    www.beppegrillo.it

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2008
    Messaggi
    207
    Ho risolto cosi ragazzi

    codice:
    Sub Dati()
    
    Workbooks.Open Filename:="C:Dati.xlsx"
    For i = 1 To 3000
        For y = 1 To 34
             Foglio1.Cells(i, y) = Sheets("Dati").Cells(i, y)
         Next y
    Next i
    ActiveWorkbook.Close
    End Sub
    Grazie a tutti

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.