Condividi tramite

Macro in VBA per copiare zona da file CSV (2^ parte)

Anonimo
2010-07-01T16:11:15+00:00

Appello per Gamberini,

ti ho detto che tutto funzionava, mi ero dimenticato di dire che il file excel Pippo.xls viene pubblicato in internet all'interno di un frame. Con il vecchio sistema che mi costringeva a fare copia e incolla dal file ListaMovimenti[1].CSV (zona A1:G2000) e quindi aprivo nel frame il file Pippo.xls e ricopiavo i dati a partire dalla cella A3 (foglio EC DA SISTEMARE CLIENTE, tutto ha sempre funzionato. Come pure ha funzionato aprendo in locale il file excel Pippo.xls e lanciando la tua macro.

Con stupore quando clicco sul pulsante che chiama la macro da te fatta, mi fa uscire il messaggio come se non avesse trovato il file ListaMovimenti.

In pratica il file CSV è aperto in excel , tramite il link internet, il mio file Pippo.xls e aperto dentro il frame htm e tutti gli altri pulsanti funzionano, mentre quando lancio la macro creata mi  si blocca sul messaggio che ti ho detto.

In locale funziona tutto. Cosa mi dici? Il mio errore è che non avevo mai testato questo nuovo sistema dopo averlo pubblicato sul server.

Pierluigi.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

3 risposte

Ordina per: Più utili
  1. Anonimo
    2010-07-02T07:41:06+00:00

    Grazie Mauro, attendo allora che qualcuno mi dia un suggerimento in merito.

    In pratica come dicevo il File Pippo.xle viene aperto in un frame internet e da li la macro deve copiare i dati del file file ListaMovimenti[1].CSV (zona A1:G2000) che si è aperto tramite excel.

    Spero che qualcuno riceva il mio appello.

    Grazie Pierluigi

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-07-02T07:10:53+00:00

    per correttezza posto anche l'ultimo codice che in local funziona:

    Perchè tutti gli altri pulsanti che lanciano altre macro funzionano ma questo codice va sul messaggio come se non sentisse il file CSV che è aperto in excel sottostante?

    <cut>

    Ho provato in rete di lavorare aprendo i due file posizionati su altro pc e tutto funziona. Non ho però esperienza di file di Excel utilizzati in/da InternetExplorer. E' ovviamente un mio limite. Qui rispondono anche altre persone, aspettiamo e vediamo se qualcuno ha una soluzione. Un'alternativa è chiedere sul forum in lingua inglese: http://social.answers.microsoft.com/Forums/en-US/officeprog/threads . Inoltre, per favore, la prossima volta continua nello stesso thread, per magior chiarezza, grazie. Mi scuso ancora per non riuscire ad aiutarti. Grazie per l'attenzione.


    Mauro Gamberini - Microsoft© MVP(Excel)

    http://www.maurogsc.eu/

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-07-01T16:18:54+00:00

    per correttezza posto anche l'ultimo codice che in local funziona:

    Perchè tutti gli altri pulsanti che lanciano altre macro funzionano ma questo codice va sul messaggio come se non sentisse il file CSV che è aperto in excel sottostante?

    Pierluigi

    '---------------------------------------------

    Posto anche il codice commentato passo passo per maggior(spero) chiarezza:

    Public Sub m()

        'dichiaro le variabili

        Dim wkMe As Workbook

        Dim wkInt As Workbook

        Dim shMe As Worksheet

        Dim shInt As Worksheet

        Dim w As Object

        'metto un riferimento al workbook

        'che contiene il codice

        Set wkMe = ThisWorkbook

        With wkMe

            'metto un riferimento al Foglio1

            '(modifica a tuo piacere)

            'dove andrò a incollare i dati presi

            'dal file.csv

            Set shMe = .Worksheets("Foglio1")

        End With

        'ciclo le Windows aperte

        For Each w In Windows

            'se ho una window che contiene

            'ListaMovimenti" nella caption

            If InStr(w.Caption, "ListaMovimenti") Then

                'metto un riferimento valido al

                'workbook relativo

                Set wkInt = Workbooks(w.Caption)

                'esco dal ciclo

                Exit For

            End If

        Next

        'se ho trovato un file valido aperto

        If Not wkInt Is Nothing Then

            With wkInt

                'metto un riferimento al foglio

                'del file .csv da cui copiare

                ' dati

                Set shInt = .Worksheets(1)

                'copio i dati dal foglio del file .csv

                ' e li incollo nel Foglio1(come già

                'spiegato modificherai Foglio1 più in alto

                ' a seconda delle tue esigenze

                shInt.Range("A1:C5").Copy _

                    Destination:=shMe.Range("B5")

            End With

        Else

            'se non ho trovato un file valido

            'mostro una MsgBox

            MsgBox "File non trovato" '------------> ecco mi esce questo messaggio qundo lancio la macro da internet    End If

        'Set a Nothing delle variabili oggetto

        Set shInt = Nothing

        Set shMe = Nothing

        Set wkInt = Nothing

        Set wkMe = Nothing

    End Sub

    La risposta è stata utile?

    0 commenti Nessun commento