Bonjour à Tous,

Je travaille actuellement sur la création d'une matrice budgétaire, j'en suis à la compilation des données et pour cela je souhaite utiliser une macro.

Mais là je bloque sur un code et j'ai du mal à comprendre pourquoi le code ne fonctionne pas.

Voici ma problématique, j'ai mon onglet CA qui contient des données dans des colonnes pour les périodes de janvier à décembre. Et je veux mettre ces données en ligne dans un autre onglet.

Pour cela, j'ai crée des variables " colonne_cours" et "derniereColone". j'ai donc créé une boucle For afin de récupérer les données de la colonne X qui commence à partir de la la ligne 2 jusqu'à la cellule non vide de la colonne en cours.


j'ai écrit le code : Wk_Origine.Range(Colonne_Cours & "2" & ":" & Range(Colonne_Cours & "2").End(xlDown)).Copy Wk_Destina.Range("F" & Dern_ligneEx3) mais le message suivant s'affiche " la méthode range de l'objet_global a échoué "

Pouvez - vous m'aider en espérant que mes explications soient claires ?

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
 
 
Dim I As Variant
Dim J As Variant
 
Dim Dern_ligneEx1 As Integer
Dim Dern_ligneEx2 As Integer
Dim Dern_ligneEx3 As Integer
Dim Wk_Origine As Worksheet
Dim Wk_Destina As Worksheet
Dim DerniereColonne As Long
Dim Colonne_Cours As Long
 
 
 
'onglet pour coller les donnŽes
Set Wk_Destina = Worksheets("exportAccost")
 
'onglet  exporter
Set Wk_Origine = Worksheets("CA (2)")
 
'suppression des donnees
Call Supprdonn1
 
 
'copie des lignes pour les douze mois de la plage de donnee base
For I = 1 To 12
 
Dern_ligneEx1 = Wk_Destina.Range("A500000").End(xlUp).Row + 1
 
Wk_Origine.Range("Base").Copy Wk_Destina.Range("A" & Dern_ligneEx1)
 
 
Cells(Dern_ligneEx1, 1).Select
 
Next I
 
 
'copie de ligne pour le compte comptable
 
Wk_Destina.Range("E2").Select
 
For J = 1 To 12
 
Dern_ligneEx2 = Wk_Destina.Range("E500000").End(xlUp).Row + 1
 
Wk_Origine.Range("Nature").Copy Wk_Destina.Range("E" & Dern_ligneEx2)
Cells(Dern_ligneEx2, 5).Select
 
Next J
 
Wk_Destina.Range("F2").Select
 
 
 
' trouver la derniere colonne du tableau
DerniereColonne = Wk_Origine.Cells(1, Columns.Count).End(xlToLeft).Column
 
 
'copie de la période correspondante des lignes
 
Dern_ligneEx3 = Wk_Destina.Range("F500000").End(xlUp).Row + 1
 
For Colonne_Cours = 33 To DerniereColonne
 
'code qui bloque
Wk_Origine.Range(Colonne_Cours & "2" & ":" & Range(Colonne_Cours & "2").End(xlDown)).Copy Wk_Destina.Range("F" & Dern_ligneEx3)
 
 
Next