Ouvrir un fichier Excel sur disque dans un ComboBox1
Bonjour,
Je suis nouveau dans le domaine du VGA.. Je vous remercie avance de votre aide :)
1-Pour commencer je voudrais pourvoir choisir un fichier excel dans une liste qui se retrouve sur mon disque dur. En utilisant le combobox1.
Le dossier sur mon disque est: N:\APPS2\InstrTrav\ZUKEN\Modeles\
Je voudrais que le fichier Excel choisi se retrouve dans une feuille dans mon Projet... Puisque que apres je devrais utiliser les donner dans mon tableur.
Et bien sur utiliser le bouton ajouter pour le choisir ...
Voici mon projet
Merci
Bonjour,
Voici un essai avec le premier code à placer dans le module de la feuille contenant la combobox et la fonction à mettre dans un module normal :
'MODULE DE LA FEUILLE
Private Sub ComboBox1_DropButtonClick()
dossier$ = "N:\APPS2\InstrTrav\ZUKEN\Modeles\"
filtre$ = "*.xls*"
Me.ComboBox1.List() = Fichiers(dossier, filtre)
End Sub
'MODULE NORMAL
Function Fichiers(rep$, Optional filtre$ = "*")
Dim t()
If Dir(rep, vbDirectory) = "" Then Exit Function
sfile = Dir(rep & filtre)
While sfile <> ""
ReDim Preserve t(n)
t(n) = rep & sfile
n = n + 1
sfile = Dir
Wend
Fichiers = t
End FunctionIl vaut mieux scinder les demandes pour l'ajout de la feuille au classeur (si j'ai bien compris).
Ps : Le nom du langage est VBA^^, Visual Basic for Applications (je ne sais pas si vous avez fait une faute de frappe ?).
Edit : Voici un essai pour le second problème :
private sub commandbutton_click()
if dir(Me.combobox1.value) <> "" then Importer Me.combobox1.value else msgbox "Erreur chemin", 16
end sub
sub Importer(sfilename$)
application.screenupdating = false
with workbooks.open(sfilename)
t = .activesheet.usedrange.value
.close true
end with
with thisworkbook
.sheets.add after:.sheets(.sheets.count)
with activesheet
.name = left(split(split(sfilename, "\")(ubound(split(sfilename, "\"))), ".")(0),24) & format(Date, "YYMMAA")
.cells(1, 1).resize(ubound(t), ubound(t, 2)).value = t
.listobjects.add(source:=.usedrange).name = replace(.name, " ", "_")
end with
end with
application.screenupdating = true
end subCdlt,