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:
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet
Du coup exit le reste de mes fonctions (qui ne marchent probablement pas d'ailleurs mais bon)

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 : 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
 
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