Ciao a tutti.
Premetto che nella casella degli strumenti del VBA ho aggiunto il "controllo calendario 11.0".
Come posso, da una TextBox, aprirlo per inserire una data?
Grazie.
Moderatori: Anthony47, Flash30005
Private Sub TextBox1_GotFocus()
Calendar1.Visible = True
End Sub
Private Sub Calendar1_Click()
TextBox1.Value = Calendar1.Value
Calendar1.Visible = False
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Me.Range("F18:F50")) Is Nothing Then
Me.Range("F18").Value = ""
UserForm2.Show
Cancel = True
End If
End Sub
L' istruzione Me.Range("F18").Value = "" e' palesemente superflua
idem come sopra...E, curiosita', a che serve quel "Me"?
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
Unload UserForm2
Range("A1").Select
End Sub
Private Sub CommandButton1_Click()
Unload UserForm2
End Sub
Private Sub UserForm_Initialize()
Calendar1.Value = Now
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Me.Range("F18:F50")) Is Nothing Then
Me.Range("F18").Value = ""
UserForm2.Show
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Dim Wb as Workbook
Dim Ws as Worksheet
Set Wb=ThisWorkbook
Set Ws=Wb.ActiveSheet
With Ws
.Cells.Clear
End With
ThisWorkbook.ActiveSheet.Cells.Clear
Private Sub UserForm_Initialize()
If IsDate(Selection.Value) Then
Calendario.Value = DateValue(Selection.Value)
Else
Calendario.Value = Date
End If
End Sub
'Me.Range("F18").Value = ""
ThisWorkbook.ActiveSheet.Cells.Clear
Private Sub UserForm_Initialize()
If IsDate(Selection.Value) Then
Calendario.Value = DateValue(Selection.Value)
Else
Calendario.Value = Date
End If
End Sub
'Range("A1").Select
UserForm2.Show
Questa parte voleva essere solo un un esempio di inutile complicazione e disottimizzazione del codice che vedo suggerire in giro da sacerdoti del vba che hanno l' interesse a mantenere un' aurea di inaccessibilita' al loro sapere; come e' in piccolo l' uso di "Me" in posizioni in cui complica la comprensione del codice senza fortunatamente creare intralcio.Anthony ha scritto:In quanto al Me secondo "me" tu frequenti gente che gli piace scrivere, ad esempio
- Codice: Seleziona tutto
Dim Wb as Workbook
Dim Ws as Worksheet
Set Wb=ThisWorkbook
Set Ws=Wb.ActiveSheet
With Ws
.Cells.Clear
End With
invece di scrivere semplicemente
- Codice: Seleziona tutto
ThisWorkbook.ActiveSheet.Cells.Clear
Private Sub Calendar1_Click()
ActiveCell.Value = Calendar1.Value
Unload UserForm2
Range("A1").Select
End Sub
Private Sub CommandButton1_Click()
Unload UserForm2
End Sub
Private Sub UserForm2_Initialize()
If IsDate(Selection.Value) Then
Calendar1.Value = DateValue(Selection.Value)
Else
Calendar1.Value = Date
End If
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Me.Range("F18:F50")) Is Nothing Then
'Me.Range("F18").Value = ""
UserForm2.Show
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
End Sub
Cosi' se apri il calendario su una cella che contiene gia' una data il calendario parte con quella data.
Torna a Applicazioni Office Windows
[EXCEL] controllo corrispondenza tra valori con un vincolo Autore: sbs |
Forum: Applicazioni Office Windows Risposte: 9 |
Sincronizzazione Google Outlook calendario=no va!!!! Autore: mp420 |
Forum: Software Windows Risposte: 1 |
Browser non scarica più nessun file (controllo antivirus) Autore: G7golde |
Forum: Software Windows Risposte: 8 |
Visitano il forum: Nessuno e 2 ospiti