[Risolto] Macro: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
[Risolto] Macro: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Salve a tutti, amici del Forum.
Ho un nuovo problemino da risolvere: mi servirebbe una Macro, da attivare tramite il pulsante “Sorteggia” (presente nel Foglio “GIOCATA”), che andando ad operare nel Foglio “SORTEGGIO” andasse ad inserire nella Colonna D7:D30 3 degli 8 Numeri (sorteggiandoli a caso) che sono presenti nella colonna C7:C30.
Spero di essere stato sufficientemente chiaro nell'esplicitare le mie necessita', tuttavia, onde evitare eventuali disguidi e fraintendimenti allego alla presente anche il File in oggetto.
Un cordiale saluto.
Arch. A. Borghini
Ho un nuovo problemino da risolvere: mi servirebbe una Macro, da attivare tramite il pulsante “Sorteggia” (presente nel Foglio “GIOCATA”), che andando ad operare nel Foglio “SORTEGGIO” andasse ad inserire nella Colonna D7:D30 3 degli 8 Numeri (sorteggiandoli a caso) che sono presenti nella colonna C7:C30.
Spero di essere stato sufficientemente chiaro nell'esplicitare le mie necessita', tuttavia, onde evitare eventuali disguidi e fraintendimenti allego alla presente anche il File in oggetto.
Un cordiale saluto.
Arch. A. Borghini
- Allegati
-
- GIOCATA.ods
- (30.02 KiB) Scaricato 41 volte
Ultima modifica di arckborg il sabato 21 gennaio 2023, 11:50, modificato 2 volte in totale.
- La versione di Libre Office che attualmente uso è la 7.3.5.2 (per Mac)
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Nel forum ci si rivolge a tutti i potenziali aiutanti.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Hai perfettamente ragione. Chiedo umilmente scusa.
- La versione di Libre Office che attualmente uso è la 7.3.5.2 (per Mac)
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Puoi sempre correggere il tuo primo post
-------------------
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
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
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Codice: Seleziona tutto
Sub Sorteggio
Dim Doc As Object
Dim Sh As Object
If MsgBox("Sei sicuro di voler sorteggiare i nuovi numeri???", 64+4, "SORTEGGIO") = 7 Then EXIT SUB
Doc = ThisComponent
Sh = Doc.Sheets.GetByName("SORTEGGIO")
Range = Sh.getCellRangeByName("C7:C30")
Sh.getCellRangeByName("D7:D30").clearContents(1)
Dati = Range.GetDataArray
X = Ubound(Dati)
Dim Dic As Object
Set Dic = CreateObject("Scripting.Dictionary")
Do While A < 3
Numero = Dati(Int((X * Rnd) ))(0)
If Numero <> 0 Then
If Dic.Exists(Numero) = False Then
Dic.Add Key:= Numero , Item:= Numero
A = A + 1
oDescriptor = Range.createSearchDescriptor()
With oDescriptor
.SearchString = Numero
.SearchWords = True
.SearchType = 1 ' cerca nei valori
.SearchCaseSensitive = False
End With
oFound = Range.findFirst(oDescriptor)
If Not IsNull(oFound) Then
r=oFound.getCellAddress.Row
Sh.getCellByPosition(3, r).Value = Numero
End If
End If
End If
Loop
End Sub
Ultima modifica di Gaetanopr il sabato 21 gennaio 2023, 10:09, modificato 1 volta in totale.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Salve Gaetano, grazie infinite per il tuo cortese aiuto, tuttavia c'e' qualcosa nella routine che non funziona. Forse e' colpa mia perche' nel frattempo ho leggermente modificato ed aggiunto alcune cose. Tuttavia non penso che sia il nome del foglio su cui deve operare la Macro dato che ho provveduto anche a cambiare il suo nome all'interno della stessa.
Per maggiore sicurezza, comunque, in allegato alla presente ti invio sia il nuovo file modificato che lo screenshot relativo al messaggio di errore in questione.
Di nuovo grazie ed un cordiale saluto.
Arch. A. Borghini
Per maggiore sicurezza, comunque, in allegato alla presente ti invio sia il nuovo file modificato che lo screenshot relativo al messaggio di errore in questione.
Di nuovo grazie ed un cordiale saluto.
Arch. A. Borghini
- Allegati
-
- Giocata.ods
- (37.46 KiB) Scaricato 36 volte
-
- Screenshot.jpg (119.44 KiB) Visto 828 volte
- La versione di Libre Office che attualmente uso è la 7.3.5.2 (per Mac)
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Dall'immagine già si vede che qualcosa non va, fai coesistere macro scritte in VBA per Excel e in basic per openoffice, devi togliere 'Option VBASupport 1, anzi togli tutto il VBA, nel tuo precedente post avevo già convertito una macro che cancellava il contenuto delle celle, quindi dovresti sapere come fare.
Pure in Basic si usa il metodo ClearContents, in questa macro c'è una riga che cancella i numeri delle celle "D7:D30"
Saluti
Pure in Basic si usa il metodo ClearContents, in questa macro c'è una riga che cancella i numeri delle celle "D7:D30"
Codice: Seleziona tutto
Sh.getCellRangeByName("D7:D30").clearContents(1)
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Caro Gaetano, anche dopo aver seguito il tuo consiglio ed aver eliminato dalla MACRO tutta la parte in VBA, anche questa volta mi da errore (vedi file e screenshot allegati). A questo punto non so piu' a che "Santo votarmi"; non mi resta che "affidarmi alle tue prodigiose mani".
Un cordiale saluto.
Arch. A. Borghini
Un cordiale saluto.
Arch. A. Borghini
- Allegati
-
- Screenshot_02.jpg (116.81 KiB) Visto 785 volte
-
- Giocata.ods
- (39.05 KiB) Scaricato 33 volte
- La versione di Libre Office che attualmente uso è la 7.3.5.2 (per Mac)
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
Re: MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Non avevo letto la tua firma, il tuo SO non riconosce gli Oggetti Dictionary, cambiamo sistema.
Codice: Seleziona tutto
Sub Sorteggio
Dim Doc As Object
Dim Sh As Object
If MsgBox("Sei sicuro di voler sorteggiare i nuovi numeri ???", 64+4, "SORTEGGIO") = 7 Then EXIT SUB
Doc = ThisComponent
Sh = Doc.Sheets.GetByName("SORTEGGIO_1")
Range = Sh.getCellRangeByName("C7:C30")
Sh.getCellRangeByName("D7:D30").clearContents(1)
Dati = Range.GetDataArray
X = Ubound(Dati)
Do While A < 3
Numero = Dati(Int((X * Rnd) ))(0)
If Numero <> 0 Then
oDescriptor = Range.createSearchDescriptor()
With oDescriptor
.SearchString = Numero
.SearchWords = True
.SearchType = 1 ' cerca nei valori
.SearchCaseSensitive = False
End With
oFound = Range.findFirst(oDescriptor)
If Not IsNull(oFound) Then
r=oFound.getCellAddress.Row
If Sh.getCellByPosition(3, r).String = "" Then
Sh.getCellByPosition(3, r).Value = Numero
A = A + 1
End If
End if
End If
Loop
End Sub
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: [RISOLTO] MACRO: sorteggio casuale di 3 degli 8 numeri presenti in una colonna.
Perfetto, ora la Macro funziona perfettamente.
Grazie infinite Gaetano.
Un cordiale saluto.
Arch. A. Borghini
Grazie infinite Gaetano.
Un cordiale saluto.
Arch. A. Borghini
- La versione di Libre Office che attualmente uso è la 7.3.5.2 (per Mac)
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7
- Sistema operativo: MAC OS High Sierra v. 10.13.6
- installato su di un MacBook Pro (15" 2011) con processore da 2,2 GHz INTEL Core i7