Aide VBA : demande d'ouvrir fichier source et fichier cible

stik913

XLDnaute Nouveau
Bonjour à tous,

Je commence seulement à decouvrir les macro et le langage VBA, et je cherche une solution à mon problème.

Il est le suivant :
J'ai une macro, à laquelle je veux demander d'ouvrir un dossier dans lequel je choisirai le fichier source (une base de données) puis j'aimerai qu'elle ouvre un autre dossier dans lequel je choisirai le fichier cible (dans lequel je copie les données dans les onglets correspondant).

J'ai peut être commencer à trouver une solution mais j'ai peur que ça ne soit pas suffisant car il me semble qu'il faudrait définir un fichier 1 (comme source) et fichier 2 (comme cible) quelque chose comme ça.

Pouvez vous m'aider ? :)


Tenez un exemple de ce que j'ai pu trouver :

Sub macro

...

Dim Fichier As Variant
Fichier = Application.GetOpenFilename
If Fichier = False Then Exit Sub
Workbooks.Open Fichier

...
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Aide VBA : demande d'ouvrir fichier source et fichier cible

Bonjour Stik et bienvenu, bonjour le forum,

Peut-être comme ça :
Code:
Sub macro()
Dim Fichier As Variant
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
 
Fichier = Application.GetOpenFilename
If Fichier = False Then Exit Sub
Workbooks.Open Fichier
Set cs = ActiveWorkbook
 
Fichier = Application.GetOpenFilename
If Fichier = False Then Exit Sub
Workbooks.Open Fichier
Set cc = ActiveWorkbook
End Sub
 

stik913

XLDnaute Nouveau
Re : Aide VBA : demande d'ouvrir fichier source et fichier cible

Merci Robert, mais ça ne marche toujours pas, regarde : c'est peut etre normal mais bon dans ce cas aide moi à savoir ^ù ça beug ..

Code:
Sub Macro()
Dim marche
Dim n

Dim Fichier As Variant
Dim cs As Workbook
Dim cc As Workbook

Fichier = Application.GetOpenFilename
If Fichier = False Then Exit Sub
Workbooks.Open Fichier
Set cs = ActiveWorkbook

Fichier = Application.GetOpenFilename
If Fichier = False Then Exit Sub
Workbooks.Open Fichier
Set cc = ActiveWorkbook


Workbooks("test macro nico.xls").Activate
Worksheets("test").Select
n = ActiveSheet.Range("B2").CurrentRegion.Count


For i = 1 To n
Workbooks(cs).Activate (c'est à ce moment que ça bug)
Worksheets("EXTRACT").Select
ActiveSheet.Range("B2").CurrentRegion.Select
marche = ActiveCell(i).Value
Workbooks(cs).Activate
Worksheets("EXTRACT").Select
ActiveWindow.SmallScroll ToRight:=13
Selection.AutoFilter Field:=25, Criteria1:=marche
Range("A2").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.SpecialCells(xlCellTypeVisible).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Selection.Copy
Windows(cc).Activate
Worksheets(marche).Select
Range("A65536").Select
Selection.End(xlUp).Select
ActiveCell(2, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False

Next i


End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Aide VBA : demande d'ouvrir fichier source et fichier cible

Bonjour Stik, bonjour le forum,

Plus besoin de WorkBooks(nom du classeur). Comme les variables cc et cs sont déclarées comme Workbook, pour les appeler il suffit d'écrire cc ou cs et non pas WorkBooks(cc) ou WorkBooks(cs) sinon ça plante...

cs.Activate va fonctionner...
 

perpitou

XLDnaute Occasionnel
Re : Aide VBA : demande d'ouvrir fichier source et fichier cible

merci ça fonctionne pour moi ;)!!
Bon j'ai posté un truc mais je redemande ici! est_il possible de faire un bouton qui crée et ouvre un dossier sur le pc pour pouvoir ranger ses documents (pdf word ou autres)? Une fois le dossier crée est _ il possible d'avoir accès pour établir des modifications?

Merci d'avance.
 

stik913

XLDnaute Nouveau
Re : Aide VBA : demande d'ouvrir fichier source et fichier cible

Merci ça marche c'est bon !!
Une autre question Robert, je cherche en vain une fonction qui me permettrait de commander à ma macro la chose suivante :
Si les données du fichier source ne sont pas dans le fichier cible, regarder dans le deuxieme fichier cible.

Je suis presque sur que c'est possible.. juste il me manque le langage..
 

Discussions similaires

Statistiques des forums

Discussions
312 371
Messages
2 087 697
Membres
103 644
dernier inscrit
bsalah