Te anexo las macros actualizadas para los 4 puntos
Dim colTbxs As Collection 'Collection Of Custom Textboxes
'
Private Sub CommandButton1_Click()
'Por.Dante Amor
If tb_centro = "" Then cad = "Centro. "
'If tb_nombre = "" Then cad = cad & "Nombre. "
If tb_nif = "" Then cad = cad & "Nif. "
If cad <> "" Then MsgBox "Faltan los datos: " & cad: Exit Sub
'
existe = False
hoja = UCase(tb_centro)
For Each h In Sheets
If h.Name = hoja Then
existe = True
Exit For
End If
Next
If existe = False Then
res = MsgBox("No existe la hoja con el centro: " & hoja & vbCr & vbCr & _
"Desea crear la hoja", vbQuestion + vbYesNo, "CREAR HOJA")
If res = vbYes Then
Set h1 = Sheets.Add(after:=Sheets(Sheets.Count))
h1.Name = hoja
Sheets(1).Rows(1).Copy h1.[A1]
Call PasarDatos(hoja)
Else
tb_centro.SetFocus
Exit Sub
End If
Else
Call PasarDatos(hoja)
End If
End Sub
'
Sub PasarDatos(hoja)
'Por.Dante Amor
u = Sheets(hoja).Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets(hoja).Cells(u, "A") = tb_centro
Sheets(hoja).Cells(u, "B") = tb_alta
Sheets(hoja).Cells(u, "C") = TextBox1
Sheets(hoja).Cells(u, "D") = tb_nombre
Sheets(hoja).Cells(u, "E") = tb_apellido1
Sheets(hoja).Cells(u, "F") = tb_apellido2
Sheets(hoja).Cells(u, "G") = tb_edad
Sheets(hoja).Cells(u, "H") = tb_nif
Sheets(hoja).Cells(u, "I") = tb_telefono
Sheets(hoja).Cells(u, "J") = tb_email
Sheets(hoja).Cells(u, "K") = tb_facebook
For Each ctrl In Me.Controls
If TypeName(ctrl) = "TextBox" Then ctrl.Value = ""
Next
MsgBox "Cliente Registrado"
End Sub
'Por.Dante Amor
Private Sub tb_telefono_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then KeyAscii = 0
End Sub
Private Sub tb_edad_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then KeyAscii = 0
End Sub
Private Sub UserForm_Activate()
tb_alta = Date
End Sub
'
Private Sub UserForm_Initialize()
Dim ctlLoop As MSForms.Control
Dim clsObject As Clase1
Set colTbxs = New Collection
For Each ctlLoop In Me.Controls
Select Case ctlLoop.Name
Case "tb_centro", "tb_nombre", "tb_apellido1", "tb_apellido2"
Set clsObject = New Clase1
Set clsObject.tbxCustom1 = ctlLoop
colTbxs.Add clsObject
End Select
Next ctlLoop
End Sub
Private Sub UserForm_Terminate()
Set colTbxs = Nothing
End Sub
Esto va en la Clase1
Public WithEvents tbxCustom1 As MSForms.TextBox 'Custom Textbox
Private Sub tbxCustom1_Change()
tbxCustom1.Text = UCase(tbxCustom1.Text)
End Sub
Private Sub Class_Terminate()
Set tbxCustom1 = Nothing
End Sub
' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )