XL pour MAC liste déroulante à choix multiple compatible PC et Mac

Tibooo

XLDnaute Nouveau
Bonjour à toutes et tous,
Suivant les conseils de job75, je me permets donc de créer une nouvelle discussion pour une question qui porte sur un problème de liste déroulante à choix multiples, gérée en VBA, qui fonctionne bien sur mon PC, mais pas du tout sur le MAC de mon collègue...


Mon fichier excel est présenté ainsi :
- Feuille planning : dans laquelle je voudrais faire apparaitre la liste
- Feuille Equipe : dans laquelle se trouve la plage "Team" qui correspond à l'ensemble de mon équipe de salarié

objectifs :
Dans la feuille Planning, je voudrais quand les jours sont travaillé ("oui" en Colonne B), qu'une liste déroulante apparaisse à côté de la colonne M, au niveau de la ligne du jour travaillée, une liste déroulante dans laquelle je puisse sélectionné un ou plusieurs de mes salariés séparés par " / ".

Si le jour n'est pas travaillé ou que je clique ailleurs dans le tableur, la liste déroulante disparait mais les noms choisis restent dans la case de la colonne M. Et si je reviens cliqué dans cette case, ça ne m'efface pas les noms qui y étaient mais ça les surligne dans la liste déroulante.

Et je voudrais que cela marche sur PC ET sur Mac

VBA :
Pour répondre à mon besoin, je me suis basé sur un tuto youtube =>

En adaptant le code présenté dans cette vidéo, je suis arrivé à un fichier qui fonctionne bien sur mon PC.
Pour que vous ne soyez pas obligé de regarder toute la vidéo, je précise que ça fonctionne avec :
- Du code dans le code de la feuille de calcul qui fait apparaitre la liste déroulante
- une macro dans un module séparé, lancée lorsque je clique sur la liste déroulante

NB : la liste déroulante a été renommée "Zlist"
NB 2 : Le code utilise un contrôle de formulaire car de ce que j'ai compris, les contrôle ActiveX ne sont pas pris en charge sur Mac...



Voici le code de la feuille de calcul :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Set oList = Sheets("Planning").ListBoxes("Zlist")
oList.Visible = False

If ActiveCell.Column <> Range("ListTeam").Column Or _
Cells(ActiveCell.Row, 2) = "" Or _
ActiveCell.HasFormula Then

Exit Sub

End If

With oList
.Height = 200 '150 est en point
.Width = 100 '100 est en point
.Top = ActiveCell.Top 'pour situer le haut de la liste quand elle apparait
.Left = ActiveCell.Offset(0, 1).Left 'pour qu'elle apparaisse à droite de la case sélectionner
.Visible = True


For i = 1 To .ListCount
.Selected(i) = False
Next

a = VBA.Split(ActiveCell, " / ")
If UBound(a) >= 0 Then
For i = 1 To .ListCount
If Not IsError(Application.Match(.List(i), a, 0)) Then
bTest = True
.Selected(i) = True
bTest = False
End If

Next
End If
End With

End Sub



Et le code du module :

Option Explicit

Public i As Long
Public a
Public bTest As Boolean
Public oList As ListBox

Sub ZlistChangement()
If bTest Then
Exit Sub
End If
Set oList = Worksheets("Planning").ListBoxes("Zlist")
ActiveCell = ""
Dim j As Integer
j = 1

For i = 1 To oList.ListCount
If oList.Selected(i) = True Then
If j <> 1 Then

ActiveCell = ActiveCell & " / "
End If
ActiveCell = ActiveCell & oList.List(i)
j = j + 1

End If
Next

End Sub


Voilà pour ce qui est de la présentation du problème, et comme déjà dit, cela fonctionne très bien sur mon PC. Par contre, cela ne marche pas sur les MAC où j'ai pu la tester... Est ce que l'un ou l'une d'entre vous arriverait à m'aider pour rendre ça compatible ??

Je vous joins un fichier représentant le problème et que vous pourrez donc tester chez vous.

En vous remerciant déjà pour votre attention !
 

Pièces jointes

  • Liste déroulante choix multiples.xlsm
    21.9 KB · Affichages: 3

Statistiques des forums

Discussions
298 792
Messages
1 971 811
Membres
203 481
dernier inscrit
kamrankaghar