[Risolto] errore di runtime BASIC

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
oigres
Messaggi: 108
Iscritto il: mercoledì 5 maggio 2010, 17:17

[Risolto] errore di runtime BASIC

Messaggio da oigres »

buona sera,
tempo fa grazie all'aiuto di Gumo e Gaetanopr avevo creato un campo data associato ad una macro che mi inseriva una data nella cella selezionata
ho ripreso il file contenente tale comando ma se provo ad inserire una data utilizzandolo mi appare questo errore:
"Errore di runtime BASIC.
Valore per la proprietà errato."
cosa è successo? non riesco a capire
allego il file di prova

grazie anticipate per l'aiuto
Allegati
campo data.ods
(9.89 KiB) Scaricato 247 volte
Ultima modifica di oigres il martedì 11 febbraio 2014, 16:47, modificato 1 volta in totale.
LibreOffice 4.3.6.2 / windows 7
Avatar utente
Gumo
Messaggi: 1227
Iscritto il: lunedì 15 marzo 2010, 13:43
Località: IT

Re: errore di runtime BASIC

Messaggio da Gumo »

SU AOO 4.01 funziona perfettamente.

Temo che la riposta alla tua domanda dipenda dalla firma: ;)
LibreOffice

in bocca al lupo
g
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
Win 7 AOO4.1 + Ubuntu 14.04 AOO4.1 - Esci dall'illegalità: utilizza OpenOffice !
oigres
Messaggi: 108
Iscritto il: mercoledì 5 maggio 2010, 17:17

Re: errore di runtime BASIC

Messaggio da oigres »

Gumo ha scritto:SU AOO 4.01 funziona perfettamente.

Temo che la riposta alla tua domanda dipenda dalla firma: ;)
LibreOffice

in bocca al lupo
g
Strano. Quando l'ho creato, grazie anche al tuo aiuto, e fino a poco tempo fa funzionava perfettamente con LibreOffice.
Qualche soluzione (diversa da installare AOO 4.01)?
grazie
LibreOffice 4.3.6.2 / windows 7
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: errore di runtime BASIC

Messaggio da patel »

Io uso LibreOffice e funziona, l'errore nassce se si clicca su Senza, basta correggere la macro così

Codice: Seleziona tutto

Sub CampoData()                          
   Doc = StarDesktop.CurrentComponent
   Sheet = Doc.Sheets.GetByIndex(0)
   DrawPage = Sheet.DrawPage
   Form = DrawPage.Forms.GetByIndex(0) 
   Ctl = Form.getByName("Campodata1")      'Campo data  (Controllo del formulario)
   ActiveCell=ThisComponent.CurrentSelection

   if Ctl.Date <> "" then  
     ActiveCell.value = CDateFromIso(Ctl.Date)  
   end if

   ActiveCell.NumberFormat=75 
   ActiveCell=thisComponent.currentSelection.CellAddress
   col=ActiveCell.column
   row=ActiveCell.row
   oRanges = Sheet.getCellByPosition(col, row + 1)
   Doc.CurrentController.Select(oRanges)
        
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
oigres
Messaggi: 108
Iscritto il: mercoledì 5 maggio 2010, 17:17

Re: errore di runtime BASIC

Messaggio da oigres »

Grazie patel.
non ho capito che significa "l'errore nasce se si clicca su Senza"
ho comunque provato a sostituire la macro con quella da te allegata ma il problema permane: mi da sempre lo stesso messaggio di errore.
mi potresti allegare il file corretto che da te funziona?
può essere che utilizzo LibreOffice 4.1.4.2 e che ciò crei qualche guaio?

ancora grazie
LibreOffice 4.3.6.2 / windows 7
Avatar utente
Gumo
Messaggi: 1227
Iscritto il: lunedì 15 marzo 2010, 13:43
Località: IT

Re: errore di runtime BASIC

Messaggio da Gumo »

