bonjour,
Je souhaite intégrer ma macro dans le classeur 2 que je lancerais avec un bouton.
Est-ce bien ThisWorbook que je dois utiliser?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Sub essai()
 
 
'
' essai Macro
'
' Keyboard Shortcut:
'
'
Dim wkbSource As Workbook, wkbdestination As Workbook
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim NouvelleFeuille As Worksheet
Dim Fichier As String, Chemin As String
Dim Plage As Variant, Plage1 As Variant
Dim Ligne As Long
Dim C As Range, Plg As Range
Dim i As Integer
'
'
' ouverture fichier
'
Chemin = "G:\Users\Documents\"
    ChDrive "G"
    ChDir Chemin
    Fichier = Application.GetOpenFilename()  'on peut ajouter un filtre pour n'avoir que les types de fichiers voulus
 
    If Fichier = "Faux" Then Exit Sub
Set wkbSource = Workbooks.Open(Fichier)
'
'Positionner le pointeur sur la première cellule vide
'
Range("B1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("B1").Select
LIGNEFIN = ActiveCell(1, 0).Address()
FIN = Range(LIGNEFIN).Row
'
' Selectionner la zone
'
LIGNEFIN = ActiveCell.Row
Range("A1" & ":K" & LIGNEFIN).Select
'
' ouverture fichier destination avec macro ancienne version
'
'Chemin = "G:\Users\Documents\"
'    ChDrive "G"
'    ChDir Chemin
'    Fichier2 = Application.GetOpenFilename()
 
'    If Fichier2 = "Faux" Then Exit Sub
'Set wkbdestination = Workbooks.Open(Fichier2)
'
'ouverture fichier destination avec macro integree dans le classeur 2
'
ThisWorkbook.Activate
Set wkbdestination = ThisWorkbooks
'
'Positionner le pointeur sur la première cellule vide
'
wkbdestination.Worksheets("Donnees").Activate
Range("B1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("B1").Select
LIGNEFIN2 = ActiveCell(1, 0).Address()
FIN = Range(LIGNEFIN2).Row
'
' Effacer contenu cellules sur plage definie
'
LIGNEFIN2 = ActiveCell.Row
Sheets("Donnees").Range("A1" & ":N" & LIGNEFIN2).ClearContents
'
'Coller
'
wkbSource.Sheets("miseajour").Range("A1" & ":N" & LIGNEFIN).Copy Destination:=wkbdestination.Sheets("Donnees").Range("B1")
'
merci d'avance pour votre retour