Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    33

    VBA da Office2003 a Office 2010

    Buongiorno a tutti,
    ho scritto una macr osemplice semplice per importare dei dati su un pc con office2003, ho provato a far lavorare la stessa macto su offic2010 ma non funziona più ...
    Prima di rimettermi a scrivere la macro da zero vorrei capire se sbaglio qualcosa io o se è proprio diversa la sintassi per l'iportazione di file ...
    Di seguito metto il listato del mio VBA ...
    codice:
    rivate Sub CommandButton1_Click()
    '
    Dim address As String
    Dim datoLab As String
    Dim fil As String
    Dim completa As String
    
    address = Sheets("Importazione_dati").Cells(2, 2)
    datoLab = Sheets("Importazione_dati").Cells(3, 2)
    fil = datoLab & ".txt"
    completa = address & "\" & fil
    '
    
    '
        ChDir address
        Workbooks.OpenText Filename:=completa, Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
            Comma:=True, Space:=True, Other:=False, FieldInfo:=Array(Array(1, 9), _
            Array(2, 1), Array(3, 1), Array(4, 9), Array(5, 9), Array(6, 9)), TrailingMinusNumbers _
            :=True
        Sheets(datoLab).Select
        Sheets(datoLab).Copy Before:=Workbooks("Base_di_partenza_con_Macro4.xls").Sheets("Analisi")
        ActiveWindow.WindowState = xlNormal
        With ActiveWindow
            .Top = 197.8
            .Left = -32
        End With
        Windows(fil).Activate
        ActiveWindow.Close
        ActiveWindow.WindowState = xlMaximized
        ActiveWindow.SmallScroll Down:=-21
        
        Sheets(datoLab).Range("A1:B14").Delete Shift:=xlUp
        Sheets("Importazione_dati").Select
        
    End Sub
    Non è qualcuno riesce a darmi qualche dritta?

    Grazie mille in anticipo,
    Fabio
    Fabio

  2. #2
    Che tipo di errore viene generato?

    "Non funziona più" non mi da molto su cui pensare...

  3. #3
    Originariamente inviato da Bruce0wayne
    Che tipo di errore viene generato?

    "Non funziona più" non mi da molto su cui pensare...
    Concordo, spiega meglio!
    *stanco di chi non spiega gli errori*
    Nome (o/e numero) errore e riga di codice in cui lo da
    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<<<

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    33
    Scusate, se non sono stato esaustivo, avete perfettamente ragione, ma al momento son su un pc con office2003, quindi devo andare a memoria ... posso scrivere il numero di errore solo quando (+tardi) tornerò sul pc con office 2010 ...
    cmq era un errore legato al numero di righe eccessivo (ma nel file di testo che importavo erano solo 3000 ) ...
    Per quanto riguarda la riga di codice in cui lo dà è Workbooks.openText ...

    comunque più tardi la faccio rigirare e posto esattamente la storia ...

    Ciao e grazie
    F
    Fabio

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    33
    Ciao a tutti,
    In allegato trovate l'immagine dell'errore ...
    la macro si blocca alla riga 22

    codice:
    Sheets(datoLab).Copy Before:=Workbooks("Base_di_partenza_con_Macro4.xls").Sheets("Analisi")
    Confermo che con excel2003 tutto funziona perfettamente, mentre con excel2010 ho questo errore ...
    mi risulta quasi incomprensibile ...

    Sembra che non posso nemmeno copiare a mano il fogli da una cartella di lavoro ad un'altra ...

    Grazie ...
    Fabio
    Immagini allegate Immagini allegate
    Fabio

  6. #6

  7. #7

    Impossibile inserire perché ci sono più o meno righe/colonne

    pare che excel non riconosca il formato del foglio di destinazione rispetto a quello sorgente.

    Prova a convertire entrambi in *.xlsx prima di avviare qualsivoglia trasferimento. Meglio ancora se li crei da nuovi e ci incolli le righe (se te lo fa fare). Se non ti lascia fare copia/incolla fai un incolla speciale o passali prima attraverso un notepad evoluto.

    Una volta che il foglio sorgente e destinazione saranno dello stesso formato, l'operazione automatica funzionerà.

    Le differenze tra *.xls e *.xlsx non sono cose da poco e, probabilmente, il trasferimento deve eseguire in memoria una conversione di cui non ha garanzia del risultato (=errore)

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2003
    Messaggi
    33
    Il file di origine è un file di testo,
    la macro lo importa correttamente, cnacellando anche le colonne che non servono.
    I problemi nascono quando dico di copiare il foglio di lavoro (già aperto in excel2010), nel file in cui elaboro i dati ...
    In teoria con tasto dx sulla label e copia foglio a nuova destinazione mi aspetterei funzionasse, invece niente, nemmeno così va ...
    Proverò a salvare il file in cui ho la macro .xlsx e vedere se funziona ...

    cosa intendi con Notepad "evoluto?"

    Grazie mille,
    Fabio
    Fabio

  9. #9
    non so se posso fare nomi di programmi, ma ce ne sono in giro tanti. Sono programmi di elaborazione testo (txt) che gestiscono meglio del notepad i dati in arrivo dagli appunti (copia/incolla).

    Spesso incollando il dato in uno di questi programmi ti rendi conto che non si tratta solo di testo, ma di testo formattato in modo particolare.

    Se poi copi quello che hai appena incollato nel notepad lo "depuri" di oggetti e cavolate e ti resta solo il testo. Quando bisogna trasferire informazioni di base senza portarsi dietro "l'oggettologia" del formato di provenienza... un bel passaggio in un notepad risolve tutti i problemi.

  10. #10
    E se l'errore lo desse per un diverso numero di righe/colonne che hannp i fogli di Excel 2010?
    (Non lo so, ne hanno di più? Mai usato )
    Perchè l'errore parla di diverso numero di righe e colonne, e nemmeno a mano F@bio dici di riuscirci. Dovresti provare a copare solo il numero di righe/colonne che ti servono, così non hai problemi di conversione tra l'oggetto sheet del 2010 e quello del 2003

    Ciao
    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<<<

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.