@oigres
Strano. Quando l'ho creato, grazie anche al tuo aiuto, e fino a poco tempo fa funzionava perfettamente con LibreOffice.
Forse hai cambiato versione di Libo e qualche comando ha variato la sintassi ? :(

@Patel
Non ho capito il tuo commento.

g
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
Win 7 AOO4.1 + Ubuntu 14.04 AOO4.1 - Esci dall'illegalità: utilizza OpenOffice !
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: errore di runtime BASIC

Messaggio da patel »

Sul file allegato da oigres, con Libre 4.06.2, cliccando sul controllo si apre il calendario con 2 pulsanti Oggi e Senza, scegliendo un giorno qualsiasi oppure cliccando su Oggi funziona bene, cliccando su Senza va in errore sulla linea
ActiveCell.value = CDateFromIso(Ctl.Date)
la soluzione che avevo postato sopra mi funzionava ed ora non più, quindi ho optato per il controllo dell'errore

Codice: Seleziona tutto

Sub CampoData()    
                      
   on error resume next

   Doc = StarDesktop.CurrentComponent
   Sheet = Doc.Sheets.GetByIndex(0)
   DrawPage = Sheet.DrawPage
   Form = DrawPage.Forms.GetByIndex(0) 
   Ctl = Form.getByName("Campodata1")      'Campo data  (Controllo del formulario)
    ActiveCell=ThisComponent.CurrentSelection
   ActiveCell.value = CDateFromIso(Ctl.Date)  
   ActiveCell.NumberFormat=75 
   ActiveCell=thisComponent.currentSelection.CellAddress
   col=ActiveCell.column
   row=ActiveCell.row
   oRanges = Sheet.getCellByPosition(col, row + 1)
   Doc.CurrentController.Select(oRanges)
  
         
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
oigres
Messaggi: 108
Iscritto il: mercoledì 5 maggio 2010, 17:17

Re: errore di runtime BASIC

Messaggio da oigres »

Ciao patel,
scusa ma sono proprio imbranato in questo campo.
con la tua nuova macro non mi da più l'errore di runtime.
però se selezione una data dal comando, questa non viene inserita nella cella attiva ma viene semplicemente selezionata la cella sottostante (vedi file allegato)
Allegati
campo data (3).ods
(10.36 KiB) Scaricato 164 volte
LibreOffice 4.3.6.2 / windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: errore di runtime BASIC

Messaggio da Gaetanopr »

Ciao prova in questo modo, ora dovrebbe andare bene con libreoffice

Codice: Seleziona tutto

Sub CampoData()                          
                                         ' ESEMPIO 1
   Dim Doc AS Object
   Dim Sheet As Object
   Dim DrawPage As Object
   Dim Form As Object
   Dim Ctl As Object
   Dim oCell 
   
   Doc = StarDesktop.CurrentComponent
   Sheet = Doc.Sheets.GetByIndex(0)
   DrawPage = Sheet.DrawPage
   Form = DrawPage.Forms.GetByIndex(0) 
   Ctl = Form.getByName("Campodata1")      'Campo data  (Controllo del formulario)
   
   ActiveCell=ThisComponent.CurrentSelection

   ActiveCell.value =   CDate(Ctl.Text)
   ActiveCell.NumberFormat=75 
  
   ActiveCell=thisComponent.currentSelection.CellAddress
   col=ActiveCell.column
   row=ActiveCell.row

   oRanges = Sheet.getCellByPosition(col, row + 1)
   Doc.CurrentController.Select(oRanges)
  
         
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
oigres
Messaggi: 108
Iscritto il: mercoledì 5 maggio 2010, 17:17

Re: errore di runtime BASIC

Messaggio da oigres »

grazie mille Gaetanopr!
ora sembra proprio che funzioni anche con LibreOffice

ancora grazie
ciao
sergio
LibreOffice 4.3.6.2 / windows 7
Rispondi