BABUDROME
Messages postés151Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention19 avril 2016
-
25 mars 2016 à 09:10
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
25 mars 2016 à 17:16
Bonjour,
J'ai 2 classeurs : "TRAITER" sur disque dur du PC et "DATA" sur clé USB.
Cas 1) Si j'ouvre DATA, puis TRAITER, la macro Workbook_Open sait identifier chacun des classeurs et traiter les données de DATA.
Cas 2) Si j'ouvre TRAITER seulement (workbooks.count=1), comment ouvrir DATA avec Dialog, afin de me retrouver comme le cas 1 ?
J'ai bien chercher dans l'explorateur d'objet, mais c'est aussi nébuleux que l'aide souvent muet.
J'espère de pas trop abuser de votre temps.
A+ bab
PS : la copie d'une partie de feuille d'un classeur vers un autre classeur fonctionne. Merci à ucfoutu.
A voir également:
Vba récupérer données d'un autre classeur sans l'ouvrir
BABUDROME
Messages postés151Date d'inscriptionlundi 16 janvier 2006StatutMembreDernière intervention19 avril 2016 25 mars 2016 à 14:18
Rebonjour,
Dans le cas 2, il se peut que le nom du classeur me soit inconnu, de même que le chemin dans le support. Je dois alors rechercher son origine puis le saisir dans le classeur TRAITER qui pourra l'ouvrir.
J'espérais extraire ce classeur (chemin compris) via un Dialogue interne d'une macro de TRAITER afin d'éviter les erreurs de saisie d'un utilisateur Lambda.
Merci quand même de ta réponse, que je peux mettre en place pour l'instant. A+ Bab
titi = Application.Dialogs(xlDialogOpen).Show If titi Then Set toto = ActiveWorkbook MsgBox toto.Name End If
clique sur le classeur de ton choix deanbs la boîte de dialogue et regarde
EDIT : une autre méthode ? ====>>>
Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd .Filters.Add "Classeurs Excel", "*.xl*", 1 If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems MsgBox "tu as choisi le fichier : " & vrtSelectedItem Next vrtSelectedItem Else MsgBox "tu n'as choisi aucun fichier" End If End With Set fd = Nothing
Le reste, avec cette seconde méthode, est facile à deviner (suffit de continuer avec le code de mon tout premier message, puisque le chemin complet est ainsi connu.
Je te précise qu'il t'est également possible de définir un répertoire "initial", en ajoutant par exemple, immédiatement après With fd :
.InitialFileName = "D:\monoutil"
(la boîte de dialogue s'ouvrira ainsi d'abord sur le répertoire D:\monoutil
________________________
Nul ne saurait valablement coder ce qu'il ne saurait exposer clairement.