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 :

Erreur 9 Indice en dehors des limites du tableau


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Erreur 9 Indice en dehors des limites du tableau
    Bonjour,
    J'ai fait un petit script VBA sous Excel, il fonctionnait très bien jusqu'a ce que j'enregistre le fichier. Depuis j'ai une "erreur 9 Indice en dehors des limites du tableau"
    N'ayant pas de tableau je ne comprends pas bien ce que ça veut dire, de plus que ça fonctionnait avant d'enregistrer.
    Le script s'arrete à la ligne 10.

    QQun pourrait m'éclairer svp ?

    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
     
    Sub Macro7()
    '
    ' Macro7 Macro
    '
    For i = 1 To 10
        j = i + 1
        k = i * 2
     
            Worksheets("Données").Range("A" & j).Copy Worksheets("KMZ").Range("A" & k) 'folder
            Worksheets("Données").Range("L" & j).Copy Worksheets("KMZ").Range("B" & k) ' name
            Worksheets("Données").Range("M" & j).Copy Worksheets("KMZ").Range("C" & k) 'latitude
            Worksheets("Données").Range("N" & j).Copy Worksheets("KMZ").Range("D" & k) 'longitude
            Worksheets("Données").Range("O" & j).Copy Worksheets("KMZ").Range("E" & k) 'altitude point
            Worksheets("Données").Range("P" & j).Copy Worksheets("KMZ").Range("K" & k) 'azimuth point
            If Worksheets("Données").Cells(j, 5) = "OUI" Then Worksheets("KMZ").Cells(k, 11) = "0" 'headind 0 pour les ballons
            Worksheets("KMZ").Cells(k, 6) = "Azimuth visee = " & Worksheets("KMZ").Cells(k, 11) & "°" 'azimuth visee
            Worksheets("KMZ").Cells(k, 7) = "red" 'couleur visee
            If Worksheets("Données").Cells(j, 5) = "OUI" Then Worksheets("KMZ").Cells(k, 8) = 175 Else Worksheets("KMZ").Cells(k, 8) = 196 'icone
            Worksheets("KMZ").Cells(k, 9) = "AGL" 'mode d'altitude
            Worksheets("KMZ").Cells(k, 10) = "green" 'couleur ligne d'icone en altitude
     
    Next i
     
    End Sub

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    Tu as probablement une de tes deux feuilles qui n'est pas nommée comme dans ton code. As-tu plusieurs classeurs ouverts? Ton code par du principe que tu travailles avec le classeur actif. A toi de vérifier que c'est le bon classeur lorsque tu démarres ta macro.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Salut,
    tu as raison, en fermant les autres feuilles ça fonctionne de nouveau.
    Y at-il un moyen de s'assurer que ma macro ne fonctionne que sur ce classeur ?

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Rattache tes feuilles au classeur en utilisant des variables.

    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
    Sub Macro7()
    '
    ' Macro7 Macro
    '
     
    Dim Source As Worksheet, target As Worksheet
     
    Set Source = ThisWorkbook.Worksheets("Données")
    Set target = ThisWorkbook.Worksheets("KMZ")
    For i = 1 To 10
        j = i + 1
        k = i * 2
     
            Source.Range("A" & j).Copy target.Range("A" & k) 'folder
            Source.Range("L" & j).Copy target.Range("B" & k) ' name

    Perso, il me semble que je travaillerais avec des tableaux structurés (au moins pour l'onglet Données). Ca simplifierait le code. Si tu souhaites qu'on améliore ton code, poste une copie d'écran des deux feuilles que l'on puisse de faire une idée de la conception à mettre en place. Il semble que ton code transfère des données d'une feuille à l'autre et selon la conception de tes feuilles, on pourrait probablement améliorer et réduire le code.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    voici les copies écran des feuilles.

    Nom : Capture d’écran 2020-10-24 à 18.58.27.png
Affichages : 137
Taille : 606,7 Ko

    Nom : Capture d’écran 2020-10-24 à 18.58.42.png
Affichages : 146
Taille : 604,4 Ko

    Mon problème est revenu. J'exporte la feuille KMZ en csv pour ensuite la traiter dans Google Earth mais à chaque fois que je le fais je me retrouve avec une erreur 9

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Dans ton code tu parles de la feuille KMZ, mais l'illustration montre que la feuille s'appelle Traitement_KMZ...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    Bien vu
    En fait quand j'exporte la feuille KMZ sous le Nom TraitementKMZ, il renomme la feuille.
    Je vais peut être mettre l'export directement dans ma macro, ça m'évitera des soucis.
    Merci

Discussions similaires

  1. [Débutant] indice en dehors des limites de la matrice
    Par mathieu1016 dans le forum C#
    Réponses: 2
    Dernier message: 09/06/2017, 14h22
  2. Réponses: 2
    Dernier message: 22/05/2012, 11h01
  3. Réponses: 4
    Dernier message: 15/11/2011, 09h16
  4. Erreur : "L'index se trouve en dehors des limites du tableau"
    Par dotnetnuke dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 17/07/2009, 17h36
  5. L'index se trouve en dehors des limites du tableau
    Par LaDeveloppeuse dans le forum Windows Forms
    Réponses: 3
    Dernier message: 11/10/2007, 21h11

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