[Risolto] macro basic bottone incremento
[Risolto] macro basic bottone incremento
Ho creato dei bottoni e ogni volta che ne premo
uno si incrementa il valore di una specifica cella.
La macro in basic è questa per la cella I6 del Foglio1:
Sub incrementaI6
oSheet = ThisComponent.Sheets.getByName("Foglio1")
oCell = oSheet.getCellrangeByName("I6")
oCell.value = oCell.value + 1
end sub
Ora però il problema è che sta macro è poco flessibile perchè se ho
100 bottoni in un foglio devo scrivere 100 macro... e poi se voglio duplcare il foglio non so se le macro funzionerebbero nel foglio2...
Non so proprio niente di Basic...Come si scrive la macro che assegnata a qualsiasi bottone fa incrementare il valore della cella assegnata al bottone? (c'è anche il problema di assegnare il bottone alla cella che non saprei come risolvere...).
Vi allego il foglio su cui sto lavorando: 18 bottoni, 18 macro...
Se riuscite a risolvere sarebbe fantastico, grazie
uno si incrementa il valore di una specifica cella.
La macro in basic è questa per la cella I6 del Foglio1:
Sub incrementaI6
oSheet = ThisComponent.Sheets.getByName("Foglio1")
oCell = oSheet.getCellrangeByName("I6")
oCell.value = oCell.value + 1
end sub
Ora però il problema è che sta macro è poco flessibile perchè se ho
100 bottoni in un foglio devo scrivere 100 macro... e poi se voglio duplcare il foglio non so se le macro funzionerebbero nel foglio2...
Non so proprio niente di Basic...Come si scrive la macro che assegnata a qualsiasi bottone fa incrementare il valore della cella assegnata al bottone? (c'è anche il problema di assegnare il bottone alla cella che non saprei come risolvere...).
Vi allego il foglio su cui sto lavorando: 18 bottoni, 18 macro...
Se riuscite a risolvere sarebbe fantastico, grazie
- Allegati
-
- score.ods
- (10.85 KiB) Scaricato 732 volte
Ultima modifica di Marrlowe il domenica 20 febbraio 2011, 17:17, modificato 1 volta in totale.
OpenOffice.org 3.1 Windows XP e Ubuntu
Re: macro basic bottone incremento
Puoi assegnare a 100 pulsanti la stessa macro. Ti consiglio di usare la slider (barra di scorrimento dei formulari).
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
OpenOffice 3.3 su Windows XP
-
OpenOffice 3.3 su Windows XP
Re: macro basic bottone incremento
slider??? come posso usare la stessa macro per 100 bottoni se quella macro incrementa il valore della cella I6 nel Foglio1 quando io vorrei incrementare il valore di 100 celle diverse???
OpenOffice.org 3.1 Windows XP e Ubuntu
Re: macro basic bottone incremento
Ho capito male, pensavo che la cella è sempre la stessa. La slider è una barra di scorrimento che si può legare ad una cella per aumentare o diminuire il suo valore numerico, la puoi orientale anche in verticale. vedi immagine sotto.Marrlowe ha scritto:slider??? come posso usare la stessa macro per 100 bottoni se quella macro incrementa il valore della cella I6 nel Foglio1 quando io vorrei incrementare il valore di 100 celle diverse???
Comunque se proprio vuoi usare i pulsanti e le macro, sono in grado di fare tutto ciò con 1 solo pulsante semplicemente selezionando la cella interessata e aumentargli il valore numerico. Se sei interessato fammi sapere.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
OpenOffice 3.3 su Windows XP
-
OpenOffice 3.3 su Windows XP
- xergio
- Messaggi: 315
- Iscritto il: lunedì 15 marzo 2010, 21:54
- Località: Arzignano (Vicenza)
- Contatta:
Re: macro basic bottone incremento
Il codice che segue è quello che ti interessa (derivato, con piccole modifiche, da questo post di Pitonyak http://www.oooforum.org/forum/viewtopic.phtml?t=106235 )
n.b.: è indifferente dal foglio e dalla posizione del cursore, dipende dalla cella a cui è ancorato il pulsante.
n.b.: è indifferente dal foglio e dalla posizione del cursore, dipende dalla cella a cui è ancorato il pulsante.
Codice: Seleziona tutto
Sub incrementa(oEvent)
Dim oControlModel
Dim oParent
Dim oCell
'Print oEvent.Source.Model.getName()
oControlModel = oEvent.Source.Model
oParent = oControlModel.getParent()
Do While NOT oParent.supportsService("com.sun.star.sheet.SpreadsheetDocument")
oParent = oParent.getParent()
Loop
oCell = FindCellWithControl(oParent.getCurrentController().getActiveSheet().getDrawPage(), oControlModel)
If NOT IsEmpty(oCell) Then
oSheet = ThisComponent.Sheets(oCell.getCellAddress.Sheet)
oCell = oSheet.getCellrangeByName(oCell.AbsoluteName)
oCell.value = oCell.value + 1
'Print "Control is in cell " & oCell.AbsoluteName
Else
Pritn "Unable to find cell with control"
ENd If
End Sub
Function FindCellWithControl(oDrawPage, oControl)
Dim oShape
Dim oAnchor
oShape = FindShapeForControl(oDrawPage, oControl)
If Not IsEmpty(oShape) Then
If oShape.getAnchor().supportsService("com.sun.star.sheet.SheetCell") Then
FindCellWithControl = oShape.getAnchor()
End If
End If
End Function
Function FindShapeForControl(oDrawPage, oControl)
Dim i
Dim oShape
For i = 0 To oDrawPage.getCount()
oShape = oDrawPage.getByIndex(i)
If oShape.supportsService("com.sun.star.drawing.ControlShape") Then
If EqualUNOObjects(oControl, oShape.Control) Then
FindShapeForControl = oShape
Exit Function
End If
End If
Next
End Function
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Re: macro basic bottone incremento
Il codice che avete postato non mi funziona, mentre quello che ho trovato qui http://user.services.openoffice.org/en/ ... 45&t=17425 funziona e mi sembra anche più semplice da usare e customizzare (per esempio per un decremento). Grazie comunque a tutti!
OpenOffice.org 3.1 Windows XP e Ubuntu
- xergio
- Messaggi: 315
- Iscritto il: lunedì 15 marzo 2010, 21:54
- Località: Arzignano (Vicenza)
- Contatta:
Re: macro basic bottone incremento [RISOLTO]
Allego il file con la macro funzionante.
C'è comunque una bella differenza tra incrementare la cella attiva (che vuol dire cliccare sulla cella e quindi cliccare sul pulsante) e incrementare la cella su cui è ancorato il pulsante (che vuol dire cliccare sul pulsante e basta), che mi pareva fosse la tua richiesta.Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
Re: macro basic bottone incremento [RISOLTO]
La macro postata da Xergio funziona benissimo.
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
-
OpenOffice 3.3 su Windows XP
-
OpenOffice 3.3 su Windows XP
Re: macro basic bottone incremento
FncZ4pp4 ha scritto:Ho capito male, pensavo che la cella è sempre la stessa. La slider è una barra di scorrimento che si può legare ad una cella per aumentare o diminuire il suo valore numerico, la puoi orientale anche in verticale. vedi immagine sotto.Marrlowe ha scritto:slider??? come posso usare la stessa macro per 100 bottoni se quella macro incrementa il valore della cella I6 nel Foglio1 quando io vorrei incrementare il valore di 100 celle diverse???
Comunque se proprio vuoi usare i pulsanti e le macro, sono in grado di fare tutto ciò con 1 solo pulsante semplicemente selezionando la cella interessata e aumentargli il valore numerico. Se sei interessato fammi sapere.
A me interesserebbe un lavoro come questo!
openoffice 4.0.1 windows 7
- xergio
- Messaggi: 315
- Iscritto il: lunedì 15 marzo 2010, 21:54
- Località: Arzignano (Vicenza)
- Contatta:
Re: [Risolto] macro basic bottone incremento
Ciao XLUPOGRIGIOX,
per mettere un valore diverso nella cella dove si clicca il pulsante, basta modificare la macro dove c'è:
cambiando il valore assegnato a oCell.value
per mettere un valore diverso nella cella dove si clicca il pulsante, basta modificare la macro dove c'è:
Codice: Seleziona tutto
oCell.value = oCell.value + 1
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto.
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
---
Sergio Corato
LibO 6.x su Ubuntu 18.04 / OOo 4.x su Windows XP/10 (VirtualBox)
https://efatto.it
-
- Messaggi: 142
- Iscritto il: domenica 10 maggio 2015, 18:17
- Località: Busto Arsizio (VA)
Re: [Risolto] macro basic bottone incremento
Ciao xsergio,e grazie per la risposta.
Quindi volendo mettere incrementare con il valore di una cella,potrebbe essere
Non so se la sintassi sia giusta...
Saluti
Quindi volendo mettere incrementare con il valore di una cella,potrebbe essere
Codice: Seleziona tutto
oCell.value = cCell.value + (G6)
Saluti
OpenOffice 4.1.1 su windows seven
Re: macro basic bottone incremento
xergio ha scritto:Ciao XLUPOGRIGIOX, ….
Non si capisce come vi collegate ai messaggi precedenti ….XLUPOGRIGIOX ha scritto:Ciao xsergio,e grazie per la risposta. ….
charlie
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.6.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: [Risolto] macro basic bottone incremento
Rispondo nonostante la giusta bacchettata di charlie
oCell.value = cCell.value +(G6)
Sintassi Sbagliata
Sintassi corretta
oCell.value = cCell.value +
Sintassi Sbagliata
Sintassi corretta
Codice: Seleziona tutto
oCell2=ThisComponent.Sheets.getByName("NOMEFOGLIO").getCellRangeByName("Indirizzocella es: A1")
oCell.value = cCell.value + oCell2.value
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
-
- Messaggi: 142
- Iscritto il: domenica 10 maggio 2015, 18:17
- Località: Busto Arsizio (VA)
Re: macro basic bottone incremento
Scusa charlie,hai ragione!!!
Avevo chiesti a xsergio con un messaggio,per non continuare una discussione già risolta,come modificare la macro in modo che invece di incrementare di tot valore una cella,si incrementi una cella con il valore di un altra.
Chiedo ancora scusa a charlie e grazie a unlucky83 per gli aiuti utilissimi che mi sta dando
Avevo chiesti a xsergio con un messaggio,per non continuare una discussione già risolta,come modificare la macro in modo che invece di incrementare di tot valore una cella,si incrementi una cella con il valore di un altra.
Chiedo ancora scusa a charlie e grazie a unlucky83 per gli aiuti utilissimi che mi sta dando
OpenOffice 4.1.1 su windows seven