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 :

Excel VBA=> erreur "index de la matrice en dehors des limites"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 14
    Par défaut Excel VBA=> erreur "index de la matrice en dehors des limites"
    Bonjour à tous,

    J'avais un macro qui fonctionnait bien. Elle crée des rendez-vous dans outlook365 en fonction des données d'un classeur Excel.
    Depuis que j'ai réordonné les calendriers sous outlook365, j'obtiens le message d'erreur "index de la matrice en dehors des limites" à l'exécution de la ligne de code (qui est juste après le définition des variables)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set DossierCalendrier = namespaceOutlook.GetDefaultFolder(olFolderCalendar).Folders(1)
    J'ai tourné le problème dans tous les sens, sans arriver à revenir à un code qui fonctionne, ...
    Certains sites d'aide font référence à l'importation de données à partir de plusieurs tables, je pense que je fais fausse route.

    J'aurais besoin d'aide sur comment avancer sur ce point bloquant. Ça serait top

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    Il faut savoir que lorsque tu as cette erreur, c'est que le VBA ne trouve pas l'objet dont tu utilises l'indice.

    Ici, si Folders(1) génère une erreur, il faut regarder 2 choses :
    - olFolderCalendar est une constante Outlook, ce qui implique que tu as bien la libraire Outlook cochée (si ce n'est pas le cas, et que tu as omis Option Explicit, la valeur de olFolderCalendar sera de 0
    - mettre un espion sur ton bloc namespaceOutlook.GetDefaultFolder(olFolderCalendar) pour t'assurer que le ou les dossiers existent comme tu t'y attends.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 14
    Par défaut
    Bonjour Jean Philippe, merci pour ta réponse rapide. En déplacement toute la semaine mon retour se fait maintenant:

    la bibliothèque d'objet outlook est bien active
    la mise en place d'un espion retourne <Variable objet ou variable de bloc With non définie>

    J'ai essayé dans outlook de mettre un compte exchange par défaut à la place de IMPA/SMTP, cela n'as pas eu d'effet non plus...

    Je continue mes recherches et reste à l'écoute de toutes les pistes

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    OK, tu peux nous donner les lignes précédentes, notamment celles qui permettent d'Affecter une valeur à ton workspace stp ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mars 2012
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 14
    Par défaut
    Voici le 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
     
    'procedure permettant d'ajouter un rdv dans un calendrier outlook
     
     
    Sub NewCalendrierAjoutRdV_ds_Calendrier_NIOLON()
     
    'declaration des variables
    Dim oOutlook As Outlook.Application
    Dim oAppointment As Outlook.AppointmentItem
    Dim namespaceOutlook As Outlook.Namespace
    Dim DossierCalendrier As Outlook.MAPIFolder
    Dim i As Integer, plateforme As String
    Dim C8, C9, C10, C11, C12, C13, D15, D31, E15, F15, I1, J1, K8 As String
    Dim A8, A9, A10, A11, A12, A13, H13 As String
    Dim RetourPrestataire As String
    Dim DebSejou As String
    Dim FinSejour As String
    Dim NbNuit As Integer
     
     
     
    'gestion d'erreurs
    On Error GoTo Err_Execution
     
    'determination quelle source
      For i = 20 To 23
     
            If Cells(i, 3).Value <> "" Then
                plateforme = Cells(i, 2).Value
                Exit For
                Else: plateforme = "direct"
            End If
        Next i
     
    'on cree ensuite les objets
    Set oOutlook = CreateObject("Outlook.Application")
    Set namespaceOutlook = oOutlook.GetNamespace("MAPI")
     
     
    'definit le dossier calendrier
    'GetDefaultFolder renvoit le calendrier du compte actif
    Set DossierCalendrier = namespaceOutlook.GetDefaultFolder(olFolderCalendar).Folders(1)
    De mon côté j'ai vu que le code fonctionnait comme ci-dessus sur un autre PC. J'ai l'impression que l'erreur semble (aussi?) liée aux calendriers d'outlook.
    Avec cette hypothèse je n'arrive pas à déterminer où sont les différences entre les 2 ordinateurs et leur système pour faire en sorte que le ode fonctionne...

    Je continue à chercher ...

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Tu peux tenter de mettre un espion sur l'objet (sélectionne le texte et clique droit... ajouter espion. Ou faire un glisser déposé si la fenêtre espion est déjà ouverte)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    namespaceOutlook.GetDefaultFolder(olFolderCalendar).Folders
    Tu pourras naviguer dans les propriétés, peut-être y trouveras tu la solution.

    Mais le problème vient peut-être d'un cran avant, il faudrait mettre l'objet retourné par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    namespaceOutlook.GetDefaultFolder(olFolderCalendar)
    Dans une variable, si GetDefaultFolder retourne "Nothing"...

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. [OL-2016] Erreur d'exécution 440 Index de la matrice en dehors des limites
    Par Domi.mi dans le forum VBA Outlook
    Réponses: 4
    Dernier message: 05/04/2018, 18h47
  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. probleme d'index en dehors des limites
    Par sly3333 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/12/2006, 12h30

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