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 :

Je n'arrive pas à exécuter ma macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut Je n'arrive pas à exécuter ma macro
    Bonjour,

    Je suis débutante en macro excel.
    Je n'arrive pas à exécuter ma macro.
    L'"erreur d'exécution 9: l'indice n'appartient pas à la sélection"
    Je ne comprends pas pourquoi...
    Merci beaucoup de votre aide.


    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
    Sub creaVilles_liste()
     
        'fichiers et onglet macro
        fichierMacroCrea = "Macro.xls"
        ongletmacro = "feuille1"
     
        'fichiers et onglet source
        fichiersource = "fichier1.xls"
        ongletsce = "feuille2"
     
     
        'adresse du dossier destination:
        dossierDest = "\\a\b\c\dossier\"
        nomFichDest = "fichier ville"
     
     
        Windows(fichiersource).Activate
        Sheets(ongletsce).Select
     
        Windows(fichierMacroCrea).Activate
        Sheets(ongletmacro).Activate
     
        Dim X As Integer
        Dim Texte1 As String
    '    Dim Texte2 As String
     
        X = 3
     
        Texte1 = Range("E" & X)
    '    Texte2 = Range("D" & X)
     
        Windows(fichiersource).Activate
     
        While (X <> 43)
     
    '    While (X <> 43)
     
        Windows(fichiersource).Activate
        Sheets(ongletsce).Select
     
    'vérifier que le champ sélectionné est bien
        Selection.AutoFilter Field:=22, Criteria1:="=*" & Texte1 & "*", Operator:=xlAnd
     
    '    Cells.Select
    '    Selection.Copy
    '
    '    Workbooks.Add
    '    ActiveSheet.Paste
    '
        Cells.Select
        Range("H1").Activate
        Selection.Copy
        Workbooks.Add
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
     
    'mise en forme allégée
        Columns("D:D").Select
        Selection.NumberFormat = "000000000000000"
        Columns("N:N").Select
        Selection.NumberFormat = "0000000000000"
        Columns("L:L").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("E:E").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("O:P").Select
        Selection.NumberFormat = "m/d/yyyy"
     
        Range("A1").Select
    '    ActiveWorkbook.Save
        ActiveWorkbook.SaveAs Filename:= _
            dossierDest & nomFichDest _
            & Texte1 & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
     
     
        Windows(fichierMacroCrea).Activate
        Sheets(ongletmacro).Activate
     
     
        X = X + 1
        Texte1 = Range("E" & X)
    '    Texte2 = Range("D" & X)
     
        Wend
     
     
    End Sub

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 814
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 814
    Par défaut
    Imposible de répondre directement, ça peut être à pas mal d'endroits différents.

    Pour d'abord trouver la ligne qui pose problème, ils te faut utiliser le mode pas-à-pas, comme décrit dans cet excellent didacticiel : mets un point d'arrêt au début de ton code, descends tout avec [F8], et tu verras ou est l'erreur.

    Sinon, ton code est optimisable. Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Columns("D:D").Select
        Selection.NumberFormat = "000000000000000"
        Columns("N:N").Select
        Selection.NumberFormat = "0000000000000"
        Columns("L:L").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("E:E").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("O:P").Select
        Selection.NumberFormat = "m/d/yyyy"
    s'écrira plus proprement(et rapidement à l'execution)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Columns("D:D").NumberFormat = "000000000000000"
        Columns("N:N").NumberFormat = "0000000000000"
        Columns("L:L").NumberFormat = "m/d/yyyy"
        Columns("E:E").NumberFormat = "m/d/yyyy"
        Columns("O:P").NumberFormat = "m/d/yyyy"

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut
    Merci de ta réponse.
    En effet, j'avais fermé le fichier source, c'est ça qui fait que ça n'a pas marché... ( Je débute pour de vrai! rire)

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2012
    Messages : 5
    Par défaut
    Parcontre, je rencontre une autre difficulté.

    Cette macro crée un fichier par ville ( colonne 22) et moi je voudrais la modifier pour quelle crée des fichiers par départements (colonne 18).

    Je ne comprend pas ce code alors j'ai tenté vraiment beaucoup de choses en vain...

    Est ce que quelqu'un y voit plus claire?
    J'aimerais au moins comprendre les lignes suivantes:
    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
     Dim X As Integer
        Dim Texte1 As String
     
        X = 3
     
        Texte1 = Range("E" & X)
    '    Texte2 = Range("D" & X)
     
        Windows(fichiersource).Activate
     
        While (X <> 43)
     
    '    While (X <> 43)
     
        Windows(fichiersource).Activate
        Sheets(ongletsce).Select
     
    'vérifier que le champ sélectionné est bien
        Selection.AutoFilter Field:=18, Criteria1:="=*" & Texte1 & "*", Operator:=xlAnd
     
    '    Cells.Select
    '    Selection.Copy
    '
    '    Workbooks.Add
    '    ActiveSheet.Paste
    '
        Cells.Select
        Range("H1").Activate
        Selection.Copy
        Workbooks.Add
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
     
    'mise en forme allégée
        Columns("D:D").Select
        Selection.NumberFormat = "000000000000000"
        Columns("N:N").Select
        Selection.NumberFormat = "0000000000000"
        Columns("L:L").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("E:E").Select
        Selection.NumberFormat = "m/d/yyyy"
        Columns("O:P").Select
        Selection.NumberFormat = "m/d/yyyy"
     
        Range("A1").Select
    '    ActiveWorkbook.Save
        ActiveWorkbook.SaveAs Filename:= _
            dossierDest & nomFichDest _
            & Texte1 & ".xls", FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
     
     
        Windows(fichierMacroCrea).Activate
        Sheets(ongletmacro).Activate
     
     
        X = X + 1
        Texte1 = Range("E" & X)
    Merci d'avance.

Discussions similaires

  1. J'arrive pas à exécuter ma procédue stockée??
    Par isicien dans le forum JDBC
    Réponses: 3
    Dernier message: 17/11/2008, 10h44
  2. Réponses: 1
    Dernier message: 06/11/2008, 12h27
  3. je veu pas exécuter les macro de exel.
    Par Dr_shaman dans le forum C#
    Réponses: 1
    Dernier message: 04/03/2008, 11h37
  4. j'arrive pas à excuter une requete.
    Par abdelkaderg54 dans le forum Débuter
    Réponses: 3
    Dernier message: 04/07/2007, 16h24
  5. débutant en VBA je n'arrive pas à finir ma macro excel
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/01/2005, 12h20

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