XL 2016 VBA - Trouver les feuilles d'un classeur fermé

  • Initiateur de la discussion Initiateur de la discussion Dudu2
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Solution
Bonjour @nullose
vien vu
mais attention là on garantie plus l'ordre exacte des feuilles
car j'ai testé plusieurs classeurs et certains va savoir pourquoi les <sheet name="... ne sont pas dans l'ordre dans certains fichier
c'est pour ça que j'utilise l'indexation par l'attribut "sheetId"
donc
il faut laisser le tableau se construire avec les lignes vides et les supprimer par la suite
VB:
'patricktoulon

Sub testv5()
    xlsxPath = "C:\Users\patricktoulon\Desktop\Classeur1.xlsx"
    MsgBox Join(ListfeuilleXmlTarV2(xlsxPath), vbCrLf)
    Debug.Print Join(ListfeuilleXmlTarV2(xlsxPath), vbCrLf)
End Sub


Function ListfeuilleXmlTarV2(xlsxPath)
    Dim tempFolder As String, xmlPath As String, xmlcontent As String, cmd As String...
avec tar et redirection vers un fichier en le laissant encodé en utf-8

xlsxPath="chemin du fichier excel.xlsx"

tempFolder = ThisWorkbook.Path

xmlPath = tempFolder & "\workbook.xml"

' Extraire directement le contenu du fichier sans créer l'arborescence
cmd = "cmd /c tar -xOf """ & xlsxPath & """ xl/workbook.xml > """ & xmlPath & """"

Set objShell = CreateObject("WScript.Shell")
result = objShell.Run(cmd, 0, True)

'on obtient le fichier xml
 
@nullosse,
et pourquoi par SQL ? elle est compliquée la requête ?
Non elle n'est pas complexe, voir le fichier en Post #151.
VB:
ReqSQL = "SELECT * FROM [" & WorksheetName & "$" & RangeAddress & "]"
Mais à partir du moment où dans le nom de la feuille (WorksheetName) il y a les 2 caractères à problème, le SQL part en sucette.
Même si ces caractères sont remplacés par leurs équivalents ADO. Ce n'est pas cohérent.
 
Mais à partir du moment où dans le nom de la feuille (WorksheetName) il y a les 2 caractères à problème, le SQL part en sucette.
Même si ces caractères sont remplacés par leurs équivalents ADO. Ce n'est pas cohérent.
Si tu converti les points [.] En [#] et les [!] En [_] je vois pourquoi ça ne fonctionnerait pas. Je vois pas de cohérence c'est comme ça.
 
Si tu converti les points [.] En [#] et les [!] En [_] je vois pourquoi ça ne fonctionnerait pas.
Tu penses bien que c'est la 1ère chose que j'ai faite.

1757524023798.png
1757524186618.png


Essaie avec le fichier joint pour t'en convaincre.

Edit: je l'avais déjà indiqué dans les Post #151 (Replace ou pas).
Ça ne m'étonne qu'à moitié car il doit chercher la feuille avec caractères remplacés et évidemment il ne la trouve pas !
L'incohérence c'est d'un coté je te refile un nom de feuille modifié, de l'autre je sais pas la retrouver avec le nom que je t'ai donné.
 

Pièces jointes

Dernière édition:
Bonsoir,
Avis uniquement personnel
Une solution tellement simple a été apportée
Le fil fait maintenant 13 pages et 184 réponses (aucune solution VBA fiable 100%) Edit : ou alors, pourquoi donc continuer?????
Mais ça continue, encore et encore, comme dirait Francis Cabrel... 🙂
Bonne continuation (et que le feuilleton dure le plus longtemps possible, ça donne de la lecture)
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Excel et Insee
Réponses
6
Affichages
557
Réponses
4
Affichages
229
  • Résolu(e)
Microsoft 365 transposer
Réponses
6
Affichages
146
Réponses
4
Affichages
178
Retour