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 d'execution '9'


Sujet :

Macros et VBA Excel

  1. #1
    Membre extrêmement actif Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Par défaut [VBA-E]erreur d'execution '9'
    bonjour le code suivant est pour vba excel

    en gros cette procedure consiste a ouvrir un fichier (A) sur un serveur different du fichier excel (B)appelant le code vba

    le progr va copier certaines cases du fichier A pour le coller dans le fichier B

    le programme marche une fois si on tente de le reutiliser une seconde fois , ca bug et ca me donne un message d'erreur :
    erreur d'execution '9' : l'indice n'appartient pas à la selection

    l'erreur est constaté par le systeme à la ligne :

    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
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
     
    Sub verifexistnvxope()
     
    Dim i, j, k, j2, i2, nbcol, var2, nb3 As Integer
    Dim objFeuille As Worksheet
    Dim mess, mess2 As String
    Dim nomcol As Integer
    Dim Existence_Dossier2 As Variant
    Dim leDossier, verifsuivi2006 As String
    Dim letbl2(), letbl3(), Fichier2 As String
     
    Application.Workbooks.Open ("\\Icadefs01\clients\A-C\AFL\Suivi opérationnel\Suivi Des Dossiers 2006.xls")
    var2 = 0
    j = 0
    i = 0
    j2 = 0
    i2 = 0
    k = 0
    nbcol = 0
    nomcol = 0
    nb3 = 0
    mess = ""
    mess2 = ""
    verifsuivi2006 = ""
    leDossier = ""
     
    i = Application.ActiveWorkbook.Sheets.Count
     
    For j = 1 To i
     
        If Application.ActiveWorkbook.Sheets(j).Name = "Réceptions AP3" Then
     
            k = j
            Exit For
     
        End If
     
    Next
     
    If k <> 0 Then
     
        Set objFeuille = ActiveWorkbook.ActiveSheet
        Application.ActiveWorkbook.Sheets(k).Activate
        i = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
     
        nbcol = ActiveWorkbook.ActiveSheet.UsedRange.Columns.Count
     
       ' For j = 1 To nbcol
     
            'If LCase(ActiveWorkbook.ActiveSheet.UsedRange.Cells(1, j).Value) = "" Then
     
            'End If
     
       ' Next
     
        For j = 2 To i
     
            If LCase(Application.ActiveSheet.Cells(j, 33).Value) = "o" Then
     
                ReDim Preserve letbl2(nb3)
                letbl2(nb3) = Application.ActiveSheet.Cells(j, 2).Value
     
                mess = mess & " " & letbl2(nb3)
     
                nb3 = nb3 + 1
            End If
     
        Next
     
    'MsgBox mess
     
    'MsgBox UBound(letbl2())
    End If
     
    If k = 0 Then
        MsgBox "le système n'a pas pu trouvé d'onglet nommé 'Réceptions AP3' dans le fichier 'Suivi Des Dossiers 2006.xls" & _
        Chr(10) & "La procédure de vérification d'existence de nouvelles opérations n'a pas pu être effectuée", vbExclamation, "Avertissements"
     
    End If
     
    Application.ActiveWorkbook.Close SaveChanges:=False
     
    '------------------------------------------------------------------------
     
    leDossier = ActiveWorkbook.Path
    nb3 = 0
    If Dir(leDossier & "\" & "suivi_conseil_2006_icade.xls", vbNormal) <> "" Then
        Application.Workbooks.Open (leDossier & "\" & "suivi_conseil_2006_icade.xls")
     
        Application.ActiveWorkbook.Sheets("Suivi Dossiers 2006").Activate
        i = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count
        i2 = UBound(letbl2())
     
        For j2 = 0 To i2
     
           For j = 2 To i
     
               If LCase(ActiveWorkbook.ActiveSheet.Cells(j, 1).Value) = LCase(letbl2(j2)) Then
                    var2 = var2 + 1
     
               End If
     
           Next
     
           If var2 = 0 Then
     
                ReDim Preserve letbl3(nb3)
     
                letbl3(nb3) = letbl2(j2)
     
                mess2 = mess2 & " " & letbl3(nb3)
                nb3 = nb3 + 1
     
           End If
     
            var2 = 0
        Next
     
        j2 = UBound(letbl3())
        i2 = 0
        i = ActiveWorkbook.ActiveSheet.UsedRange.Rows.Count + 1
     
        For j = i To i + UBound(letbl3()) + 1
     
            If j2 >= i2 Then
                ActiveWorkbook.ActiveSheet.Cells(j, 1).Value = letbl3(i2)
            End If
     
            i2 = i2 + 1
        Next
     
        Application.ActiveWorkbook.Close SaveChanges:=True
     
        Else
        MsgBox "Le fichier 'suivi_conseil_2006_icade.xls' dans le dossier '" & _
                   leDossier & "' n'existe pas." & Chr(10) &  _
        "La procédure de vérification d'existence de nouvelles opérations n'a pas pu être effectuée, si nouvelles opérations il y a...", vbExclamation, "Avertissements"
     
    End If
     
    End Sub

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Salut,

    je ne suis pas sur (car je ne vois pas ton fichier Excel) mais si tu depasse la limite d'un integer tu peux avoir cette erreur !

    Limite integer : -32 768 à 32 767

    Declare ton j2 en Long et là (si l'erreur venait de là) ca ira mieux

  3. #3
    Membre extrêmement actif Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Par défaut
    il semblerait que ca marche sans probleme avec j2 en tant que variable de type LONG

    merci

  4. #4
    Membre extrêmement actif Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Par défaut
    ben bon ca marche pas

    meme avec une variable de type LONG

    bizare que ca marche la premiere fois mais pas la seconde fois

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    932
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 932
    Par défaut
    Salut,

    A combien de lignes arrives tu?

    verifie que tu ne depasse pas les 65536 !!

  6. #6
    Membre extrêmement actif Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Par défaut
    en fait le systeme me produit une erreur car j2 est egal à 52


    et dans tous mes fichiers nexcedent pas un usedrange.rows.count de 300 lignes à peu pres

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par icadedt
    en fait le systeme me produit une erreur car j2 est egal à 52


    et dans tous mes fichiers nexcedent pas un usedrange.rows.count de 300 lignes à peu pres
    l'erreur 9 "L'indice n'appartient pas à la sélection"
    peu apparaitre si la dimension du tableau Letb13... n'as pas été définie par le passage sur la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                ReDim Preserve letbl3(nb3)
    tu peu utiliser la gestion d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    j2 = 0
    On Error Resume Next
    j2 = UBound(letbl3())
    On Error GoTo 0

    Tant que tu est dans ton code tu pourrai modifier tes déclaration de variables ..., il faut préciser le type pour chacunes des variables déclarées...
    les Deux écritures suivantes sont équivalente :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim i, j, k, j2, i2, nbcol, var2, nb3 As Integer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Dim i
    Dim  j
    Dim  k as variant
    Dim  j2 as variant 
    Dim i2 as variant, nbcol as variant, var2 as variant, nb3 As Integer

  8. #8
    Membre extrêmement actif Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Par défaut
    bon tant pis , le bug n'est pas derangeant , je vais gere ca avec le "on error resume next"

    mais vraiment tres bizarre tout ca

    merci tout le monde

  9. #9
    Membre extrêmement actif Avatar de mapmip
    Profil pro
    ulla
    Inscrit en
    Juillet 2006
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : ulla

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 326
    Par défaut
    c'est bon jai compris

    mon systeme est fait pour reperer des inegalites, de nourrir la variable tableau et de "supprimer" ces "inegalites"

    donc si jactionne une deuxieme fois le programme les inegalites nexistent plus car corrigees et donc la variable tableau n'est pas dimensionnée pour avoir au moins un case et donc il ya incoherence si je demande :

    ubound(tableau())

    je crois que cest pour ca

Discussions similaires

  1. Réponses: 25
    Dernier message: 12/09/2014, 19h51
  2. [access 2003/VBA/SQL] Erreur d'execution 3201 sur une requête.
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/05/2008, 09h04
  3. [VBA-E] erreur d'execution '1004' sur masquage feuille
    Par Cupoftea dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 18h34
  4. [VBA-E] erreur d'execution 424 - objet requis
    Par ludo02 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/02/2007, 10h29
  5. [VBA E] erreur d'execution
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/07/2006, 21h24

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