Aide sur explorateur de document.

Résolu/Fermé
MokonaN - 16 mai 2018 à 16:20
 MokonaN - 17 mai 2018 à 15:49
Bonjour à tous,

Je vous contacte car mes nombreuses recherches n'ont pas aboutit. Je voulais savoir si vous pouvez m'aider dans cette opération.
Je souhaite faire un code qui me permet à partir de l'explorateur de document de sélectionner un classeur excel afin de pouvoir l'exploiter en récupérant des données dessus pour l'intégrer sur une feuille d'un autre classeur ( ou se trouve le code source de la macro).
Pour mes débuts j'ai déjà le code suivant :
Sub Ouvrirfenetre()
Dim MonDossier as String
Dim i as Integer
' je pensais utiliser le i dans une boucle for finalement je ne l'utilise pas
Dim flag as Boolean
Dim classeurcode, classeurouvert as Workbook
Set classeurcode = thisWorkbook
' ici je stipule que le classeur ouvert est le classeur ou se trouve la macro et je le nomme classeurcode
MonDossier =" T: chemin du document "
'je donne le chemin du document ou je veux chercher mes données j'ai vraiment besoin de cette étape car le document sur lequel je vais prendre les données n'est pas forcément le même ça dépend des années ect ...
flag = true
if len(Dir(MonDossier, vbDirectory)) > 0 then
Shell Environ ("WINDIR") & " \explorer.exe " & MonDossier, vbNormalFocus
' petite vérification de routine
end if

Do while flag
' ici je veux essayer de faire une boucle qui permet de stopper le code tant que l'utilisateur n'a pas sélectionné l'autre classeur excel malheureusement c'est cette étape que je n'arrive pas à faire
DoEvents
Loop

Set classeurouvert = ActiveWorkbook
' pour essayer autrement j'ai donc déclarer que le dernier classeur actif qui est normalement le classeur ouvert par l'utilisateur à partir de l'explorateur de dossier. Quand je compile tout mon code cela ne marche pas quand je fais étape par étape avec F8 dans ce contexte ça marche. L'objectif est tout de même que cela se face lors de la compilation complète du code.
classeurcode.worksheets("SYNTHESE").Range("F16").Value = classeurouvert.Worksheets(4). Range("H43").Value
' ici je prend la donnée nécessaire pour remplir ma feuille excel qui se trouve dans le classeurcode
end Sub


Je vous remercie d'avance pour vos éléments de réponse, et votre aide.

A voir également:

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
16 mai 2018 à 18:37
Bonjour,

Ce qu'il te faut, c'est une boite de dialogue pour sélectionner un fichier.

Regarde cela:

http://www.info-3000.com/vbvba/fichiers/#BoiteDialogueIntegree

Il y a aussi plein de choses interessantes!
0
Bonjour,
Merci pour votre réponse !

J'ai effectivement lu l'article et j'en arrive au code suivant :

Sub traitement()
dim dossier
dim classeuractu as workbook
set classeuractu = ThisWorkbook

Application.FileDialog(msoFileDialogFilePicker).InitialFileName =" T: chemin de mon dossier "
dossier = .SelectedItems(1)

classeuractu.Worksheets("synthese").range("F16").value = dossier.worksheets(4).range("h43").value
end sub

en optant pour ce programme j'ai une erreur de compilation pour le .SelectedItems(1)

j'aimerais juste recupérer le dossier sélectionner pour pouvoir remplir mon classeur.

Avez vous une idée de où provient cette erreur ?
Merci d'avance
0
l'erreur de compilation indique : référence incorrecte ou non qualifiée
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
17 mai 2018 à 11:40
Cette boite de dialogue te renvoi le chemin d'un fichier et non d'un dossier:

Sub traitement()
Dim dossier
Dim classeuractu As Workbook
Set classeuractu = ThisWorkbook

Application.FileDialog(msoFileDialogFilePicker).InitialFileName = " T: chemin de mon dossier "
 If Application.FileDialog(msoFileDialogFilePicker).Show = True Then
       MsgBox Application.FileDialog(msoFileDialogFilePicker).SelectedItems(1)
    End If
'classeuractu.Worksheets("synthese").Range("F16").Value = dossier.Worksheets(4).Range("h43").Value
End Sub
0
Dans ce cas il faut que je reste sur ma première version de code mais que je trouve un moyen pour faire le lien entre les deux documents ... du coup il faut que je trouve la bonne boite de dialogue pour sélectionner un fichier
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
Modifié le 17 mai 2018 à 15:08
Voir ci-dessous
0