Executer une macro à partir d'un fichier X
damdam38
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis en train de faire une macro excel (2007). J'ai fait un bouton qui execute la fonction Ouvrir... .
Mon but c'est d'abord de pouvoir choisir un fichier excel dans un dossier X à l'aide de ce bouton et ensuite de pouvoir copier les données de ce fichier. Alors voila mon code
Private Sub CommandButton1_Click()
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
UserForm1.TextBox1.Text = .SelectedItems(1)
End With
End Sub
Sub macro1()
'
' macro1 Macro
'
'
Range("A1").Select
Workbooks.Open Filename:="C:\Users\XXX\Desktop\export.xls"
Range("A3:A10").Select
Selection.Copy
Windows("macro1.xlsm").Activate
Je pense que ce qui manque est le code qui indique qu'il faut executer le fichier que j'avais chouisi au début. Des idées?
Merci
Je suis en train de faire une macro excel (2007). J'ai fait un bouton qui execute la fonction Ouvrir... .
Mon but c'est d'abord de pouvoir choisir un fichier excel dans un dossier X à l'aide de ce bouton et ensuite de pouvoir copier les données de ce fichier. Alors voila mon code
Private Sub CommandButton1_Click()
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
UserForm1.TextBox1.Text = .SelectedItems(1)
End With
End Sub
Sub macro1()
'
' macro1 Macro
'
'
Range("A1").Select
Workbooks.Open Filename:="C:\Users\XXX\Desktop\export.xls"
Range("A3:A10").Select
Selection.Copy
Windows("macro1.xlsm").Activate
Je pense que ce qui manque est le code qui indique qu'il faut executer le fichier que j'avais chouisi au début. Des idées?
Merci
2 réponses
-
Bonjour,
La ligne à modifier est :Workbooks.Open Filename:="C:\Users\XXX\Desktop\export.xls"
à remplacer par :'sort de la procédure si le textbox1 est vide... On ne sait jamais! ;-) If UserForm1.TextBox1.Text = "" Then Exit Sub Workbooks.Open Filename:= TextBox1.Text
Bon j'avoue ne pas avoir testé et me tromper souvent en ce moment... Alors revenez après tests... -
ca me fait erreur d'execution 424
objet requis
Voila le code
Private Sub CommandButton1_Click()
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.Show
UserForm1.TextBox1.Text = .SelectedItems(1)
End With
End Sub
Sub remplirbdd()
'
' remplirbdd Macro
'
'
Range("A1").Select
If UserForm1.TextBox1.Text = "xx" Then Exit Sub
Workbooks.Open Filename:=TextBox1.Text
Range("A3:A10").Select
Selection.Copy
Windows("macrobdd.xlsm").Activate
Range("B2").Select
ActiveSheet.Paste
Windows("TextBox1.Text").Activate
Range("B3:C10").Select
Application.CutCopyMode = False
Selection.Copy
Application.CutCopyMode = False
Selection.Copy
Windows("macrobdd.xlsm").Activate
Range("C2").Select
ActiveSheet.Paste
Windows("TextBox1.Text").Activate
etc et ca met en jaune la ligne UserForm1.TextBox1.Text = .SelectedItems(1)
End With
quand je fais Débogage-
Pourquoi ne pas placer tout ton code, et donc réaliser toute la procédure, dans ton bouton?
Ca peux donner quelque chose comme :Private Sub CommandButton1_Click() With Application.FileDialog(msoFileDialogOpen) .AllowMultiSelect = False .Show UserForm1.TextBox1.Text = .SelectedItems(1) End With 'Dans la ligne suivante, tu as ajouté "xx" au lieu de ""... Je ne comprends pas. If UserForm1.TextBox1.Text = "xx" Then Exit Sub Workbooks.Open Filename:=TextBox1.Text 'dans la ligne suivante A ADAPTER : Feuil1 à remplacer par le nom de la feuille accueillant les données............... Range("A3:C10").Copy Workbooks("macrobdd.xlsm").Worksheets("Feuil1").Range("B2") 'le copier-coller en une ligne de code, pratique non??? End Sub
-