macOS Big Sur Anciens fichiers Word non indexés par Spotlight

Beauchadiniou

Membre actif
11 Juin 2019
163
19
52
Bonjour,
Je suis récemment passé d'un vieux Mac sous El Capitan à un Mac plus récent sous Big Sur (actuellement sous 11.6.2) [pour mémoire : https://forums.macg.co/threads/passage-de-10-11-a-10-15-avec-clean-install.1367007/ ] J'ai réinstallé mon vieux Microsoft Office 2016 qui fonctionne toujours sur Big Sur et concernant Word plus précisément, j'en suis donc au moment où j'écris ces lignes à la version 16.16.27. Par ailleurs, j'ai parmi mes données plusieurs centaines de vieux fichiers Word (qui contiennent de l'information précieuse !), créés avec des anciennes versions de Word, des fichiers donc de type "Microsoft Word 97 - 2004 document (.doc)". Or je viens de m'apercevoir qu'aucun de ces fichiers Word n'est indexé par Spotlight, à l'inverse de tous les autres fichiers Word plus récents que j'ai en stock, à savoir de type "Microsoft Word document (.docx)". [je précise tout de suite que j'ai déjà fait ça https://support.apple.com/fr-fr/HT201716 et que ça ne règle rien en l'état, manifestement ce n'est pas le problème]

D'autre part, j'ajoute que tous ces fichiers Word de type "Microsoft Word 97 - 2004 document (.doc)" ne sont pas reconnus par le Finder comme des fichiers Word, à savoir qu'ils apparaissent dans le Finder avec une vignette non pas de Word (comme c'était le cas de tous mes fichiers Word sous 10.11, je viens de vérifier sur mon vieux Mac ; et tous étaient indexés par Spotlight évidemment) mais avec SOIT une vignette blanche, SOIT une vignette noire avec 4 petits points verts en haut à gauche. Je n'ai pas réussi à déterminer le critère qui expliquerait que certains ont une vignette blanche et d'autres une vignette noire, puisque tous sont de type "Microsoft Word 97 - 2004 document (.doc)". Mais le fait est que tous ces fichiers Word ne sont pas reconnus comme tels par le Finder (alors qu'ils s'ouvrent bien dans Word si je double-clique dessus) et ne sont pas indexés par Spotlight. Par ailleurs, j'ai fait des tests avec quelques-uns de ces fichiers et si je les convertis en .docx (en fait, il ne s'agit pas à proprement parler d'une conversion, puisque Word crée un nouveau fichier), immédiatement ils apparaissent avec une vignette Word comme il se doit et sont indexés par Spotlight.

Qu'en pensez-vous ? Quelqu'un a-t-il déjà été confronté au même problème ou bien y a-t-il quelque chose qui cloche dans mon système ? La seule solution est-elle de convertir tous mes anciens fichiers Word en docx ? Y a-t-il un moyen d'automatiser ça ? Faut-il que je passe à Microsoft Office 2021 ou bien ça ne changera rien de ce point de vue-là ?
Merci.
 
Dernière édition:
L'icône noire avec l'indication (en vert) EXEC signifie tout simplement que le Finder ne sais pas à quelle application ce fichier doit être rattaché. Peut-être s'agit-il de documents qui n'ont pas d'extension. En tout cas, des documents très anciens, c'est sûr.

Si tu fais un clic droit sur un de ces documents et que tu demandes à "Lire les informations", est-ce que tu peux sélectionner Word dans le menu déroulant "Ouvrir avec", puis cliquer sur "Tout modifier" ? Est-ce que ça débloque la situation ?

Sinon, oui, la conversion au format OpenXML (.docx, etc.) est bien la solution à appliquer. Tu dois pouvoir l'automatiser avec l'application "Automator" et/ou Applescript, voire directement dans Word avec une macro VBA...
 
  • J’aime
