Run-time error 1004



  • Run-time error 1004
    di Orion69 (utente non iscritto) data: 19/10/2009

    Ciao,
    avrei bisogno di conforto per un problema con vba excel 2007:

    ho impostato il codice come segue
    itf.borders(xlinsidevertical).weight = xlhairline

    il programma si blocca e mi dice: "impossibile impostare la proprieta weight per la classe border"

    eppure il codice è scritto correttamente.
    c'è una soluzione?
    grazie 1000 in anticipo




  • di Orion69 (utente non iscritto) data: 19/10/2009

    Ho trovato una soluzione fatta in casa...
    isolo il codice che mi genera l'errore in una subroutine tutta sua indicando come prima riga di codice "on error resume next" e il programma fila via perfettamente, per giunta con la formattazione richiesta.

    certo, resta l'assurdo di dover utilizzare un sotterfugio anche in presenza di codice corretto.

    se qualcuno comunque potesse darmi una spiegazione sarei molto più felice.
    grazie



  • di Ricky53 data: 20/10/2009

    Ciao,
    non ho capito la parte iniziale del comando (la parola prima di ".borders("), comunque ho provato con

    selection.borders(xlinsidevertical).weight = xlhairline

    e non ho avuto problemi.

    ciao da rciky53



  • di Orion69 (utente non iscritto) data: 20/10/2009

    Ciao ricky,
    scusa effettivamente la parte iniziale del codice che ho riportato (itf) è una varabiale;

    lo so che l'istruzione è corretta e funziona, è proprio questo che mi manda di fuori.
    infatti ho provato a fare un progammino di due righe con la stessa istruzione: nessun problema.
    invece all'interno del mio programma si blocca in quel punto. bah



  • di Ricky53 data: 20/10/2009

    Caio,
    che cosa contiene "itf"?

    ciao da ricky53



  • di Orion69 (utente non iscritto) data: 20/10/2009

    Itf è stato dichiarato come segue: dim itf as range

    per tua info, quando il programma si blocca, itf fa riferimento a un gruppo di celle lungo 5 righe e largo 2 colonne.

    ciao



  • di Ricky53 (utente non iscritto) data: 20/10/2009

    Ciao,
    se "itf" è impostato correttamente tutto funziona.

    prova così

    dim itf as range
    set itf = range("a1:b5")
    msgbox itf.address
    itf.borders(xlinsidevertical).weight = xlhairline

    nel tuo caso cosa contiene effettivamente "itf" prima dell'istruzione che va in errore?

    prova con: msgbox itf.address

    messa prima di

    itf.borders(xlinsidevertical).weight = xlhairline


    ciao da ricky53



  • di Orion69 (utente non iscritto) data: 20/10/2009

    Ciao ricky,
    ho fatto come mi hai suggerito;

    nel msgbox l'indirizzo che rilascia è questo: $b$5:$c$9
    allora ho impostato il codice come segue:
    set itf = range("b5:c9")
    itf.borders(xlinsidevertical).weight=xlhairline

    ma il programma si blocca comunque con errore run-time 1004 ecc... esattamente come prima.

    se vogliamo l'altra cosa strana e questa: se vado fisicamente nel foglio per formattare l'intervallo a mano, succede che, una volta selezionato l'intervallo con il mouse e cliccato con il tasto destro, quando seleziono "formato celle" nel menu che appare, la consueta maschera della formattazione non si visualizza; e nemmeno mi fa cambiare la formattazione se clicco su un qualsiasi formato bordi (di quelli già pronti) che si trovano nel menu nella parte superiore del foglio.
    come se ci fosse una baco in excel stesso.

    strano, non trovi?
    grazie+saluti
    orion




  • Dubbio
    di Rp71 (utente non iscritto) data: 21/10/2009

    Domanda stupida :
    non è che x caso è attivata o si attiva in qualche modo via codice la protezione foglio ?



  • di Ricky53 data: 21/10/2009

    Ciao,
    verifica quanto suggerito da ri71 che potrebbere essere il suggerimento risolutivo.

    proteggendo un foglio si ottiene quel messaggio.

    se selezioni un intervallo di celle e provi con il tasto desto, "formato celle" è grigio e non selezionabile? se è grigio vuol dire che il foglio è protetto.

    ciao da ricky53



  • di Orion69 (utente non iscritto) data: 24/10/2009

    Ciao ragazzi,
    grazie mille davvero per il vs supporto

    purtroppo vi devo confermare che il foglio non è assolutamente protetto; tanto è vero che si tratta di un foglio fatto aggiungere come nuovo dal programma stesso; ad ogni modo, sono andato fisicamente a verificarlo nel menu e confermo che non risulta protetto

    infatti - ed è qui la cosa che non mi spiego - alcune celle del foglio stesso si possono formattare, mentre sono proprio quelle che il programma avrebbe istruzione di modificare che risultano inacessibili (almeno per quanto riguarda la formattazione dei bordi)

    e' questo che mi porta a pensare che non siamo di fronte ad un errore di programmazione ma ad un vero e proprio baco, se non di excel in generale, almeno della versione in mio possesso

    questo è quanto
    grazie ancora e saluti



  • di Big ronnie (utente non iscritto) data: 24/10/2009

    Ciao orione69,in excel si può bloccare la modifica di intervalli di celle anche senza password.per esempio questo può essere fatto dall'amministratore del foglio limitando l'accesso ad alcuni operatori ad intervalli di celle specifici.ora non sò se questo è il tuo caso,comunque leggiti l'argomento protezione degli elementi del foglio di lavoro nella guida.

    ciao big