Validation de données avec classeur partagé

Résolu/Fermé
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 21 sept. 2015 à 18:31
Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 - 22 sept. 2015 à 09:38
Bonjour,

Je vous expose mon problème très embêtant.

Je viens de créer un fichier excel comportant pas mal de macros et permettant de gagner un temps considérable.

Seulement voilà, ces macros comportent une ligne de code indiquant qu'en fonction du nombre de lignes de mon tableau, en face de chaque ligne, il y aura une validation de données dans la colonne O. Donc chaque fois que j'ajoute une ligne, la validation se fait pour avoir une liste déroulante dans la colonne O.

Problème : Si le fichier est partagé (et pas le choix, les utilisateurs sont nombreux), j'ai un message d'erreur car je ne peux pas créer de validation de données en mode partage.

Auriez-vous une solution à me proposer?

Merci d'avance.

Cordialement.
A voir également:

1 réponse

Kuartz Messages postés 850 Date d'inscription vendredi 13 février 2015 Statut Membre Dernière intervention 15 février 2019 61
22 sept. 2015 à 09:38
Solution trouvée.

Code :

Sub Validation()

With ActiveWorkbook      ' Je désactive le partage du fichier
    .UnprotectSharing
    .ExclusiveAccess
End With

If ActiveSheet.Name = "SOURCE" Then Exit Sub

If ActiveSheet.Cells.Find("*") Is Nothing Then Exit Sub

Dim DL As Long

DL = ActiveSheet.Cells(Application.Rows.Count, 1).End(xlUp).Row

For i = 1 To DL

With ActiveSheet.Range("O" & i).Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=SOURCE!$A$1:$A$3"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
End With

Next i

Application.DisplayAlerts = False
 ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
 Application.DisplayAlerts = False 'Je réactive le partage du fichier avec un enregistrement

End Sub