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 d'exécution 438, propriété ou méthde non gérée par cet objet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 2
    Par défaut erreur d'exécution 438, propriété ou méthde non gérée par cet objet
    bonjour à toute la communauté,


    je fais des macros depuis peu, et je ne comprends pas l'erreur de mon code.

    après avoir ouvert un tas de fichiers, je n'arrive pas à activer ces fichiers dans une boucle (car j'aurais beaucoup de manipulations à faire en interaction avec d'autres fichiers)

    les fichiers ouverts ont été variablilisés en wb1 wb2 wb3 etc...


    mais le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(wb & i).Activate


    me renvoie l'erreur : erreur d'exécution 438, propriété ou méthde non gérée par cet objet



    si quelqu'un pouvez m'aider là-dessus, j'en serais ravi

    Merci





    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
        Dim colFiles As Collection
        Dim wb1, wb2, wb3, wb4, wb5, wb6, wb7, wb8, wb9, wb10, wb11, wb12 As String
     
        Set colFiles = New Collection
        RecursiveFileSearch Ext_EBP, objRegExp, colFiles, objFSO
     
        n = 0       ' nb fichier traité
     
        For Each f In colFiles
            Debug.Print (f)
     
            Select Case f
            Case Ext_EBP & "Factures_Janvier_" & ChoixYear & ".xlsx"
            Set wb1 = Workbooks.Open(f)
            wb1 = ActiveWorkbook.Name
              Case Ext_EBP & "Factures_Février_" & ChoixYear & ".xlsx"
              Set wb = Workbooks.Open(f)
              wb2 = ActiveWorkbook.Name
            Case Ext_EBP & "Factures_Mars_" & ChoixYear & ".xlsx"
            Set wb = Workbooks.Open(f)
            wb3 = ActiveWorkbook.Name
              Case Ext_EBP & "Factures_Avril_" & ChoixYear & ".xlsx"
              Set wb = Workbooks.Open(f)
              wb4 = ActiveWorkbook.Name
            Case Ext_EBP & "Factures_Mai_" & ChoixYear & ".xlsx"
            Set wb = Workbooks.Open(f)
            wb5 = ActiveWorkbook.Name
              Case Ext_EBP & "Factures_Juin_" & ChoixYear & ".xlsx"
              Set wb = Workbooks.Open(f)
              wb6 = ActiveWorkbook.Name
            Case Ext_EBP & "Factures_Juillet_" & ChoixYear & ".xlsx"
            Set wb = Workbooks.Open(f)
            wb7 = ActiveWorkbook.Name
              Case Ext_EBP & "Factures_Août_" & ChoixYear & ".xlsx"
              Set wb = Workbooks.Open(f)
              wb8 = ActiveWorkbook.Name
            Case Ext_EBP & "Factures_Septembre_" & ChoixYear & ".xlsx"
            Set wb = Workbooks.Open(f)
            wb9 = ActiveWorkbook.Name
              Case Ext_EBP & "Factures_Octobre_" & ChoixYear & ".xlsx"
              Set wb = Workbooks.Open(f)
              wb10 = ActiveWorkbook.Name
            Case Ext_EBP & "Factures_Novembre_" & ChoixYear & ".xlsx"
            Set wb = Workbooks.Open(f)
            wb11 = ActiveWorkbook.Name
              Case Ext_EBP & "Factures_Décembre_" & ChoixYear & ".xlsx"
              Set wb = Workbooks.Open(f)
              wb12 = ActiveWorkbook.Name
     
            End Select
            n = n + 1
     
     
        Next
     
        'Garbage Collection
        Set objFSO = Nothing
        Set objRegExp = Nothing
     
     
        ''' Récupération et traitement des données
     
       i = 1
       For i = 1 To n
     
      Windows(wb & i).Activate '................................l'erreur se produit à ce moment
     
     
      '... traiterment sur les fichiers

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 478
    Par défaut
    Bonjour,

    Voici un excellent cours VBA Gratuit pour débutant (et plus si affinités) :
    https://bidou.developpez.com/article/VBA/

    Tu y trouveras notamment les différents types de variables et comment on les déclare.

    Edit :
    Je recommande vivement de commencer tous tes modules par :
    Option Explicit

  3. #3
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2018
    Messages : 2
    Par défaut
    Merci Patrice740,

    je vais lire la doc

  4. #4
    Rédacteur/Modérateur


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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Salut.

    Il s'agit de concaténer (assembler) des morceaux de texte. Tel que tu le présentes, wb représente une variable qui est censée contenir du texte ("wb", en l'occurrence).

    Or, tu veux assembler le texte "wb" avec le contenu de i. Tu dois donc dire à Excel que wb est du texte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows("wb" & i).Activate
    Déjà, tu pourrais attribuer les fichiers au variables au sein d'un tableau en recomposant en boucle le nom avec un tableau des mois, ça ferait moins lourd que les select case.

    Cela dit, je serais curieux que tu expliques ta démarche, car l'ouverture de 12 fichiers (de cette manière-là, en plus) me fait un peu tiquer.

    Et comme le dit Patrice (), pense à Option Explicit en début de module. Ca t'obligera à déclarer tes variables et tu limiteras considérablement les erreurs dans ton code ainsi que le temps mis à les chercher, car VBA ne voudra pas démarrer sans que tu aies tout déclaré.

    Pour faire en sorte d'avoir Option Explicit automatiquement au début de chaque nouveau module, va dans les options et coche Déclaration des variables obligatoire
    "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...
    ---------------

Discussions similaires

  1. erreur 438 (propriétés ou méthodes non gérées par cet objet)
    Par michelj64 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 28/05/2016, 20h31
  2. [XL-2010] Erreur d'exécution '438' : Propriété ou méthode non gérée par cet objet
    Par julien2929 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 24/05/2016, 10h37
  3. Réponses: 4
    Dernier message: 10/09/2015, 10h08
  4. erreur 438 : propriété ou méthode non gérée par cet objet
    Par saninx dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/08/2015, 14h38
  5. Erreur 438 propriété ou méthode non gérée par cet objet
    Par aba_tarn dans le forum VBA Access
    Réponses: 0
    Dernier message: 22/02/2008, 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