Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Spazio Range dichiarato se valore assoluto esegui

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi zanatta77 » 03/03/13 16:11

Perche ripete l' Application.Speech.Speak ???
Vorrei che dicesse una sola volta l'Application.Speech.Speak seguito da tutte le Cells con valore maggiore e nomi.
Esempio; Se nel Foglio1 in Cells "A111" è presente valore 1023 e nel Foglio2 in Cells "G111" è pesente valore 1023, dovrebbe dire una sola volta Application.Speech.Speak " Non è solo bravura,analisi,o fortuna, ma alla fine " seguito dalla Cells "15" che contiene il nome e Cells"111" che contiene il valore di Foglio1 proseguendo con Cells "15" che contiene il nome e Cells"111" che contiene il valore di Foglio2.
In questo momento invece ripete sempre l' Application.Speech.Speak per ogni Foglio che contiene il valore .
è possibile modificarlo grazie.
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 114
Iscritto il: 01/12/12 16:12

Sponsor
 

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi Flash30005 » 03/03/13 20:33

Senti permettimi di dirti che sei un po' caotico
perché se avevi 2 valori nello stesso foglio andava bene che ripetesse ora se si trovano su due fogli diversi non va più bene
Poi vuoi che venga letto per ogni foglio ma se ci sono più fogli deve parlare una volta sola
Considerando che il valore massimo è uno e uno solo cosa vuoi che si faccia? Perché sto quasi perdendo la pazienza :D
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi zanatta77 » 04/03/13 06:41

Effettivamente devo dire che caotico mi suona bene.... :)
No prima non ripeteva più di una sola volta questo punto
Codice: Seleziona tutto
If Tr = 1 Then Application.Speech.Speak " Non è solo bravura,analisi,o fortuna, ma alla fine " & Stringa

Ma se all'interno del Foglio trovava 6 valori uguali venivano pronunciati tutti assieme alla Cells "nomi", che sarebbe questo punto
Codice: Seleziona tutto
 Stringa = Stringa & " " & Sheets(F).Cells(14, CC).Value & " " & Sheets(F).Cells(15, CC).Value


Adesso se trova 4 valori uguali nel Foglio1 e Foglio2 per ogni valore trovato mi dice la parte dell'application cioè in totale avviene 8 volte la sintesi vocale. Diventa uno strazio sentirla in continuazione.
A me andava bene come gentilmente postato all'inizio che avviava la sintesi vocale una sola volta, pronunciando tutti i valori uguali Cells(14, CC) con i nomi Cells(15, CC).
Sempre se possibile farlo grazie :lol: ;)
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 114
Iscritto il: 01/12/12 16:12

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi Flash30005 » 04/03/13 11:08

Proviamo così
Codice: Seleziona tutto
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MMax = 0
For F = 1 To Worksheets.Count
    MyMax = Evaluate("=Max(" & Sheets(F).Name & "!A111:V111)")
    MyCount = Evaluate("=COUNTIF(" & Sheets(F).Name & "!A111:V111," & MyMax & ")")
    If MyMax > MMax Then
        MMax = MyMax
        Conta = MyCount
    End If
Next F
If Conta > 0 Then
    For F = 1 To Worksheets.Count
        Stringa = ""
        Tr = 0
        For CC = 1 To 24
            If Sheets(F).Cells(111, CC).Value = MMax Then
                If Tr = 0 then Stringa = Stringa & " " & Sheets(F).Cells(111, CC).Value & " " & Sheets(F).Cells(16, CC + 2).Value
                Tr = 1
            End If
        Next CC
        If Tr = 1 Then Application.Speech.Speak " Non è solo bravura,analisi,o fortuna, ma alla fine " & Stringa
    Next F
End If
End Sub


In questa maniera dovrebbe pronunciare la frase (se esiste) una sola volta per foglio
Spero che sia definitiva
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi zanatta77 » 04/03/13 17:21

Sicuramente sono io che mi spiego male. :cry: :cry:
Ma purtroppo non ci siamo.
Quello che vorrei che avenisse è ;
Deve dirlo una sola volta questo punto
Codice: Seleziona tutto
Then Application.Speech.Speak " Non è solo bravura,analisi,o fortuna, ma alla fine "
e non per ogni Foglio che presenta dei valori uguali.
Che sia un solo numero maggiore o più di uno in più Fogli, mi deve sempre avviare 1 volta sola questo punto
Codice: Seleziona tutto
Then Application.Speech.Speak " Non è solo bravura,analisi,o fortuna, ma alla fine "

Deve solo aggiungere questo punto
Codice: Seleziona tutto
Sheets(F).Cells(111, CC).Value & " " & Sheets(F).Cells(16, CC + 2).Value
per ogni Foglio che presenta un valore maggiore uguale, se ci sono ovviamente.
Esempio: se esce 234 come valore maggiore nel Foglio1 nel Foglio2 e Foglio3 deve avviare una sola volta Application.Speech.Speak seguito dal nome e valore del Foglio1, nome e valore del Foglio2, e nome e valore del Foglio3 cioè questo Cells(111, CC) e (16, CC + 2) di tutti e 3 i Fogli.
grazie
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 114
Iscritto il: 01/12/12 16:12

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi Flash30005 » 04/03/13 23:24

Codice: Seleziona tutto
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
MMax = 0
Conta = 0
Stringa = ""
For F = 1 To Worksheets.Count
    MyMax = Evaluate("=Max(" & Sheets(F).Name & "!A111:V111)")
    MyCount = Evaluate("=COUNTIF(" & Sheets(F).Name & "!A111:V111," & MyMax & ")")
    If MyMax > MMax Then
        MMax = MyMax
        Conta = MyCount
    End If
Next F
If Conta > 0 Then
    For F = 1 To Worksheets.Count
        For CC = 1 To 24
            If Sheets(F).Cells(111, CC).Value = MMax Then
                Stringa = Stringa & " " & Sheets(F).Cells(111, CC).Value & " " & Sheets(F).Cells(16, CC + 2).Value
            End If
        Next CC
    Next F
End If
If Conta > 0 Then Application.Speech.Speak " Non è solo bravura,analisi,o fortuna, ma alla fine " & Stringa
End Sub
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Spazio Range dichiarato se valore assoluto esegui

Postdi zanatta77 » 05/03/13 07:15

Grazie mille
Adesso direi che esegue esattamente quanto richiesto.
Windows 8
Office 2010
Avatar utente
zanatta77
Utente Senior
 
Post: 114
Iscritto il: 01/12/12 16:12

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Spazio Range dichiarato se valore assoluto esegui":


Chi c’è in linea

Visitano il forum: Nessuno e 9 ospiti