Pourquoi diable Excel ne peut-il pas gérer 2 fichiers du même nom? [fermé]


90

Cela me dérange toute ma vie informatique - j'ai travaillé avec 7 versions différentes d'Excel depuis plus de 20 ans maintenant, avec de grands changements dans chaque version, me forçant à rechercher où les anciennes fonctionnalités sont cachées dans la nouvelle version - mais une seule chose reste solide comme un rocher: l'incapacité d'ouvrir deux fichiers avec le même nom.

Désolé, Excel ne peut pas ouvrir deux classeurs avec le même nom en même temps.

J'ai donc vraiment hâte d'avoir un aperçu ici, pourquoi c'est toujours le cas dans Excel 2013, qui n'était même pas nécessaire à implémenter dans Excel 95? Y a-t-il une raison technique ou de conception dans les structures de données Excel ou les traitements internes qu'il ne peut pas gérer deux objets File avec des chemins différents mais le même nom de fichier? Je ne veux pas de dénigrement de Microsoft ici, je veux juste comprendre la raison derrière cela.


3
Voté pour migrer vers Super User. Pas du tout lié à la programmation.
brettdj

1
@brettdj: J'ai pensé à la même chose moi-même, mais comme il ne s'agit pas d'une question d'utilisation de l'application, mais de la raison technique derrière cela, qui à son tour se réfère à l'implémentation, je dirais que cela rentre également ici.
Alexander Rühl

6
Aucun autre logiciel que j'utilise n'a ce problème. "Désolé, Mozilla Firefox ne peut pas ouvrir deux fichiers nommés index.html en même temps."
Colonel Panic

@ColonelPanic Comment résoudriez-vous le problème en raison duquel Microsoft a mis cette restriction?
GSerg

Réponses:


76

Microsoft dit ici que cela est dû à une ambiguïté de calcul avec les cellules liées.

Si vous aviez une cellule = '[Book1.xlsx] Sheet1'! $ G $ 33 et que vous aviez deux livres nommés 'Book1' ouverts, il n'y a aucun moyen de dire de quel livre vous parlez.

Cette façon de faire référence aux classeurs liés par leur nom dans les cellules persiste dans toutes les versions, et je doute fort qu'elle changera.


41
Réfléchissons maintenant. Quel pourcentage d'utilisateurs qui rencontrent cette restriction frustrante d'ouvrir deux fichiers avec le même nom, avaient en fait ce type de lien dans l'un des documents? Mon estimation est de 0,001%. Donc, à cause de 0,001% des utilisateurs, 99,9999% devraient trouver la solution de contournement, renommer les fichiers, etc. N'est-ce pas stupide? Pourquoi ne pas autoriser l'ouverture de ces fichiers et donner une erreur UNIQUEMENT si la référence comme celle-là existe réellement (ou simplement ne pas calculer ces cellules et donner une erreur lorsque l'utilisateur clique dessus).
Mike Keskinov

10

OUI, VOUS POUVEZ!!! (Mais je pense que c'est un bogue Excel)


Essaye ça:

  1. Sur votre bureau, faites un clic droit et choisissez "Nouveau" => "Feuille de calcul Microsoft Excel".
  2. Renommez le fichier en "Test [1] .xlsx" (le nom est important!)
  3. Créez maintenant un dossier now sur le bureau et collez-y une copie du fichier "Test [1] .xlsx"
  4. Ouvrez les deux "Test [1] .xlsx" par double clic: Et voilà!

Maintenant, les deux classeurs (du même nom) sont ouverts dans Excel. Mais si vous regardez là-dedans "Workbook.Name" -Properties, cela devient encore plus étrange, car en interne, ils sont tous deux renommés en "Test (1) .xlsx".

C'est parce qu'Excel a besoin des caractères spéciaux "[]" en interne pour ses formules.

Donc ils ne sont (normalement) pas autorisés pour un nom de classeur, mais un classeur qui est nommé "Test [1] .xlsx" en externe peut être ouvert de toute façon, qu'est-ce qu'un bogue pour moi!

Pourquoi? Parce que vous avez vraiment des ennuis en tant que programmeur si vous voulez aborder ces deux classeurs en utilisant "Application.Workbooks [nom]", qui n'échoue pas, mais délivre toujours le premier trouvé sous ce nom!

Jörg


réponse intéressante @jreichert, pouvez-vous expliquer "Workbook.Name" -Properties piece? Dois-je l'exécuter dans l'invite de commande ou quelque chose?
Ashrith

1
@Ashrith: Accédez à la fenêtre immédiate d'Excel VBA (ALT + F11, CTRL + G). Utilisation: Voir excelcampus.com/vba/vba-immediate-window-excel Puis tapez :? Application.Workbooks (1) .Name and hit return ...
jreichert

9

Pour toutes les personnes qui se retrouvent ici, car elles aimeraient ouvrir deux fichiers Excel avec le même nom en même temps:

Même si Excel lui-même ne permet pas de le faire en raison de circonstances (certainement discutables) énoncées par Baldrick dans sa réponse , il existe au moins des solutions de contournement qui permettent d'ouvrir plusieurs fichiers xls / xlsx avec le même nom en même temps dans des instances Excel séparées / processus.

Les solutions de contournement sont expliquées dans ce fil sur les forums How-To Geek .

Il existe même une sorte de correctif "intégré" avec l'aide du paramètre Ignore other applications that use Dynamic Data Exchange (DDE) , qui fonctionne pour moi, mais conduit à des erreurs lors de la fermeture d'Excel et de la tentative d'ouverture d'un fichier en double-cliquant dessus.

J'ai dû aller chercher le correctif du registre, qui fonctionne bien. Notez que cette solution de contournement, une fois appliquée, empêchera les cellules de référence croisée entre TOUS les tableaux Excel ouverts (également ceux avec des noms différents), car les instances Excel séparées ne se connaissent pas (au moins selon les tests que je viens de faire).

Vous pouvez à la place choisir le correctif qui ajoute un nouvel élément de menu contextuel Open Separateà l'explorateur et ne l'utiliser que si vous souhaitez en fait ouvrir deux fichiers avec le même nom en même temps.


Très bon lien, merci - en fait, j'ai déjà essayé cela à partir d'une autre source avec principalement une ouverture dans une instance séparée, mais je me suis retiré à nouveau, mais je pense que je choisirais l'élément de menu contextuel pour l'ouvrir séparément si nécessaire.
Alexander Rühl
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.