Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Ri-Menu A Tendina Convalida dati.

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: Ri-Menu A Tendina Convalida dati.

Postdi Flash30005 » 18/01/10 12:06

Prova a fare così
inserisci nel codice Foglio dove hai l'elenco dei nomi (non nel modulo) questo codice
Codice: Seleziona tutto
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "A2:A2"
If Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then Exit Sub
    Application.EnableEvents = False
    If Selection.Value = "Automatico" Then
        Selection.Value = "Manuale"
    Else
    Selection.Value = "Automatico"
    End If
        ActiveCell.Offset(0, 1).Select
Application.EnableEvents = True

End Sub


Poi all'inizio della macro principale (che dovrebbe essere nel modulo) metterai questo codice
Codice: Seleziona tutto
If [A2] = "Manuale" then Exit Sub


Ora clicca sulla cella A2... dovrebbe funzionare

Fai sapere
Ciao
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-

Sponsor
 

Re: Ri-Menu A Tendina Convalida dati.

Postdi pig1166 » 18/01/10 12:48

Questo è quello che ho fatto, ma non gira mi da errore:

If [A3] = "Manuale" Then Exit Sub
Dim TAdr As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "F4:AJ348"
On Error Resume Next
If Target.Column <> TAdr Then Cells(1, TAdr).ColumnWidth = 5 '<<< Larghezza STRETTA
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Target.ColumnWidth = 25 '<<< Larghezza LARGA
TAdr = Target.Column
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "F4:AJ348"
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Legenda Assenze").Range("A1:B34"), 2, 0)
Application.EnableEvents = True
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "A3:A3"
If Application.Intersect(ActiveCell, Range(CheckArea)) Is Nothing Then Exit Sub
Application.EnableEvents = False
If Selection.Value = "Automatico" Then
Selection.Value = "Manuale"
Else
Selection.Value = "Automatico"
End If
ActiveCell.Offset(0, 1).Select
Application.EnableEvents = True

End Sub
pig1166
Utente Junior
 
Post: 18
Iscritto il: 11/01/10 21:03

Re: Ri-Menu A Tendina Convalida dati.

Postdi Flash30005 » 18/01/10 13:07

Dà errore perché hai due codici uguali "Private Sub Worksheet_SelectionChange(ByVal Target As Range)
" nel foglio, in questo caso vanno integrati.

sostituisci tutto con questa
Codice: Seleziona tutto
Dim TAdr As Integer
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CheckArea = "F4:AJ348,A3:A3"
On Error Resume Next
If Target.Column <> TAdr Then Cells(1, TAdr).ColumnWidth = 5 '<<< Larghezza STRETTA
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Address = "$A$3" Then
    Application.EnableEvents = False
    If Selection.Value = "Automatico" Then
        Selection.Value = "Manuale"
    Else
        Selection.Value = "Automatico"
    End If
    ActiveCell.Offset(0, 1).Select
    Application.EnableEvents = True
Else
If [A3] = "Manuale" Then Exit Sub
    If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
        Target.ColumnWidth = 25 '<<< Larghezza LARGA
        TAdr = Target.Column
    End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
CheckArea = "F4:AJ348"
If [A3] = "Manuale" Then Exit Sub
If Application.Intersect(Target, Range(CheckArea)) Is Nothing Then Exit Sub
If Target.Rows.Count + Target.Columns.Count > 2 Then Exit Sub
Application.EnableEvents = False
On Error Resume Next
Target.Value = Application.WorksheetFunction.VLookup(Target.Value, Sheets("Legenda Assenze").Range("A1:B34"), 2, 0)
Application.EnableEvents = True
End Sub


Fai sapere
Ciao
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: Ri-Menu A Tendina Convalida dati.

Postdi pig1166 » 18/01/10 13:58

Si in effetti così funziona, però se provi a scrivere "F" in una cella da F4:AJ348, manualmente, senza selezionarla dalla convalida da errore "valore immesso non valido".
Sicuramente sarà perchè tiene conto della convalida ma se ricordi in effetti la convalida avviene su due colonne. Cioè legge i dati della colonna A di un foglio e scrive i dati della colonna B dello stesso foglio.
pig1166
Utente Junior
 
Post: 18
Iscritto il: 11/01/10 21:03

Re: Ri-Menu A Tendina Convalida dati.

Postdi Anthony47 » 18/01/10 14:11

Però vorrei chiedere [. . ] se fosse possibile, magari con un bottocino posto sulla intestazione della colonna del nominativo, fermare temporaneamente la macro per poter effettuare modifiche a mano
A parte che se non disabiliti la convalida non ti e' consentito di introdurre un valore non in tabella, dissento sull' approccio: se nell' anagrafica ti manca un valore vai in anagrafica e la aggiorni, non togli il meccanismo di controllo....

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13892
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Ri-Menu A Tendina Convalida dati.

Postdi pig1166 » 18/01/10 14:33

In effetti è molto, ma molto, pericoloso togliere l'automatismo, almeno per quello che avevo intenzione di fare perchè spesso chi si occupa di popolare il database, non so come ma davanti ad una cuasale inseriva uno spazio bianco e quindi voi sapete bene cosa significa.
Ecco perchè la "costrizione" di selezionare il dato dalla convalida mi va più che bene.
però dovendo inserire più x magari su più righe e/o colonne contemporaneamente, selezionalndoli dal menu della convalida richiede molto più tempo.
Tutto quì.
Oddio mi so capito ??????
pig1166
Utente Junior
 
Post: 18
Iscritto il: 11/01/10 21:03

Precedente

Torna a Applicazioni Office Windows


Topic correlati a "Ri-Menu A Tendina Convalida dati.":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti