LORETTA B. forum
Linguaggi di programmazione => Problematiche Excel => Topic aperto da: Tullio - Ottobre 30, 2013, 10:21:40
-
Ciao micdas, :resistere:
questa volta il problema è il seguente:
sul foglio "fattura" ho 5 pulsanti "Nuovo","Calcola","Calcola da netto","Archivia"e"Salva",
il pulsante Nuovo dovrebbe essere sempre visibile per fare in modo che cliccando carichi il formato (RANGE("B2:H65"))
del progetto, mentre gli altri quattro dovrebbero essere visibili soltanto dopo che quest'ultimo è stato caricato, potrei intercettare il click sul pulsante Nuovo ma mi sembrerebbe più giusto fare in modo che controlli sempre la casella B2 e se il colore è grigio (formato non caricato) i pulsanti siano invisibili mentre se è bianco (formato caricato) siano visibili.
Che cosa ne dici ?
Se sì, come dovrei agire?
Grazie. Tullio
-
Ciao micdas,
questo è quello che ho partorito e inserito nel codice del Worksheet Fattura
ma funziona soltanto all'apertura, se lo inserisco nel Change o nel SelctionChange non mi scarica più il formato,
mi sai dare una delle tue illuminazioni?
Grazie in anticipo.
Tullio
Private Sub Worksheet_Activate()
Dim shp As Shape
Dim nameshp As String
Range("B2").Select
With Selection.Interior
If .TintAndShade = -0.249977111117893 Then
For Each shp In ActiveSheet.Shapes
nameshp = shp.Name
If nameshp = "Button 30020" Or nameshp = "Button 30021" Or nameshp = "Button 30022" Or nameshp = "Button 30023" Then
shp.Visible = msoFalse
End If
Next
Else
For Each shp In ActiveSheet.Shapes
nameshp = shp.Name
If nameshp = "Button 30020" Or nameshp = "Button 30021" Or nameshp = "Button 30022" Or nameshp = "Button 30023" Then
shp.Visible = msoTrue
End If
Next
End If
End With
End Sub
-
:Cartelli2: Toc toc.....c'è nessuno ?
-
ciao Tullio,
questi giorni sono particolarmente impegnato. Questo è il motivo della mia apparente assenza.
Ma venendo al problema, io penso che per ottenere i cambiamenti di stato dei pulsanti devi agire nella macro a cui i pulsanti sono collegati.
La tua Private Sub Worksheet_Activate() va bene ma funziona solo quando attivi il foglio di calcolo.
Se vuoi il cambiamento dello stato, quindi, devi includere il codice nelle macro abbinate a questi pulsanti.
Poi una osservazione da uno che cerca di programmare a basso livello:
Perchè per stabilire il colore della cella usi TintAndShade? Io userei, ed ho sempre usato il ColorIndex.
Il codice del colore lo ottengo tramite il resgistratore di macro e dopo lo applico o copio nel codice che mi serve.
Io non mi sono mai fidato del TintAndShade = -0.249977111117893 che poi è una proprietà poco usata ed anche poco documentata, oltre che molto critica.
:ciao:
-
Come al solito hai ragione micdas,
ho risolto inserendo la sub che azzera il progetto in ThisWorkbook_BeforeClose e di conseguanza all'apertura mi ritrovo con quanto salvato alla chiusura.
Per il TintandShade mi ero accorto anch'io che qualcosa era strano ed ho provveduto al cambiamento proprio con ColorIndex.
Grazie e scusa l'insistenza.
Tullio