[Risolto]Maschera inserimento dati Calc

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Lorenzo91
Messaggi: 4
Iscritto il: giovedì 19 maggio 2022, 17:14

[Risolto]Maschera inserimento dati Calc

Messaggio da Lorenzo91 »

Buongiorno a tutti,
Grazie all'aiuto di un utente del forum (patel), ho utilizzato una sua userform e la stavo modificando però ci sono alcune cose che non riesco ancora a capire.
Allora, quando vado a riempire tutti i campi funziona tutto bene, nel senso che mi si riempie la riga successiva, cioè l'ultima.
Quando però vado ad inserire dati singoli, magari di campi diversi, mi viene trascritto sulla stessa riga, invece di andarmi alla riga successiva...
Ho provato a vedere come mai, ma non ci capisco molto, qualcuno potrebbe dare un'occhio?
Poi altra cosa, ma molto meno importante, voglio mettere anche una checkbox di modo che quando venga spuntata, sulla cella corrispondente mi venga segnata una lettera (una X va benissimo).
qualcuno sa aiutarmi? posto l'esempio che ho modificato
grazie a tutti
Allegati
provacalc.ods
(16.9 KiB) Scaricato 85 volte
Ultima modifica di Lorenzo91 il mercoledì 25 maggio 2022, 10:57, modificato 1 volta in totale.
LibreOffice 6.0 su Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4019
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Maschera inserimento dati Calc

Messaggio da patel »

modifica così

Codice: Seleziona tutto

Private Sub cmdWriteCell                         ' SCRIVI VALORE IN CELLA DA CALC
   dim Esami as String,Espren as String, Altro as String, Info as String
   dim Visite as String, Vispren as String 
   
   Visite = dlg.getControl("NumericField1").text        ' LEGGO IL VALORE INSERITO DALL'UTENTE
   Vispren = dlg.getControl("NumericField2").text      
   Esami = dlg.getControl("NumericField3").text        
   Espren = dlg.getControl("NumericField4").text       
   Altro = dlg.getControl("NumericField5").text          
   Info = dlg.getControl("CheckBox1").State          ' non text
 
 
     Sheet = ThisComponent.Sheets(0)
    LastRow =  LastRowInColonna(Sheet,0)  + 2   
    Sheet.getCellRangeByName("B" & LastRow).string = Visite 
    Sheet.getCellRangeByName("C" & LastRow).string = Vispren 
    Sheet.getCellRangeByName("G" & LastRow).formula = "=TODAY()"
    Sheet.getCellRangeByName("D" & LastRow).value = Esami
    Sheet.getCellRangeByName("E" & LastRow).value = Espren
    Sheet.getCellRangeByName("F" & LastRow).string = Altro
    Sheet.getCellRangeByName("H" & LastRow).value = Info
    Sheet.getCellRangeByName("A" & LastRow).value = Lastrow - 2
    
   dlg.getControl("NumericField1").text = ""      ' RIPULISCO IL VALORE DEL CAMPO INSERITO DALL'UTENTE
   dlg.getControl("NumericField2").text = ""      
   dlg.getControl("NumericField3").text = ""    
   dlg.getControl("NumericField4").text = ""    
   dlg.getControl("NumericField5").text = ""    
   dlg.getControl("CheckBox1").State = 0          ' non esiste text, ma 0 o 1

   dlg.getControl("NumericField1").SetFocus()     ' DOPO LA PULIZIA DEL CAMPO PORTA IL CURSORE NELLA CELLA
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
Lorenzo91
Messaggi: 4
Iscritto il: giovedì 19 maggio 2022, 17:14

Re: Maschera inserimento dati Calc

Messaggio da Lorenzo91 »

Funziona alla perfezione! grazie mille!!!
LibreOffice 6.0 su Windows 10
Rispondi