Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

aiuto x cambiare Cambiare colore carattere mediante menu a tendina!

Ultimo Aggiornamento: 12/12/2021 18:58
Post: 79
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
03/12/2021 18:57

Ciao a tutti ! ringrazio vivamente per tutti gli aiuti ricevuti , e avrei la neccessita' di risolvere un piccolo problema:
allego solo una parte del file mio excel per semplificare.
In pratica in ax19 tramite menu a tendina posso scegliere se "mostra imp" oppure "nascondi imp", l'intento è quello che se seleziono "mostra imp" le celle k18:r19 devono rimanere testo nero come ora , se invece seleziono "nascondi Imp" devono assumere il colore dello sfondo della cella Azzurro cosi' da scomparire.
Ovviamente qui ho incollato una sola voce di capitolato, ovviamente puo' essere anche popolato di altre righe e l'iserimento di altre voci di capitolato.
se qualcuno che potesse aiutarmi ...
grazie
Post: 6.614
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
03/12/2021 19:12

Ciao credo che la formattazione condizionale possa bastare

ecco il file, Ciao By Sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 79
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
03/12/2021 19:21

Ciao Salvatore grazie!!
anche io avevo provato con quella soluzione, ma come vedrai nel file che ti riallego se inserisco piu' voci, con quel tipo di formattazione condizionale mi rimane collegato anche per la seconda voce ax19, mentre per la voce 2 deve essere attiva ax35 e cosi' via se inserisco altre voci...
Post: 964
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
04/12/2021 08:20

Salve a tutti
Nella FC relativa alla cella K34 non devi mettere la stessa formula inserita in K19 ma devi fare riferimento alla nuova cella, cioè

=$AX$34="Nascondi imp"

Il tutto se ho capito bene la tua esigenza.
Ciao,
Mario
Post: 80
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
04/12/2021 10:20

Ciao Mario .. intanto grazie mille!!
,per capirci, io dovrei copiare e incollare tutta una serie di voci in base alle esigenze, e mi serve una alternativa per non inserire tutte le volte la formula manualmente ma che sia dinamica, o tramite vba.!
Grazie.
[Modificato da fabrizio.ExcelForum 04/12/2021 10:20]
Post: 6.616
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
04/12/2021 11:17

Ciao, non avevo capito che ti serviva su più intervalli, a questo punto meglio ricorrere al VBA, eccoti la macro, la devi copiare nel modulo del foglio interessato.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d

If Not Intersect(Target, [ax:ax]) Is Nothing Then
  r = Target.Row: c = Target.Column: d = Target
  If Target = "" Then Exit Sub
  If Target = "Mostra imp" Then
    Range(Cells(r - 1, 11), Cells(r, 18)).Font.Color = RGB(0, 0, 0)
  Else
    Range(Cells(r - 1, 11), Cells(r, 18)).Font.Color = RGB(217, 225, 242)
  End If
End If
End Sub


ogni volta che modifichi la voce del menu a tendina avviene la variazione.

