Bonjour,
Je me permets de vous contacter car je suis dans la panade. Après plusieurs recherches je n'arrive pas à résoudre mon problème.
Voilà, ma macro me copie-colle un tableau d'un document excel à un autre et je souhaite transformer des nombres (stockés sous format texte) en format nombre. J'ai donc utilisé Cdbl(). Mais j'ai une erreur d’exécution 13 : incompatibilité de type. et là je suis complètement bloqué.
Pouvez vous m'aider??
Merci d'avance
Je vous montre ma macro :
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121Public Namepatch3 As String Public Const OBSBase_NumLigDeb As Integer = 4 Public Const OBSBases_NumLigDeb As Integer = 5 Public Const OBSBase_NumColCodeProjet As Integer = 3 Public Const OBSBase_NumColLast As Integer = 18 Public Const Appli_NumLigMax As Long = 200000 Sub Upload_Cartouche_OBS() ' Cette procédure a pour but d'importer le BM view en gardant la mise en page Application.Calculation = xlManual Set FranceFe = ThisWorkbook.Worksheets("France") Repertoire = ThisWorkbook.Path Nom_Fichier = ThisWorkbook.Name OBSview_NumLig = OBSview_NumLigDeb j = 3 'FranceFe(1, 1).Value = Repertoire 'FranceFe.Cells(2, 1).Value = OBSview_NumLig 'FranceFe.Cells(3, 1).Value = CRA_NumLig Application.EnableEvents = False Application.DisplayAlerts = False ' Suppression des lignes du Details Worksheets("France").Range("A8:H16").ClearContents ' balayage de tous les fichiers du répertoire FichS = Dir(Repertoire & "\*.xls*") While ((FichS <> "") And (Left(FichS, 1) <> "~")) j = j + 1 'France.Cells(j, 1).Value = FichS If (FichS = Nom_Fichier) Then FichS = Dir Else FichS_nom_complet = Repertoire & "\" & FichS Workbooks.Open FichS_nom_complet Dim i As Integer For i = 1 To Worksheets.Count nom_feuille = Worksheets(i).Name If (Left(nom_feuille, 8) = "Coop OBS") Then OBSBase_NumLig = OBSBase_NumLigDeb While (Worksheets(i).Cells(OBSBase_NumLig, OBSBase_NumColCodeProjet) <> "") OBSBase_NumLig = OBSBase_NumLig + 1 Wend Worksheets(i).Range("A3:H11").Select Selection.Copy FranceFe.Activate Worksheets("France").Range("A8:H16").Select ActiveSheet.Paste OBSview_NumLig = OBSview_NumLig + OBSBase_NumLig - OBSBase_NumLigDeb 'enlève le K€ des cellules C9:H11 de la cartouche Worksheets("France").Range("C9:H11").Select Selection.Replace What:=" k€", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False 'enlève le K€ des cellules C13:H13 de la cartouche Worksheets("France").Range("C13:H13").Select Selection.Replace What:=" k€", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False 'enlève le K€ des cellules C15:H15 de la cartouche Worksheets("France").Range("C15:H15").Select Selection.Replace What:=" k€", Replacement:="", LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False 'Equivalent cnum ' Erreur 13 ' Worksheets("France").Range("C8:H16").Select ' For Each cell In Selection ' If Application.IsText(cell.Value) Then ' cell.Value = CDbl(cell.Value) ' End If ' Next ' Autre essai équivalent cnum For Each cell In Range("C8:H16") cell = CDbl(cell) 'l'erreur apparaît ICI Next cell 'Fromat % Worksheets("France").Range("C12").Select Selection.NumberFormat = "0.00%" Worksheets("France").Range("C14").Select Selection.NumberFormat = "0.00%" Worksheets("France").Range("C16").Select Selection.NumberFormat = "0.00%" Worksheets("France").Range("D12").Select Selection.NumberFormat = "0.00%" End If Next i Workbooks(FichS).Close FichS = Dir End If Wend Application.EnableEvents = True Application.DisplayAlerts = True Application.Calculation = xlAutomatic End Sub







Répondre avec citation


Partager