Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VBA - Excel] Errore run-time '1004' non comprensibile

    Buongiorno a tutti.
    Nella generazione di una statistica in Excel, con il recupero dati in un DB Oracle con VBA, durante la scrittura dei dati sul foglio si verifica il seguente errore:

    Errore di run-time '1004':
    Errore definito dall'applicazione o dall'oggetto
    La riga su cui si blocca è:
    codice:
    ActiveSheet.Cells(posy, 14).FormulaR1C1 = "=" & ActiveSheet.Cells(posy, 14) & " / " & Transazioni
    Premetto che:
    - Questa statistica ha funzionato per mesi e solo da alcuni giorni da questo errore
    - Questa è la 449° riga di dati che viene scritta sul foglio Excel
    - "Transazioni" è una variabile che contiene un intero (24689)
    - La cella dove si inserisce la formula contiene un numero
    - La stessa riga di codice ha funzionato per le precedenti 448 righe.

    Microsoft non mi fornisce un granché come supporto, il codice non l'ho scritto io ma ad occhio mi sembra che non gli va bene inserire la formula con quegli operandi lì.
    In effetti il numero presente nella cella è un po' anomalo rispetto agli altri (41,77 piuttosto che 7, 474, 18...) cioè non è intero.
    Vi sarei molto grato se mi poteste suggerire una soluzione per poter far funzionare la statistica in qualche maniera, anche se secondo me il problema è che quel dato non va bene alla radice, l'utente vuole mantenere lo status quo.

    Grazie in anticipo.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Ho spostato la discussione nel forum di competenza: Visual Basic e .NET Framework.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Scusa, credevo di essere già nella sezione giusta di VB.

  4. #4

    Re: [VBA - Excel] Errore run-time '1004' non comprensibile

    Originariamente inviato da lucaGOfvg
    Buongiorno a tutti.
    Nella generazione di una statistica in Excel, con il recupero dati in un DB Oracle con VBA, durante la scrittura dei dati sul foglio si verifica il seguente errore:

    La riga su cui si blocca è:
    codice:
    ActiveSheet.Cells(posy, 14).FormulaR1C1 = "=" & ActiveSheet.Cells(posy, 14) & " / " & Transazioni
    Premetto che:
    - Questa statistica ha funzionato per mesi e solo da alcuni giorni da questo errore
    - Questa è la 449° riga di dati che viene scritta sul foglio Excel
    - "Transazioni" è una variabile che contiene un intero (24689)
    - La cella dove si inserisce la formula contiene un numero
    - La stessa riga di codice ha funzionato per le precedenti 448 righe.

    Microsoft non mi fornisce un granché come supporto, il codice non l'ho scritto io ma ad occhio mi sembra che non gli va bene inserire la formula con quegli operandi lì.
    In effetti il numero presente nella cella è un po' anomalo rispetto agli altri (41,77 piuttosto che 7, 474, 18...) cioè non è intero.
    Vi sarei molto grato se mi poteste suggerire una soluzione per poter far funzionare la statistica in qualche maniera, anche se secondo me il problema è che quel dato non va bene alla radice, l'utente vuole mantenere lo status quo.

    Grazie in anticipo.
    Ciao !

    L'errore 1004 e' generico, e per il quale non abbiamo alcun aiuto dal msg. d'errore stesso.

    La situazione che descrivi e' alquanto strana... dici che la cella contiene un numero (intero o reale), poi evidenzi la riga nella quale il codice della macro immette la "formula" per la cella stessa: questa formula non fa altro che dividere per il valore numerico della variabile Transazioni.

    La domanda e', quindi (a prescindere dall'errore):
    perche' mettere nella cella una formula come "=10/24689", quando il codice potrebbe metterci gia' il risultato NUMERICO ?

    Il suggerimento invece e':
    non e' che la cella contiene apparentemente un numero reale, ma viene usato il separatore decimale errato ? (la virgola invece del punto, o viceversa, a seconda delle impostazioni internazionali)
    Al momento della valutazione della formula, Excel potrebbe dare proprio quell'errore !
    IceCube_HT (VB6 fan Club)

  5. #5
    La domanda e', quindi (a prescindere dall'errore):
    perche' mettere nella cella una formula come "=10/24689", quando il codice potrebbe metterci gia' il risultato NUMERICO ?
    Domanda lecita alla quale non so darti risposta.
    Ripeto che il codice non è mio quindi non so perché è stata fatta questa scelta, perciò non me la sento di modificare la riga mettendo direttamente il risultato perché non posso prevedere gli effetti su tutto il resto.

    Il suggerimento invece e':
    non e' che la cella contiene apparentemente un numero reale, ma viene usato il separatore decimale errato ? (la virgola invece del punto, o viceversa, a seconda delle impostazioni internazionali)
    Al momento della valutazione della formula, Excel potrebbe dare proprio quell'errore !
    No, il separatore decimale è sempre lo stesso.
    I numeri sono tutti nella stessa forma, solo che quello lì invece di essere 4,000 o 36,000 oppure 13,000, è 41,775.
    Ho grossolanamente risolto inserendo una approssimazione al dividendo in questa maniera:

    codice:
    ActiveSheet.Cells(posy, 14).FormulaR1C1 = "=" & Int(ActiveSheet.Cells(posy, 14)) & " / " & Transazioni
    ...in tutte le righe in cui veniva ripescato quel valore (quindi anche nei parziali e nel calcolo totale). Non è una soluzione bellissima, ma per adesso almeno non si blocca più.

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.