Bonjour,
Je commence à faire des macros sur Excel et je me heurte à un problème de compatibilité dans mon code.
L'erreur intervient à la ligne en rouge.
Le problème survient quand je met le fonction Cells(i, 19) ou bien Range("S" + i) dans la formule. Je pense que le problème viens du type de la variable "i". Alors j'ai essayé de la convertir la variable i de type Integer en String et de ranger le résultat dans une variable de type String mais aucun résultat concluant. Je vous met en dessous comment j'ai essayé de transformer l'entier en chaine de caractères (variable z).
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 Sub import() 'création des variables Dim i As Integer Dim x As Integer Dim y As Integer 'Préparation de la cellules vide pour la copie des données Range("B20000").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select x = ActiveCell.Row 'On va charcher les données dans le fichier Export et on les copie à partir de la cellule vide Workbooks.Open Filename:="C:\Users\omu\Desktop\export.XLSX" Range("A2:Y1000").Select Selection.Copy Windows("XXX-Pilotage IP v5 - vba.xlsm").Activate ActiveSheet.Paste 'On vide le press papier Application.CutCopyMode = False Windows("export.XLSX").Activate ActiveWindow.Close Selection.End(xlDown).Select y = ActiveCell.Row 'on écrit une formule dans chaque case de la colonne "A" pour chaque ligne copiée/collée For i = x To y Cells(i, 1).FormulaLocal = "=SI(ESTVIDE(" & Cells(i, 19) & ");ANNEE(C:C)" & "" - "" & "MOIS(C:C);ANNEE(S:S)" & "" - "" & "MOIS(S:S))" Next End Sub
Dans l'idéal si je viens sur ce forum c'est pour avoir une solution pour mon problème mais avant tous j’aimerai comprendre ou je me suis trompé et savoir ce que je dois faire et me poser les bonnes questions pour ne pas ré-itérer la même erreur.
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 Sub import() 'création des variables Dim i As Integer Dim x As Integer Dim y As Integer Dim z As String 'Préparation de la cellules vide pour la copie des données Range("B20000").Select Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Select x = ActiveCell.Row 'On va charcher les données dans le fichier Export et on les copie à partir de la cellule vide Workbooks.Open Filename:="C:\Users\omu\Desktop\export.XLSX" Range("A2:Y1000").Select Selection.Copy Windows("XXX-Pilotage IP v5 - vba.xlsm").Activate ActiveSheet.Paste 'On vide le press papier et on ferme le fichier "export" Application.CutCopyMode = False Windows("export.XLSX").Activate ActiveWindow.Close Selection.End(xlDown).Select y = ActiveCell.Row 'on écrit une formule dans chaque case de la colonne "A" pour chaque ligne copiée/collée For i = x To y z = CStr(i) Cells(i, 1).FormulaLocal = "=SI(ESTVIDE(" & Cells(z, 19) & ");ANNEE(C:C)" & "" - "" & "MOIS(C:C);ANNEE(S:S)" & "" - "" & "MOIS(S:S))" Next End Sub
Comme c'est la première fois que je poste un sujet sur ce forum n'hésitez pas à me demander des éclaircissement de mes explications si jamais ce n'est pas clair.
Je vous remercie de votre compréhension,
Axel / La_raclette
Partager