Ouverture classeur avec macro - mais sur choix utilisateur

Résolu
Maxxikilla Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -  
Maxxikilla Messages postés 40 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je ne sais pas vraiment si ce que je demande est possible, mais ca vaut le coup d'essayer.

Je vous explique. J'ai un fichier excel basique. Je veux faire une macro qui importe les données d'un autre fichier excel. (jusque la tout va bien)

le hic, c'est que le nom de cet autre fichier excel change.
Ca ne poserait pas de problème si c'était moi qui utilisait la macro et le fichier excel, mais je le développe pour une entreprise.

J'aimerai savoir, si, au lancement de la macro, on pourrait avoir une fenetre de type "ctrl+o" qui permettrait de choisir à quel fichier excel au appliquerait la macro ?
En résumé si l'utilisateur peut choisir quel excel importer dans son excel de base ..

J'espère avoir été assez clair :). Merci d'avance pour votre aide !


A voir également:

5 réponses

rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Bonjour,

voila comment faire :

___


'IMPORTATION D'UNE SEULE FEUILLE DE DONNEES

Sub ImportTextFile()

Dim DestBook As Workbook, SourceBook As Workbook
Dim DestCell As Range
Dim RetVal As Boolean
Dim Chemin As String

' Turn off screen updating.
Application.ScreenUpdating = False

'chemin en relatif du dossier ou se trouve tes données
Chemin = Sheets("Chemins").Cells(33, "D")
'ou en hard
'Chemin = "C:\...\dossier"

ChDir Chemin
' Set object variables for the active book and active cell.
Set DestBook = ActiveWorkbook
Set DestCell = Range("E59") 'active la cellule OU TU AIMERAIS COPIER LES DONNEES

' Show the Open dialog box.
RetVal = Application.Dialogs(xlDialogOpen).Show(Chemin & "\*.*")

' If Retval is false (Open dialog canceled), exit the procedure.
If RetVal = False Then Exit Sub

' Set an object variable for the workbook containing the text file.
Set SourceBook = ActiveWorkbook

' Copy the contents of the entire sheet containing the text file.
Range(Range("A1"), Range("A1").SpecialCells(xlLastCell)).Copy

'OU copie un range défini
'Range("A1:AD2000").copy

' Activate the destination workbook and paste special the values
' from the text file.
DestBook.Activate
DestCell.PasteSpecial Paste:=xlValues

' Close the book containing the text file.
SourceBook.Close False

Application.ScreenUpdating = True

End Sub

______

Le chemin est en fait ou tu aimerais que la fenetre ouvrir soit initialement pointée. SI tu dois toujours te balader dans 150 dossiers sur le réseau avant d'arriver au bon, ta meilleur temps de pointer directement sur le bon ^^

Amicalement,
Régis
1
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
Cela vient du fait que pour le Chdir ton adresse ne doit pas comporter de \ à la fin ;-)

Essaye de mettre "A:" ou juste avancer d'un dossier et "A:\dossier"

sinon tu peux carrément enlever l'intérieur du show() mais alors là, ton ouverture poitnera sur ton bureau ou dans "mes document"
1
rEVOLV3r Messages postés 223 Date d'inscription   Statut Membre Dernière intervention   28
 
exactement ! tu peux utiliser cette commande !

Application.displayAlerts = false
1
Maxxikilla Messages postés 40 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ton aide !
0
Maxxikilla Messages postés 40 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Tout d'abord, merci pour ta réponse éclair !!

Pour le chemin, j'ai besoin d'un hard. J'ai donc mis Chemin = "A:\" car les fichiers sont directement là.

J'ai un petit soucis au niveau de ChDirChemin, il ne trouve pas le chemin
error "Path no found"

Aurais tu une idée du pourquoi ?
Amicalement, Maxime.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Maxxikilla Messages postés 40 Date d'inscription   Statut Membre Dernière intervention  
 
Ca fonctionne merci beaucoup !!!

Il y a juste un petit détail:

- il y a un message qui me demande si je veux garder la selection dans le "clipboard", parce qu'en fait, il ouvre le excel sélectionné, il copie,puis il le ferme. Ducoup il veut savoir s'il doit garder en mémoire le "ctrl+c" .. Y a t-il un moyen de lui dire oui par défaut ?
Cette commande serait elle la solution ? DisplayAlerts = False
0