Je suis très novice en programmation VB, mais je dois faire une macro sous excel qui extrait les données d'un fichier pour créer une série de requêtes sql qui seront ensuite envoyée sur un serveur à l'aide d'un petit exécutable que je lance avec ma macro.
J'ai donc créé un bouton avec un champ pour rentrer le nom du fichier excel à parcourir.
Le code 'marche' dans la mesure où il créé bien les requêtes dans la seconde feuille de mon fichier qui éxécute la macro, là où le bat blesse, c'est qu'il plante tout de même sur:
If classeurSource.Sheets(1).Cells(i, "N") = "is Valid" Then
Avec un joli:
Du coup exit le reste de mes fonctions (qui ne marchent probablement pas d'ailleurs mais bon)Citation:
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet
J'ai beau rassembler toutes mes connaissances, sur un code aussi simpliste, je n'arrive pas à voir où est le problème.
(Sachant que le problème existait déjà avant les 2 lignes de codes après le Loop).
Si vous pouviez m'éclairer d'une quelconque manière... Je vous en serais reconnaissant :)
Code:
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 Private Sub CommandButton1_Click() Dim classeurSource As Workbook Dim numI As String Dim typeI As String Dim titleI As String Dim baseline As String Set classeurSource = Workbooks.Open(ThisWorkbook.Sheets(1).Cells(1, "B")) MsgBox classeurSource.Sheets(1).Cells(1, "B") MsgBox ThisWorkbook.Sheets(1).Cells(1, "B") i = 2 j = 1 numI = "XXX" Do While numI <> "" If classeurSource.Sheets(1).Cells(i, "N") = "is Valid" Then numI = classeurSource.Sheets(1).Cells(i, "A") typeI = classeurSource.Sheets(1).Cells(i, "C") titleI = classeurSource.Sheets(1).Cells(i, "J") baseline = classeurSource.Sheets(1).Cells(i, "Y") ThisWorkbook.Sheets(2).Cells(j, "A") = "INSERT INTO table(Customer_ref,AWP_ref,Summary,Category) VALUES ('" & numI & "' , '" & typeI & "' , '" & titleI & "' , '" & baseline & "');" j = j + 1 End If i = i + 1 Loop Set SaveObj = CreateObject("Excel.Application") Set SaveFile = SaveObj.Workbooks.Open("C:\test\test.prn") End Sub