Discussione: Corso VBA
Visualizza messaggio singolo
Vecchio 08-09-2014, 01.19.24   #55
Alexsandra
Senior Member
WT Expert
 
L'avatar di Alexsandra
 
Registrato: 19-05-2007
Loc.: Verona
Messaggi: 1.302
Alexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tuttiAlexsandra è conosciuto da tutti
#2

Macro e Procedure varie riferite alle Colonne


=> Nascondere una colonna
Nota: Si deve inserire nell’inputBox il valore della colonna in lettere. Es. A – B etc.
Codice:
Sub nascondiC()
Dim foglio As Worksheet
col = InputBox("Quale colonna vuoi nascondere ?")
col2 = col & ":" & col
Columns(col2).Select
Selection.EntireColumn.Hidden = True
End Sub
=> Conoscere la lettera della colonna dal numero
Nota: Viene riportata la lettera della colonna in base al valore numerico della variabile lettera
Codice:
Sub Test()
MsgBox letteraC(3)
End Sub

Function letteraC(numeroC)
Dim S As String
If numeroC < 1 Or numeroC > 256 Then Exit Function
S = Cells(1, numeroC).Address(1, 0)
letteraC = Left(S, InStr(1, S, "$") - 1)
End Function

’oppure

Function letteraC(Numero) As String
letteraC = Split(Cells(1, Numero).Address, "$")(1)
End Function
=> Conoscere la lettera della colonna della cella attiva
Nota: Funzione per conoscere la lettera della colonna della cella attiva
Codice:
Function letteraCol(cell As Range)
letteraCol = Left$(cell.Address(0, 0), (cell.Column < 27) + 2)
End Function

Sub test()
MsgBox letteraCol(ActiveCell)
End Sub
=> Proteggere l’accesso alle colonne in base all’utente che accede al file
Nota: Permette di consentire di accedere a determinate colonne in base al nome utente di rete. Il codice è da copiare in ThisWorkbook. Autore: Norman Jones
Codice:
Private Sub Workbook_Open()
Dim WS As Worksheet
Const PWORD As String = "pippo"

For Each WS In Me.Worksheets
With WS
.Unprotect Password:=PWORD
.Cells.Locked = False
If Environ("USERNAME") = "Alex" Then
.Range("D:D").Cells.Locked = True
ElseIf Environ("USERNAME") = "Gino" Then
.Range("A:C").Cells.Locked = True
Else
.Range("A:D").Cells.Locked = True
End If
WS.Protect Password:=PWORD, _
UserInterfaceOnly:=True
End With
Next
End Sub
___________________________________

- Il primo fondamento della sicurezza non e' la tecnologia, ma l'attitudine mentale -
Alexsandra non è collegato   Rispondi citando