Réactions: Beauchadiniou
Tiens, tant qu'on y est, voilà une petite macro "vite faite" qui permet de convertir tous les .doc qui se trouvent dans un dossier "Aller" qui est sur ton bureau et enregistre les documents convertis dans un dossier "Retour" qui est sur ton bureau (dossiers à créer au préalable) :
Bloc de code:
Sub WordReconnaitraLesSiens()
' il faut créer les dossiers "Aller" et "Retour" au préalable sur le bureau
' ou sinon, adapter les chemins au besoin exact...

Application.ScreenUpdating = False
Utilisateur = Interaction.Environ("USER")
MonCheminA = "/Users/" & Utilisateur & "/Desktop/Aller/"
MonCheminR = "/Users/" & Utilisateur & "/Desktop/Retour/"
ChaqueDoc = Dir(MonCheminA & "*.doc")

Do While Len(ChaqueDoc) > 0
    Documents.Open (MonCheminA & ChaqueDoc)
    ActiveDocument.SaveAs2 FileName:= _
        MonCheminR & ChaqueDoc & "x", FileFormat:= _
        wdFormatXMLDocument
    ActiveDocument.Close
    ChaqueDoc = Dir
Loop
Application.ScreenUpdating = True
End Sub
 
  • J’aime
Réactions: Beauchadiniou
L'icône noire avec l'indication (en vert) EXEC signifie tout simplement que le Finder ne sais pas à quelle application ce fichier doit être rattaché. Peut-être s'agit-il de documents qui n'ont pas d'extension. En tout cas, des documents très anciens, c'est sûr.

Si tu fais un clic droit sur un de ces documents et que tu demandes à "Lire les informations", est-ce que tu peux sélectionner Word dans le menu déroulant "Ouvrir avec", puis cliquer sur "Tout modifier" ? Est-ce que ça débloque la situation ?

Sinon, oui, la conversion au format OpenXML (.docx, etc.) est bien la solution à appliquer. Tu dois pouvoir l'automatiser avec l'application "Automator" et/ou Applescript, voire directement dans Word avec une macro VBA...
Merci.
Pour la solution avec "Tout modifier", non, ça ne débloque pas la situation (les fichiers Word concernés ont déjà le statut "Ouvrir avec Microsoft Word.app" et même si je force le "Tout modifier", ça ne change pas la vignette, et donc le statut, des fichiers dans le Finder).
En revanche, effectivement, tous ces fichiers n'ont pas d'extension et en fait, il sufit d'ajouter ".doc" pour régler le problème. A priori, je peux le faire à la main (en plusieurs fois), à moins qu'une solution automatisée soit disponible et facile…
 
Tiens, tant qu'on y est, voilà une petite macro "vite faite" qui permet de convertir tous les .doc qui se trouvent dans un dossier "Aller" qui est sur ton bureau et enregistre les documents convertis dans un dossier "Retour" qui est sur ton bureau (dossiers à créer au préalable) :
Bloc de code:
Sub WordReconnaitraLesSiens()
' il faut créer les dossiers "Aller" et "Retour" au préalable sur le bureau
' ou sinon, adapter les chemins au besoin exact...

Application.ScreenUpdating = False
Utilisateur = Interaction.Environ("USER")
MonCheminA = "/Users/" & Utilisateur & "/Desktop/Aller/"
MonCheminR = "/Users/" & Utilisateur & "/Desktop/Retour/"
ChaqueDoc = Dir(MonCheminA & "*.doc")

Do While Len(ChaqueDoc) > 0
    Documents.Open (MonCheminA & ChaqueDoc)
    ActiveDocument.SaveAs2 FileName:= _
        MonCheminR & ChaqueDoc & "x", FileFormat:= _
        wdFormatXMLDocument
    ActiveDocument.Close
    ChaqueDoc = Dir
Loop
Application.ScreenUpdating = True
End Sub
Merci ! (je viens de voir ton deuxième message)
En revanche, si je comprends bien, dans cette solution de conversion au format OpenXML, il faut déjà que les fichiers de départ aient l'extension ".doc.", non ? Ou bien suffit-il qu'ils soient intrinsèquement des fichiers Word de type .doc ?
 