Ciao By Sal (8-D

[Modificato da by sal 04/12/2021 11:17]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 81
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
04/12/2021 11:38

Funziona perfettamente!! GRAZIE Salvatore... è la soluzione che fa al caso!!
👍
Post: 82
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
10/12/2021 19:49

Ciao Salvatore noto che avviando delle macro che ho nel foglio di lavoro le quali mi copiano delle righe di un altro foglio di lavoro e incollano nel foglio di lavoro ,mi appare errore run-time13, "tipo non corrispondente e in visual-basic mi evidenzia


Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d

If Not Intersect(Target, [ax:ax]) Is Nothing Then
r = Target.Row: c = Target.Column: d = Target
If Target = "" Then Exit Sub
If Target = "Mostra imp" Then
Range(Cells(r - 1, 11), Cells(r, 18)).Font.Color = RGB(0, 0, 0)
Else
Range(Cells(r - 1, 11), Cells(r, 18)).Font.Color = RGB(217, 225, 242)
End If
End If
End Sub
Secondo te che cosa da questo tipo di errore? io ho cercato ma purtroppo non ho risolto niente!!
grazie😃
Post: 6.622
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
11/12/2021 08:29

Ciao Fabrizio, il problema può essere, quando vengono selezionate o copiate più celle, il "Target" va in confusione.

a questo punto sostituisci

If Target = "" Then Exit Sub

con

If d = "" Then Exit Sub

se nemmeno funziona, inserisci appena sotto, ed appena Prima

If Not Intersect(Target, [ax:ax]) Is Nothing Then
Application.Enableevents = False -----------------> da inserire
.
.
Application.EnableEvents = True ------------------> da inserire
End Sub

vedi che l'editor del sito tenta di correggere gli errori di scrittura mettendo la "o" al posto della "e" quindi False è con la "e" finale

Ciao By Sal (8-D
[Modificato da by sal 11/12/2021 08:33]
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 83
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
11/12/2021 14:24

Grazie Salvatore , ho provato con il cosice sotto , ma purtroppo mi persiste lo stesso errore quando tento di copiare e incollare delle righe.
Avevo provato anche io ad aggiungere " Application.EnableEvents = False .....Application.EnableEvents = True" ma senza successo.


Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d

If Not Intersect(Target, [ax:ax]) Is Nothing Then
Application.EnableEvents = False


r = Target.Row: c = Target.Column: d = Target
If d = "" Then Exit Sub
If d = "Mostra imp" Then


Range(Cells(r - 1, 11), Cells(r, 18)).Font.Color = RGB(0, 0, 0)

Else
Range(Cells(r - 1, 11), Cells(r, 18)).Font.Color = RGB(218, 238, 243)



End If
End If
Application.EnableEvents = True
End Sub
Post: 6.623
Registrato il: 14/11/2004
Utente Master
Office 2019
OFFLINE
12/12/2021 07:44

mandami il file e vediamo se lo fa anche da me dicendomi cosa copiare e dove inserirlo.

Ciao By sal (8-D
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
Post: 84
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
12/12/2021 16:19

Ciao Salvatore grazie ti allego parte del file .
Ho ricopiato solo una sub per farti vedere il tipo di errore.
Se ti posizioni nel foglio "sal" sulla cella per esempio c17.
Poi premi sul "pulsante 2 " che ho inserito in riferimento cella "j3" , la macro mi dovrebbe copiare la riga.
Pero' mi va in crash il codice in questione e mi continua ad evidenziare " If d = "" Then Exit Sub"
grazie Mille 👍
Post: 965
Registrato il: 24/06/2015
Città: CATANIA
Età: 80
Utente Senior
Excel2019
OFFLINE
12/12/2021 17:46

Ciao a tutti

Innanzi tutto un caro saluto a Salvatore.

Non ho seguito più dopo il primo intervento e, pertanto, potrei anche sbagliare e mi scuso in anticipo.

Non credo che il problema sia nella macro indicata bensì nella macro Sub Macro75bis() assegnata al pulsante 2.
Nella suddetta macro ho aggiunto all'inizio e alla fine Application.EnableEvents = False/True

L'altra macro ( quella relativa al WorkSkeet_Change del Foglio("sal")) ha alcune imperfezioni
1°) la dichiarazione delle variabili è meglio sia esplicita altrimenti si occupa inutilmente un sacco di memoria; la Dim r, c, d pone tutte e tre le variabili come Variant mentre è più corretto dichiarare la r e la c come Long (visto che si riferisco a riga e colonna);
2°) la variabile d è inutile; Target va bene (ricordarsi che Target è un Range);
3°) salvo errori (e qui posso sbagliarmi perchè non so se ci sono altre macro che potrebbe ero andare in conflitto) le righe Application.EnableEvents = False/True possono eliminarsi.

Riallego il file con le variazioni di cui sopra.

Ciao,
Mario
Post: 85
Registrato il: 04/03/2017
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
12/12/2021 18:58

Ciao Marius Grazie per la tua collaborazione, ora funziona tutto perfettamente! grazie per l'aiuto!.
Un caro saluto e buon Natale a tutti!
ciao👍🧐
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 05:04. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com