Si cellule A ET B vide alors (avec application username)

Bonjour à tous,

je cherche à réaliser quelque chose de simple en VBA mais je bute... sévèrement..

En résumé je cherche à empêcher/ne pas empêcher la fermeture du classeur en fonction du username :

- si cellule AB26 ET range("AL26:AL50") sont vide alors je bloque

- si cellule AB26 vide et range("AL26:AL50") pas vide, je débloque

- si cellule AB26 non vide et range("AL26:AL50") vide, je débloque

j'ai commencé ainsi :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
'""En fonction de ce que renvoie le Username, pour chaque personne
Select Case Application.UserName

'''"MANAGER CASE
Case "Moi" 'aka Manager test

        If IsEmpty(Sheets(1).Range("AL26:AL50")) Then
            If Not IsEmpty(Sheets(1).Range("AB26")) Then  'approval
            Cancel = False
            End If
        End If
        If Not IsEmpty(Sheets(1).Range("AL26:AL50")) Then 'rejection
            If IsEmpty(Sheets(1).Range("AB26")) Then
            Cancel = False
            End If
        End If
        If IsEmpty(Sheets(1).Range("AL26:AL50")) Then
            If IsEmpty(Sheets(1).Range("AB26")) Then
            MsgBox "Please click on approve or reject icon, thanks you"
            Cancel = True
            Exit Sub
            End If
        End If

End Select
End Sub

mais rien n'y fait, je ne parviens pas à avoir le résultat escompté. Ce qui bloque n'est pas vraiment l'utilisation de application.username mais bien mes conditions de bases..Le fichier est en copie.

D'avance merci pour l'aide apporté depuis longtemps, très longtemps pour moi :)

et BONNE FETE !!! A TOUS ! :D

11aa.xlsm (12.01 Ko)

Bonjour,

If IsEmpty(Sheets(1).Range("AL26:AL50")) Then

tu ne peux pas contrôler plusieurs cellules ainsi.
Il faut soit les contrôler une à une, soit compter celles remplies :
If Application.CountA(Range("AL26:AL50")) = 0 Then
ou <35 ?
eric

False salut!

cela semble fonctionner comme mentionnée par toi :

If Application.CountA(Range("AL26:AL50")) = 0 Then
If Not IsEmpty(Sheets(1).Range("AB26")) Then 'approval
Cancel = False
End If
End If
If Not Application.CountA(Range("AL26:AL50")) = 0 Then 'rejection
If IsEmpty(Sheets(1).Range("AB26")) Then
Cancel = False
End If
End If
If Application.CountA(Range("AL26:AL50")) = 0 Then
If IsEmpty(Sheets(1).Range("AB26")) Then
MsgBox "Please click on approve or reject icon, thanks you"
Cancel = True
Exit Sub
End If
End If

Merci encore beuaoucp !! :)

Rechercher des sujets similaires à "vide application username"