Dernière édition:
Oui, je n'avais pas encore eu l'information que tes documents n'avaient pas d'extension du tout. Du coup, ça change un peu la donne. Disons que ça devrait fonctionner, sous réserve que les documents s'ouvrent bien avec Word (j'ai testé avec des .doc sans extension, mais ils ne sont probablement pas assez vieux pour être sûr). Et qu'il n'y ait que les documents à convertir dans le dossier "Aller" :
Bloc de code:
Sub WordReconnaitraLesSiens2()
' il faut créer les dossiers "Aller" et "Retour" au préalable sur le bureau
' ou sinon, adapter les chemins au besoin exact...
' il ne doit y avoir dans "Aller" que des documents sans extension à convertir

Application.ScreenUpdating = False
Utilisateur = Interaction.Environ("USER")
MonCheminA = "/Users/" & Utilisateur & "/Desktop/Aller/"
MonCheminR = "/Users/" & Utilisateur & "/Desktop/Retour/"
ChaqueDoc = Dir(MonCheminA & "*")

Do While Len(ChaqueDoc) > 0
    Documents.Open (MonCheminA & ChaqueDoc)
    ActiveDocument.SaveAs2 FileName:= _
        MonCheminR & ChaqueDoc & ".docx", FileFormat:= _
        wdFormatXMLDocument
    ActiveDocument.Close
    ChaqueDoc = Dir
Loop
Application.ScreenUpdating = True
End Sub
 
  • J’aime
Réactions: Beauchadiniou
Oui, je n'avais pas encore eu l'information que tes documents n'avaient pas d'extension du tout. Du coup, ça change un peu la donne. Disons que ça devrait fonctionner, sous réserve que les documents s'ouvrent bien avec Word (j'ai testé avec des .doc sans extension, mais ils ne sont probablement pas assez vieux pour être sûr). Et qu'il n'y ait que les documents à convertir dans le dossier "Aller" :
Bloc de code:
Sub WordReconnaitraLesSiens2()
' il faut créer les dossiers "Aller" et "Retour" au préalable sur le bureau
' ou sinon, adapter les chemins au besoin exact...
' il ne doit y avoir dans "Aller" que des documents sans extension à convertir

Application.ScreenUpdating = False
Utilisateur = Interaction.Environ("USER")
MonCheminA = "/Users/" & Utilisateur & "/Desktop/Aller/"
MonCheminR = "/Users/" & Utilisateur & "/Desktop/Retour/"
ChaqueDoc = Dir(MonCheminA & "*")

Do While Len(ChaqueDoc) > 0
    Documents.Open (MonCheminA & ChaqueDoc)
    ActiveDocument.SaveAs2 FileName:= _
        MonCheminR & ChaqueDoc & ".docx", FileFormat:= _
        wdFormatXMLDocument
    ActiveDocument.Close
    ChaqueDoc = Dir
