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 :

Problème avec fichier Excel génère erreur


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut Problème avec fichier Excel génère erreur
    Bonjour je réalise une application qui doit récupérer des informations dans deux fichiers Excel. Ne sachant pas comment accéder aux fichiers je me suis référé à msdn qui m'a donné la solution suivante. L'erreur générée est la suivante : Erreur défini par lapplication ou par l'objet

    Voici mon code:
    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
     
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    Dim wbExcel1 As Excel.Workbook 'Classeur Excel
    Dim wsExcel1 As Excel.Worksheet 'Feuille Excel
    Dim TestBoucle, No_Piece, DatePiece, Code_Journal, DateEche, Ref_Piece, CompteGen, MontantGen, Sens, Libelle, Code_Taxe, No_Plan, Type_Ecr, CompteTiers, MontantAna, SensAna, No_Plan_Ana, No_Section, Type_Ecr_Ana As String
    Dim LigneGen, LigneAna As String
    Dim j, i As Integer
    Dim TestBool As Boolean
     
    Private Sub cmdValider_Click()
    Dim appExcel As Excel.Application 'Application Excel
    Dim wbExcel As Excel.Workbook 'Classeur Excel
    Dim wsExcel As Excel.Worksheet 'Feuille Excel
    j = 2
    'Ouverture de l'application
    Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel = appExcel.Workbooks.Open(Form1.txtEcrGen)
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel = wbExcel.Worksheets(1)
     
    'Ouverture de l'application
    'Set appExcel = CreateObject("Excel.Application")
    'Ouverture d'un fichier Excel
    Set wbExcel1 = appExcel.Workbooks.Open(Form1.txtEcrAna)
    'wsExcel correspond à la première feuille du fichier
    Set wsExcel1 = wbExcel.Worksheets(1)
    Open Form1.txtDest For Output As #2
     
     
     
    While (wsExcel.Cells(i, 1).Value <> Null)
        TestBool = False
        'LigneGen = "" & wsExcel.Cells(i, 2).Value & vbTab & "" & vbTab & wsExcel.Cells(i, 4).Value & vbTab & wsExcel.Cells(i, 5).Value & vbTab & wsExcel.Cells(i, 6).Value & vbTab & wsExcel.Cells(i, 7).Value & vbTab & wsExcel.Cells(i, 9).Value & vbTab & wsExcel.Cells(i, 22).Value & vbTab & wsExcel.Cells(i, 11).Value & vbtab &
        No_Piece = wsExcel.Cells(i, 2).Value
        DatePiece = wsExcel.Cells(i, 4).Value
        Code_Journal = wsExcel.Cells(i, 5).Value
        Ref_Piece = wsExcel.Cells(i, 6).Value
        CompteGen = Mid(CStr(wsExcel.Cells(i, 7).Value), 1, 7)
        MontantGen = wsExcel.Cells(i, 9).Value
        Sens = wsExcel.Cells(i, 22).Value
        Libelle = wsExcel.Cells(i, 11).Value
     
        If Mid(CompteGen, 1, 3) = "401" Then
            Code_Taxe = "D19"
        ElseIf Mid(CompteGen, 1, 3) = "411" Then
            Code_Taxe = "C05"
        End If
     
        No_Plan = "0"
        Type_Ecr = "G"
        CompteTiers = wsExcel.Cells(i, 8).Value
        DateEche = wsExcel.Cells(i, 23).Value
     
        LigneGen = "" & No_Piece & vbTab & "" & vbTab & DatePiece & vbTab & Code_Journal & vbTab & Ref_Piece & vbTab & CompteGen & vbTab & MontantGen & vbTab & Sens & vbTab & Libelle & vbTab & Code_Taxe & vbTab & No_Plan & vbTab & Type_Ecr & vbTab & CompteTiers & vbTab & DateEche
        Print #2, LigneGen
     
        j = 2
        While (wsExcel1.Cells(j, 1).Value <> "" Or TestBool = True)
            If wsExcel1.Cells(j, 1).Value = No_Piece Then
     
                'Insertion Analytique
                MontantAna = wsExcel1.Cells(j, 9).Value
     
                If wsExcel1.Cells(j, 6).Value = "-1" Then
                    SensAna = "D"
                ElseIf wsExcel1.Cells(j, 6).Value = "1" Then
                    SensAna = "C"
                End If
     
                No_Plan_Ana = "1"
                No_Section = wsExcel1.Cells(j, 3).Value
                Type_Ecr_Ana = "A"
                LigneAna = "" & No_Piece & vbTab & "" & vbTab & DatePiece & vbTab & Code_Journal & vbTab & Ref_Piece & vbTab & CompteGen & vbTab & MontantAna & vbTab & SensAna & vbTab & Libelle & vbTab & Code_Taxe & vbTab & No_Plan_Ana & vbTab & No_Section & vbTab & Type_Ecr_Ana & vbTab & CompteTiers & vbTab & DateEche
                Print #2, LigneAna
     
                If wsExcel1.Cells(j + 1, 1).Value = No_Piece Then
                    TestBool = True
                End If
            End If
     
            j = j + 1
        Wend
     
    Wend
    End Sub
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut
    Pardon j'ai oublié de préciser où était l'erreur. En effet cet erreur intervient sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While (wsExcel.Cells(i, 1).Value <> Null)
    Merci

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    A la place de Null, essaie avec Empty

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While (wsExcel.Cells(i, 1).Value <> Empty)
    A+

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut
    Non toujours la même erreur. Alors j'ai essayé de forcer ma valeur en string et de tester si la chaine était vide mais c'est toujours pareil.

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Curieux, avec ça, ça fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Cells(1, 1).Value = Empty
    A+

    Vérifie la valeur de i (!) Le problème était celui-ci sur un message, hier...

  6. #6
    Membre habitué
    Inscrit en
    Novembre 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 130
    Points : 166
    Points
    166
    Par défaut
    salut Yanmeunier


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    While (wsExcel.Cells(i, 1).Value <> Null)
    au premier passage i=0 puisque tu ne l'as pas initialisé donc ton erreur
    Ne te serais-tu pas trompé avec j ?
    @+

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut
    Merci j'avais oublié d'initialiser la variable i à 1.
    Seulement maintenant il ne rentre pas dans ma boucle alors qu'il devrait y rentrer.

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Inverse ton test

    Do

    loop while

    ou

    Do until

    loop

    A toi de choize

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut
    J'ai essayé avec Empty et ça marche il rentre bien dans ma boucle.
    Merci beaucoup

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

Discussions similaires

  1. [XL-2010] Problème recalcul fichier Excel avec fonctions VBA
    Par julio44 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/07/2014, 15h07
  2. Probléme ouverture fichier excel créé avec Jasperreport
    Par abderahime_13 dans le forum Jasper
    Réponses: 0
    Dernier message: 06/05/2010, 10h48
  3. Problème avec open() [Excel VBA]
    Par heddicmi dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/11/2005, 16h21
  4. [Delphi 3] Problème avec fichier ressource .RES
    Par delphim dans le forum EDI
    Réponses: 2
    Dernier message: 28/06/2005, 18h11
  5. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 13h17

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