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 donnes 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
Partager