Loop
Application.ScreenUpdating = True
End Sub
Merci ! Par contre, en l'état, le Terminal me renvoie ça :
zsh: parse error near `)'
Ça te parle ?
 
Oui, ça ne m'étonne pas trop que le Terminal ne sache pas se débrouiller avec une macro VBA pour Word. :D

C'est dans Word qu'il te faut aller, dans l'éditeur VBA (onglet "Développeur" du ruban ou menu "Outils" > "Macro") pour insérer un module macro dans ton document (Encyclopedia faisant un clic droit sur un des éléments du document ouvert, ici "Document1", par exemple) :

Capture d’écran 1.png

Une fois que c'est fait, tu peux coller le texte de la macro ci-dessus et l'exécuter. Ça devrait mieux marcher qu'avec le Terminal...
 
  • Haha
Réactions: Beauchadiniou
Oui, ça ne m'étonne pas trop que le Terminal ne sache pas se débrouiller avec une macro VBA pour Word. :D

C'est dans Word qu'il te faut aller, dans l'éditeur VBA (onglet "Développeur" du ruban ou menu "Outils" > "Macro") pour insérer un module macro dans ton document (Encyclopedia faisant un clic droit sur un des éléments du document ouvert, ici "Document1", par exemple) :


Une fois que c'est fait, tu peux coller le texte de la macro ci-dessus et l'exécuter. Ça devrait mieux marcher qu'avec le Terminal...
En effet ! :D
En revanche, je sens qu'il va falloir des explications supplémentaires… :rolleyes:
L'onglet Développeur du ruban, je ne trouve pas. Si j'ouvre un document quelconque, j'ai les onglets Accueil, Insertion, Création, Mise en page, Références, Publipostage, Révision, Affichage et je ne vois pas d'outil Développeur nulle part. Dans Affichage, j'ai Macros et si je choisis Afficher les macros, j'arrive au même écran qu'en faisant Outils/Macros/Macros… (qu'un document soit ouvert ou non) Donc là, j'ai cette fenêtre :

Capture d’écran 2022-02-10 à 18.13.22.png

Ça a un rapport avec ce dont tu me parles ? (au passage, pourquoi ma capture d'écran apparaît-elle en énorme ?)

(Encyclopedia faisant un clic droit sur un des éléments du document ouvert, ici "Document1", par exemple)
Rien compris ! :oops: :D C'est quoi "Encyclopedia" ?
 
Dernière édition par un modérateur:
L'onglet Développeur du ruban, je ne trouve pas. Si j'ouvre un document quelconque, j'ai les onglets Accueil, Insertion, Création, Mise en page, Références, Publipostage, Révision, Affichage et je ne vois pas d'outil Développeur nulle part.
Pour afficher l'onglet "Développeur", il faut aller dans les préférences de Word, onglet "Affichage", tout en bas tu as une case à cocher...


Dans Affichage, j'ai Macros et si je choisis Afficher les macros, j'arrive au même écran qu'en faisant Outils/Macros/Macros… (qu'un document soit ouvert ou non) Donc là, j'ai cette fenêtre :
Cette fenêtre affiche les macros existantes. Mais pour le moment il n'y en a pas encore. En passant par le menu "Outils" > "Macro" il faut demander l'affichage "Éditeur Visual Basic" :

Capture d’écran.png

(au passage, pourquoi ma capture d'écran apparaît-elle en énorme ?)
Parce que tu ne l'as pas réduite ! Une fois insérée, lorsque tu la sélectionnes tu vois les poignées dans les coins :
Capture d’écran 1.png

Tu peux ainsi redimensionner l'image à une taille acceptable si nécessaire. Pour ma part, je m'amuse même généralement à les retravailler au préalable avec GraphicConverter.

Rien compris ! C'est quoi "Encyclopedia" ?
C'est un correcteur qui fait du zèle (et un texte que je n'ai pas relu !) :D Il fallait bien sûr lire "en faisant un clic droit..."
 
Comment fait-on pour "exécuter" ? (j'ai fait un retour chariot, mais il ne se passe rien)
Lorsque tu es dans l'éditeur Visual Basic, tu peux lancer l'exécution de la macro en cliquant sur la pointe de flèche bleue :

Capture d’écran.png

C'est probablement le plus simple dans l'immédiat. Sinon, tu peux aussi revenir dans le document Word, l'enregistrer (au format .dotm pour que la macro soit enregistrée) et, lorsque tu veux l'exécuter, tu passes par le menu "Outils" > "Macro" > "Macros..."
 
Lorsque tu es dans l'éditeur Visual Basic, tu peux lancer l'exécution de la macro en cliquant sur la pointe de flèche bleue :


C'est probablement le plus simple dans l'immédiat. Sinon, tu peux aussi revenir dans le document Word, l'enregistrer (au format .dotm pour que la macro soit enregistrée) et, lorsque tu veux l'exécuter, tu passes par le menu "Outils" > "Macro" > "Macros..."
Pour la première solution, je clique sur la flèche, ça ouvre une fenêtre "Macros" qui me demande de créer un nom de macro, je tape un nom, je clique sur Créer et là ça me dit « Microsoft Visual Basic - Sub ou Function non définie" -> ?

Pour la seconde solution, j'ai enregistré le document Word comme tu l'as dit, mais quand je passe par le menu "Outils" > "Macro" > "Macros...", je me retrouve avec la même fenêtre vide décrit dans le message #9 (et donc il ne se passe rien…).
 
Est-ce que tu as bien créé le module dans l'éditeur Visual Basic, puis collé la macro ? Si oui, ta fenêtre de l'éditeur VBA devrait ressembler à ça :
Capture d’écran.png
Est-ce bien le cas ? Si oui, est-ce que tu es ensuite revenu au document Word (menu "Word") pour enregistrer le document comme au format .docm ? Si tu as bien suivi ces étapes, dans la fenêtre "Macros", tu dois voir le nom de la macro dans le champ idoine :
Capture d’écran 2022-02-11 aϰ 14.38.11.png
Si tu as bien préparé au préalable les deux dossiers "Aller" et "Retour" sur le bureau, il ne te reste plus qu'à cliquer sur le bouton "Exécuter"...
 
En fait, je n'avais pas compris qu'il fallait aussi inclure
« Sub WordReconnaitraLesSiens2()
' il faut créer les dossiers "Aller" et "Retour" au préalable sur le bureau
' ou sinon, adapter les chemins au besoin exact...
' il ne doit y avoir dans "Aller" que des documents sans extension à convertir ». OK !

En revanche, il ne se passe toujours rien : je clique sur la flèche, mais je n'ai aucun message d'aucune sorte et le dossier Retour reste vide. Pour la seconde solution, j'ai bien la fenêtre comme tu l'indiques, je clique sur Exécuter, mais le dossier Retour reste vide.

Par ailleurs : .dotm (#12) ou .docm (#14) ?

J'ai fait le test avec un fichier .doc et la première macro, mais le résultat est le même.
 
Plutôt .docm. .dotm, c'est pour créer un modèle, j'ai tapé un peu vite et pas relu quant j'ai indiqué ça. Ça ne change pas grand chose dans la pratique, puisque le but c'est juste d'avoir un support pour la macro, mais il n'est pas utile de créer un modèle avec ça.

Je t'ai envoyé un message perso (la petite enveloppe en haut à droite avec un rond rouge...) pour te faire parvenir un document avec la macro "en état de marche", ça va être plus simple que de te faire faire une analyse en pas à pas de la macro.
 
  • J’aime
Réactions: Beauchadiniou
Merci !
Hélas, ça ne marche pas… :-(
J'ai essayé pour la première (avec un fichier Word .doc dans le dossier Aller), mais il ne se passait rien (rien dans le dossier Retour).
Ensuite, j'ai essayé pour la seconde (avec un fichier Word sans extension dans le dossier Aller), mais j'ai cliqué par erreur sur Etape. Ensuite, j'ai tout quitté, j'ai relancé et j'ai un message d'erreur, voir p.j.
Capture d’écran 2022-02-11 à 17.29.05.png
Et maintenant, je l'ai aussi pour la macro 1 (alors que j'ai retéléchargé ton fichier à partir de ton e-mail).
J'ai un peu de mal à comprendre ce que tu as fait. Apparemment tu as copié les macros dans un module inséré au document "Normal". C'est dans le document "Convertisseur en masse" qu'il faut aller voir et exécuter les macros si tes dossiers "Aller" et "Retour" portent bien ce nom et qu'ils sont bien sur le bureau, il n'y a pas de raison que ça ne marche pas.

Tu peux mettre la ligne "Application.ScreenUpdating = False" en commentaire (c'est à dire saisir une apostrophe en début de ligne) et relancer la macro, elle affichera un message d'erreur, en cas de plantage, on en saura peut-être un peu plus...
 
J'ai un peu de mal à comprendre ce que tu as fait. Apparemment tu as copié les macros dans un module inséré au document "Normal". C'est dans le document "Convertisseur en masse" qu'il faut aller voir et exécuter les macros
Je télécharge et ouvre ton document "Convertisseur en masse", je vois ton texte "Voilà le document avec les deux versions de la macro. Il ne reste plus qu’à aller les exécuter, en espérant que tout se passe bien…". A partir de là, je fais Outils/Macro/Macros…, je vois tes deux macros, je choisis celle qui correspond au fichier présent dans le dossier Aller présent sur le bureau et j'ai toujours le même message d'erreur.
Pour l'histoire du module inséré au document "Normal" et non au document "Convertisseur en masse" (?), comment effacer tout ça/remettre tout à zéro ?

Tu peux mettre la ligne "Application.ScreenUpdating = False" en commentaire (c'est à dire saisir une apostrophe en début de ligne) et relancer la macro, elle affichera un message d'erreur, en cas de plantage, on en saura peut-être un peu plus...
Capture d’écran 2022-02-11 à 23.25.04.png
 
Tu fais un clic droit sur chacun des trois modules qui sont dans "Normal" et tu les supprimes, l'un après l'autre.

Par rapport au message d'erreur, une fois celui-là validé et la macro lancée, tu dois avoir un autre message d'erreur, probablement plus intéressant quand au problème rencontré (celui-là indique seulement que c'est momentanément en pause)...
 
Tu fais un clic droit sur chacun des trois modules qui sont dans "Normal" et tu les supprimes, l'un après l'autre.
Ça se complique, de plus en plus… :rolleyes:
Menu contextuel sur Module 1 (par ex.) -> pas de choix "supprimer" (idem pour Module 2 et Module 3). -> ?
Capture d’écran 2022-02-12 à 14.43.07.png

Au passage, je signale que si je clique sur Normal/Module 1-2-3 et que je fais Outils/Macros…, il n'y a rien dans la fenêtre qui apparaît. Pour que les macros soient présentes, il faut que je clique sur "Project (Convertisseur en masse)" (ou n'importe quel élément en faisant partie).

Par rapport au message d'erreur, une fois celui-là validé et la macro lancée, tu dois avoir un autre message d'erreur, probablement plus intéressant quand au problème rencontré (celui-là indique seulement que c'est momentanément en pause)...
Non, il n'y a pas d'autre message d'erreur…
Si je quitte Visuel Basic, j'ai "Cette commande va arrêter le débogueur". Si je quitte Word, j'ai "Voulez-vous enregistrer les modifications apportées à Convertisseur en masse". Je dis "non". J'ouvre de nouveau Convertisseur en masse.docm, j'active les macros. Je fais Outil/Macro -> exécuter. J'ai de nouveau "Erreur de compilation: instruction incorrecte à l'extérieur d'une procédure", avec dans le panneau de gauche Normal/Module 1 qui est sélectionné et dans la fenêtre de droite (Normal - Module 1 (Code)) "False" qui est sélectionné. Je fais OK, je sélectionne "Project (Convestisseur en masse)" dans le panneau de gauche, je lance la macro et cette fois-ci, j'ai "Impossible d'exécuter le code en mode arrêt". Je fais OK. Maintenant je vais dans la fenêtre "(Général) - WordReconnaitraLesSien", qui correspond manifestement au Module1 de "Project (Convestisseur en masse)", je mets une apostrophe devant "Application.ScreenUpdating = False", je lance la macro par la flèche en haut et j'ai "Erreur de compilation: Instruction incorrecte à l'extérieur d'une procédure" avec le fenêtre "Normal - Module 1 (Code)" qui apparaît au premier plan et "False" qui est sélectionné. En revanche, si je fais Outils/Macros…/Exécuter, je n'ai "que" ce message : "Impossible d'exécuter le code en mode Arrêt" et la fenêtre "Normal - Module 1 (Code)" n'apparaît pas.