IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E] Erreur 1004


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut [VBA-E] Erreur 1004
    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

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour linio

    Cells demande des parametrs numeriques

    Cells(ligne,colonne) ---> ligne 1, colonne "B" ----> Cells(1,2)

    bonne journée

  3. #3
    Membre averti Avatar de Linio
    Inscrit en
    Octobre 2005
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 431
    Points : 332
    Points
    332
    Par défaut
    Comme spécifié mon programme tourne plusieurs tours de boucle avant de ne plus fonctionner (A vrai dire, il traite toute la liste et semble planter à la fin de celle ci quand il atteint les premières cases vides)

    J'ai essayé donc ta modification, mais ça n'est pas ça.

    J'ai apparemment trouvé mon problème.

    Il ne doit pas aimer les lignes vides, notamment les affectations de champs vides à des variables.

    J'ai donc transformé ma condition:
    Do While classeurSource.Sheets(1).Cells(i, "A") <> ""

    Et ça marche. Donc désolé du dérangement, mais j'étais un peu sur le speed (je le suis encore mais sur d'autres problèmes )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] [VBA-Excel] Erreur 1004 sur utilisation de Cells
    Par hergios dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/07/2012, 12h55
  2. [VBA-E] erreur '1004' Range
    Par dev81 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 08/06/2007, 09h38
  3. [vba][excel]Erreur '1004' lors d'un changement d'opérateur de comparaison.
    Par nicko5959 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/02/2007, 15h47
  4. [VBA-E] erreur 1004 et depassement de capacité dans une boucle
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 11/02/2007, 13h37
  5. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo