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 1004 en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par défaut Erreur 1004 en VBA
    Bonjour à tous,

    J'ai un pb avec ma macro ... impossible pour moi de comprendre d'où vient le bug ...

    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
    Application.ScreenUpdating = False
    Dim DateArrete As Date
    Dim Chemin As String
    Dim PrefixeDate As String
    Dim Entite As String
    Dim EntiteCorrigee As String
    Dim ColProcedure As Integer
    Dim ColEvenement As Integer
    Dim ColCA As Integer
    Dim ColMAG As Integer
    Dim i As Integer
    Dim Ligne_Source As Double
    Dim Ligne As Double
    
    'Récupération de la date d'arrêté pour créer nouveau fichier
    DateArrete = Sheets("Suivi éxécution des macros").Cells(3, 3)
    
    PrefixeDate = Year(DateArrete) & Month(DateArrete)
    
    'Récupération du répertoire de travail
    Chemin = Workbooks(ActiveWorkbook.Name).Path
    
    'Enregistrement du fichier global
    ActiveWorkbook.SaveAs Filename:= _
        Chemin & "\" & PrefixeDate & "-temp--Extractions.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    ActiveWorkbook.SaveAs Filename:= _
        Chemin & "\" & PrefixeDate & "-GLOBAL-Extractions.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
    
    Dim FichierOriginal As String
    Dim FichierCopie As String
    
    For i = 1 To 3
           
        'Prévoir Case avec différentes valeurs
        Select Case i
            Case Is = 1
                Entite = "Société 1"
                EntiteCorrigee = "S1"
                ColProcedure = 31
                ColEvenement = 1
                ColCA = 35
                ColMAG = 30
            Case Is = 2
                Entite = "Société 2 "
                EntiteCorrigee = "S2"
                ColProcedure = 17
                ColEvenement = 1
                ColCA = 17
                ColMAG = 17
            Case Is = 3
                Entite = "Société 3 "
                EntiteCorrigee = "S3"
                ColProcedure = 17
                ColEvenement = 1
                ColCA = 17
                ColMAG = 17
        End Select
       
      
        'Suppression des données sources du fichier
        Workbooks.Open (FichierCopie)
        Ligne_Source = 0
    
    Ligne_Source = Sheets("Export-procedures").Range("a1").End(xlDown).Row
       
        Dim TabProcedure()
        Dim TabCA()
        Dim TabEvenement()
        Dim TabMAG()
        ReDim Preserve TabProcedure(1 To Ligne_Source, 1 To 44)
        ReDim Preserve TabCA(1 To Ligne_Source, 1 To 44)
        ReDim Preserve TabEvenement(1 To Ligne_Source, 1 To 44)
        ReDim Preserve TabMAG(1 To Ligne_Source, 1 To 44)
        Colonne_Source = 44
       
        For Col = 1 To Colonne_Source
            TabProcedure(1, Col) = Sheets("Export-procedures").Cells(1, Col).Value
        Next Col
       
        'ONGLET PROCEDURES
       
        Dim LigneTabProcedure As Double
    
        LigneTabProcedure = 2
        For Ligne = 1 To Ligne_Source
            If Sheets("Export-procedures").Cells(Ligne, ColProcedure) = Entite Then
                For Col = 1 To Colonne_Source
                    TabProcedure(LigneTabProcedure, Col) = Sheets("Export-procedures").Cells(Ligne, Col).Value
                Next Col
                LigneTabProcedure = LigneTabProcedure + 1
            End If
        Next Ligne
       
        Sheets("Export-procedures").Select
        Selection.ClearContents
     
        For Ligne = 1 To LigneTabProcedure
            For Col = 1 To Colonne_Source
                Sheets("Export-procedures").Cells(Ligne, Col).Value = TabProcedure(Ligne, Col)
            Next Col
        Next Ligne
       
        'ONGLET CAs
       
        Dim LigneTabCA As Double
    
        LigneTabCA = 2
        For Ligne = 1 To Ligne_Source
            If Sheets("Export-CAs").Cells(Ligne, ColCA) = Entite Then
                For Col = 1 To Colonne_Source
                    TabCA(LigneTabCA, Col) = Sheets("Export-CAs").Cells(Ligne, Col).Value
                Next Col
                LigneTabCA = LigneTabCA + 1
            End If
        Next Ligne
       
        Sheets("Export-CAs").Select
        Selection.ClearContents
     
        For Ligne = 1 To LigneTabCA
            For Col = 1 To Colonne_Source
                Sheets("Export-CAs").Cells(Ligne, Col).Value = TabCA(Ligne, Col)
            Next Col
        Next Ligne
    J'ai l'erreur sur la ligne en orange '1004 Erreur définie par l'application ou l'objet'. Est-ce que quelqu'un peut m'aider ? J'ai passé plusieurs jours mais je ne trouve pas ... Merci d'avance de votre aide.

  2. #2
    Membre Expert Avatar de jerome.vaussenat
    Homme Profil pro
    Formateur Bureautique
    Inscrit en
    Janvier 2011
    Messages
    1 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Formateur Bureautique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 629
    Par défaut
    Salut,

    Ce que je te conseille de faire c'est une petite séance de débeuguage ...

    Mets u point d'arret sur la ligne en orange.
    Pour ce faire, place ta souris a gauche en face de la ligne orange. Dans la zone grise qui fait 0.5cm de large.
    Après avoir cliqué tu dois voir apparaître un ... Gros point rouge.

    Pour tester je te conseille de le faire avec un tableau qui ne contiennent pas trop de données (10 lignes par exemple)
    Maintenant lance ta macro.
    Elle va s’arrêter avant d'exécuter la ligne avec le point d’arrêt.
    Place ta souris sur les noms des variables pour voir ce qu'elles contiennent.
    Appuie sur la touche F8 ou le Triangle en haut de VBE pour voir comment tes variables évoluent.

    Ne vas tu pas trop loin par rapport à la dimension de ton tableau TabCA(Ligne, Col) ?

    En procédant de cette manière tu vois fonctionne ton code et tu peux mieux cerner les problèmes.

    En espérant que cette procédure pourra t'aider.

    GG

  3. #3
    Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par défaut
    Bonsoir,

    merci d'avoir pris le temps de me répondre déjà.

    J'aurais du le préciser mais j'avait déjà mis des points d'arrêt avec variable espion mais le programme buggait en ligne 4200 sur 6558 par exemple mais toujours sur la même ligne de données. Pourtant donnée ne contient rien de différent par rapport à d'autres cellules ... Beaucoup de " à mon goût mais sur les cellules précédentes ça n'a pas bloqué ... Donc j'ai d'abord pensé à un dépassement de capacité de variable, puis de tableau mais non ....

    Je n'ai pas d'explication .. je continue de chercher mais j'avoue que le we risque de faire du bien avec une pause au cerveau car souvent il s'agit de détails mais qu'on ne voit plus à force de relire ....

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    A mon avis, le problème doit être parmi ces 3 éléments:
    -Ligne_Source
    -Ligne
    -LigneTabCA
    Mettre un espion sur ces 3 variables et ajoutez la ligne "if Ligne = 4199 then stop" avant "For Col =..." et continuer avec F8

    A part ça, les numéros de lignes étant des nombres entiers, vous pouvez les déclarer en long plutôt qu'en double.

    Cdlt

  5. #5
    Candidat au Club
    Femme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2020
    Messages : 3
    Par défaut
    Je regarde comme ça et vous redis.
    Merci

Discussions similaires

  1. [XL-2007] Erreur 1004 Vlookup VBA
    Par guillaumeboutarel dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 05/06/2018, 23h12
  2. [XL-2010] Erreur 1004 excel vba
    Par sosoboss dans le forum Excel
    Réponses: 5
    Dernier message: 24/02/2015, 16h31
  3. [XL-2010] Erreur 1004 EXCEL VBA
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/02/2014, 21h48
  4. [XL-2003] Erreur 1004 Macro VBA
    Par aminnio dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 22/03/2013, 11h52
  5. [VBA][EXCEL]Erreur '1004' avec "Application.Run"
    Par Ania dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2006, 10h50

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