Run-time error 1004
Hai un problema con Excel? 
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
Vuoi Approfondire?