Fichier word VBA compatible pour office 2011 sur mac [Résolu/Fermé]

Signaler
Messages postés
9
Date d'inscription
vendredi 12 juin 2015
Statut
Membre
Dernière intervention
8 septembre 2015
-
Messages postés
9
Date d'inscription
vendredi 12 juin 2015
Statut
Membre
Dernière intervention
8 septembre 2015
-
Bonjour à tous !

Merci d'être indulgent si ce sujet a été traité ailleurs... Je débute un peu dans le système de forum.

Alors voilà mon problème, j'ai fais une lise déroulante qui interroge un fichier excel qui contient des noms.

Cela fonctionne du tonnerre sur windows, mais pas sur mac !

Sauf que pour mon cabinet, le collègue qui va utiliser ce fichier word est sur mac...
Quand j'ouvre le fichier sur mac il ne comprend pas dès le début :
"Dim objCC As ContentControl"

Comment le rendre compatible ?

voici mon code :
Sub mettre_a_jour_liste_nom()
Dim objCC As ContentControl
Dim docCCs As ContentControls
' Get the collection of all content controls with this tag.

ExcelFile = ThisDocument.Path + "\contacts04-09-2015.xls" 'mettre le chemin du fichier
Set xlAppList = CreateObject("Excel.Application")
Set MyWorkbook = xlAppList.Workbooks.Open(ExcelFile, 0, , , "") 'demarrage de la lecture du fichier excel
MyWorkbook.Sheets("liste contacts").Select 'selection de la feuille "liste contacts"


'selectionne tous les ContentControl avec le balise : balise_list_nom_zonebox
Set docCCs = ActiveDocument.SelectContentControlsByTag("balise_list_nom_zonebox")
' If any content controls are found iterate through them and give the type.
If docCCs.Count <> 0 Then 'verifie qu'il y a des ContentControl liste_nom dans le doc
For Each objCC In docCCs
objCC.SetPlaceholderText Text:="coucou"
objCC.DropdownListEntries.Clear ' pour vider la liste déroulante
Next


'Balayage des item du excel

For Each cellule In ActiveSheet.Range("B2:B10") 'boucle de balayage de toutes les cellules
contenu_cellule_selectionner = Sheets("liste contacts").Cells(cellule.Row, 2)

If contenu_cellule_selectionner <> "" Then 'verifie que la cellule n'est pas vide
'si pas vide on essai de l'ajouter dans la liste_nom : balise_list_nom_zonebox
For Each objCC In docCCs

'Boucle pour balyé tous les item de la liste
Result = 0
For Each objLE In objCC.DropdownListEntries
If objLE.Text <> contenu_cellule_selectionner Then 'verifie que la cellule n'est pas déjà entrer dans la liste
Result = Result
Else
Result = Result + 1
End If
Next




'verifie si l'item existe deja
If Result = 0 Then
'il n'existe pas donc :
objCC.DropdownListEntries.Add contenu_cellule_selectionner


Else
'MsgBox "Liste Nom : l'item existe déjà"
End If

Next 'fin de boucle de la liste des ContentControl avec le balise : balise_list_nom_zonebox

End If 'fin de la verif cellule vide

Next 'fin de boucle de balayage du fichier excel

Else 'pas de ContentControl dans le doc
MsgBox "Erreur dans le document"
End If

'arret de la lecture du fichier excel
MyWorkbook.Close savechanges:=True
Set xlAppList = Nothing
Set MyWorkbook = Nothing
End Sub


Si quelqu'un a une piste ?


1 réponse

Messages postés
4010
Date d'inscription
samedi 8 novembre 2014
Statut
Membre
Dernière intervention
3 octobre 2016
1 879
Bonjour madabeach972,

Le VBA Word Mac est plus limité que celui de Word Windows.
Je crois même qu'il avait été retiré dans les versions précédentes puis remis avec 2011.

Je ne suis pas sur Mac, mais il me semble que les "contrôles de contenu", comme d'ailleurs les contrôles ActiveX, n'existent pas dans Word 2011.
Tu ne devrais même pas voir le contrôle dans le document lui-même.

Il aurait peut-être fallu faire l'inverse : développer les listes sous Mac qui elles, doivent être compatibles Windows.
Messages postés
9
Date d'inscription
vendredi 12 juin 2015
Statut
Membre
Dernière intervention
8 septembre 2015

Bonjour C-Claire,

Je ne savais pas que cela avait été retiré...
Tu as raison j'aurais du faire l'inverse, mais moi j'ai un windows du coup j'ai vraiment aps pensé que c'était totalement incompatible..

Je vais me dépatouiller en codant sur mac.. Enfin je fais essayer.

Merci pour ta réponse.