Explorateur de fichier et variables

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 !

Paul_meri

XLDnaute Nouveau
Bonjour,
je travaille sur un petit projet sous Excel/VBA.
Je dois réaliser un petit programme qui permet de chercher toutes les variables dans le programme et leur valeurs, pour les regrouper dans la "feuil3".

Pour l'instant, j'arrive à afficher les variables et leur valeur.
Voici mon programme:
Code:
Private Sub BoutonLister_Click()
    With Workbooks("Données.xls").Application.Names
    Dim I   As Integer
        
         Feuil3.Cells.Clear
         Feuil3.Cells(1, 1) = "Variables :"
         Feuil3.Cells(1, 2) = "Valeurs :"
         
         For I = 1 To .Count
            
            Feuil3.Cells(I + 2, 1) = .Item(I).Name
            Feuil3.Cells(I + 2, 2) = .Item(I).RefersToRange
         Next I 'To .Count
    End With 'Workbooks.Application.Names
End Sub
[code]


J'affiche donc les variables dans la colonne 1 de la feuil3, et leurs valeurs dans la colonne 2.

Mon premier soucis est que je dois nommer la 2e colonne, afin que la valeur affichée représente le nom de la variable. J'ai utilisé ceci:
[I]Feuil3.Cells(I + 2, 2).Name = .Item(I).Name[/I]
Mais le nom de variable n'est psa copié, mais juste déplacé, ca qui me fait perdre mes informations d'origine.


Ensuite le 2e problème, je dois chercher le fichier au départ, pour choisir le fichier Excel. J'ai utilisé ceci:
[I]Chemin = Application.GetOpenFilename()
With Workbooks(Chemin).Application.Names[/I]
J'obtiens alors un message d'erreur, je ne sais plus quoi faire j'ai bidouillé un peu tout :s

Si vous pouviez m'aiguiller un peu je vous en serai reconnaissant :)
 
Re : Explorateur de fichier et variables

Salut Paul,

Tout d'abord pour ton second problème, tu peux utiliser un code du genre :
NomFic = Application.GetOpenFilename("Text Files (*.xls), *.xls")
Workbooks.Open Filename:=NomFic


Par contre concernant ton premier problème, je ne comprends pas comment et sur quoi boucle la boucle suivante :
PHP:
For I = 1 To .Count

Feuil3.Cells(I + 2, 1) = .Item(I).Name
Feuil3.Cells(I + 2, 2) = .Item(I).RefersToRange
Next I

Merci d'éclairer ma pauvre lanterne,

@+
 
Re : Explorateur de fichier et variables

Merci de ta réponse rapide, je vais tester çà.


Pour le second problème, pour une valeur de I dans la boucle, je rajoute une variable dans la 1ere colonne (.Item(I).Name) et la valeur de celle-ci dans la 2e colonne (.Item(I).RefersToRange).

Je souhaite donc, dans cette 2e colonne, nommer les cellules, avec le contenu de .Item(I).Name

Problème, quand je les nommes, le nom original des cellules à traiter disparait, et se remet par defaut (A1,C5,...)

J'aespere avoir été plus clair,
Merci 🙂
 
Re : Explorateur de fichier et variables

re,

Heu... Désolé mais c'est toujours le grand flou pour moi.
Je ne comprends toujours pas sur quoi tu boucles, c'est à dire a quoi correspond la ligne suivante Workbooks("Données.xls").Application.Names.Count

De plus je ne comprends pas non plus ce que tu entends par
Je souhaite donc, dans cette 2e colonne, nommer les cellules, avec le contenu de .Item(I).Name
Problème, quand je les nommes, le nom original des cellules à traiter disparait, et se remet par defaut (A1,C5,...)

Je crois que je vais aller faire une sieste parce que je dois commencer a fatiguer, je capte plus rien.

@+
 
Re : Explorateur de fichier et variables

bonjour

tu ne peux pas avoir plusieurs cellules portant le meme nom dans un meme classeur.

comme le dit porcinet, getopenfilename lit un nom de fichier mais ne l'ouvre pas, il faut lui accoupler open.

enfin tu utilises le codename de la feuille 3 (feuil3), il me semble que le codename ne fait référence qu'aux feuilles du fichier contenant la macro, pas à un fichier ouvert.

si ton objectif est de recuperer les noms d'un classeur et de les stocker dans le meme classeur, ce code devrait t'aider :

Code:
Dim chemin
Dim fichierouvert As Workbook
Dim i As Integer
chemin = Application.GetOpenFilename()

If Not chemin = False Then
    Workbooks.Open chemin
    Set fichierouvert = ActiveWorkbook
    With fichierouvert.Sheets(1).Application.Names
        Sheets("feuil3").Cells.Clear
        Sheets("feuil3").Cells(1, 1) = "Variables :"
        Sheets("feuil3").Cells(1, 2) = "Valeurs :"
        For i = 1 To .Count
            Sheets("feuil3").Cells(i + 2, 1) = .Item(i).Name
            Sheets("feuil3").Cells(i + 2, 2) = .Item(i).RefersToRange
            Sheets("feuil3").Cells(i + 2, 2).Name = .Item(i).Name & "NOM"'ajout de "NOM"
        Next i 'To .Count
    End With 'Workbooks.Application.Names
End If

salut

edition : application.names me semble-t'il ne fonctionne pas avec un classeur complet, dans mon exemple les noms se trouvent dans le premier onglet du fichier ouvert.
 
Dernière édition:
Re : Explorateur de fichier et variables

Bonjour,
Merci beaucoup pour vos réponses.

L'explorateur de fichier marche très bien.

Hervé à dit:
tu ne peux pas avoir plusieurs cellules portant le meme nom dans un meme classeur.

Je n'avais pas pris ca en compte :s maintenant ca me semble logique en plus.

Pour palier à ce problème, je sépare en 2 fichiers:
Un fichier avec les informations.
Un fichier avec le programme, et qui récupère les données.

J'arrive plus ou moins en bidouillant à y parvenir, mais n'auriez vous pas un petit code qui puisse m'aider?
En fait ce qu'il faudrait, c'est de pouvoir lire un fichier, copier une valeur dans une variable, puis travailler sur l'autre fichier, afin d'écrire la valeur enregistrée, etc...
Bref, comment peut on switcher entre le fichier ouvert au depart et le fichier ouvert par le GetOpenFileName?

Merci d'avance.
 
- 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

Réponses
5
Affichages
238
Réponses
3
Affichages
665
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
650
Réponses
0
Affichages
459
Réponses
3
Affichages
582
Retour