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 lors de l'exécution d'une procédure [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Erreur lors de l'exécution d'une procédure
    Bonjour,

    Cette sub fonctionnait parfaitement sous office 2000, et suite à migration vers office 2003, impossible d'éxecuter la sub, pas de probléme pour l'accés au classeur lié, mais probleme lors de la récupération des données, en fait execution de la sub "Transfert". Je ne vois pas le problème . Merci de m'apporter 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
    Dim Mle, XCol, XLig, u_b As Integer
    Dim Xfeuille As String
    Dim XClasseur As Variant
     
    Sub FlemeEngagement()
    On Error GoTo GestErreur
    With Selection
    For I = 1 To Selection.Rows.Count
    Mle = Selection.Cells(I, 1).Value
    Set XClasseur = Application.ActiveWorkbook
    XCol = ActiveCell.Column
    XLig = ActiveCell.Row + I - 1
    Xfeuille = ActiveCell.Worksheet.Name
        Windows("BASE 4RE.XLS").Activate
        Sheets("4°RE").Select
    Columns("I").Find(Mle, , xlWhole).Activate
    u_b = ActiveCell.Row
    Transfert
    GestErreur:
    Workbooks(XClasseur.Name).Activate
    Next I
    End With
    End Sub
    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
    Sub Transfert()
    Grade = Cells(u_b, 5)
    Name1 = Cells(u_b, 6)
    Name2 = Cells(u_b, 7)
    Mle1 = Cells(u_b, 9)
    MleRec = Cells(u_b, 8)
    Cie = Cells(u_b, 2)
    BSN = Cells(u_b, 21)
    NeLe = Cells(u_b, 23)
    VILLE = Cells(u_b, 24)
    DEPARTEMENT = Cells(u_b, 25)
    PAYS = Cells(u_b, 26)
    fils = Cells(u_b, 27)
    Mere = Cells(u_b, 28)
    Cheuveux = Cells(u_b, 29)
    Yeux = Cells(u_b, 30)
    Taille = Cells(u_b, 31)
     
    Workbooks(XClasseur.Name).Activate
    With Worksheets(Xfeuille)
        .Cells(XLig, XCol - 4) = Grade
        .Cells(XLig, XCol - 2) = Name1
        .Cells(XLig, XCol - 1) = Name2
        .Cells(XLig, XCol) = Mle1
        .Cells(XLig, XCol + 1) = MleRec
        .Cells(XLig, XCol - 5) = Cie
        .Cells(XLig, XCol + 7) = BSN
        .Cells(XLig, XCol + 2) = NeLe
        .Cells(XLig, XCol + 3) = VILLE
        .Cells(XLig, XCol + 5) = fils
        .Cells(XLig, XCol + 6) = Mere
        .Cells(XLig, XCol + 8) = Cheuveux
        .Cells(XLig, XCol + 9) = Yeux
        .Cells(XLig, XCol + 14) = Taille
    End With
     
    If PAYS = "FRANCE" Then
    Worksheets(Xfeuille).Cells(XLig, XCol + 4) = DEPARTEMENT
    Else: Worksheets(Xfeuille).Cells(XLig, XCol + 4) = PAYS
    End If
     
    Select Case Grade
    Case Is = "MAJ"
    Grade1 = "Major"
    Case Is = "ADC"
    Grade1 = "Adjudant-chef"
    Case Is = "ADJ"
    Grade1 = "Adjudant"
    Case Is = "SCH"
    Grade1 = "Sergent-chef"
    Case Is = "SGT"
    Grade1 = "Sergent"
    Case Is = "CCH"
    Grade1 = "Caporal-chef"
    Case Is = "CPL"
    Grade1 = "Caporal"
    Case Is = "1CL"
    Grade1 = "Soldat de 1ère classe"
    Case Is = "LEG"
    Grade1 = "Soldat"
    End Select
     
    Worksheets(Xfeuille).Cells(XLig, XCol - 3) = Grade1
     
    End Sub

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    Plutot que de passer par des variable pas déclarées tu peux directement faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbooks(XClasseur.Name).Worksheets(Xfeuille).Cells(XLig, XCol - 4)=workbook("Premierclasseur.xls").worksheet("nomdelonglet").Cells(u_b, 5)
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut pacocnec et le forum
    ... mais probleme lors de la récupération des données, en fait execution de la sub "Transfert". Je ne vois pas le problème
    Nous non plus, on ne voit pas le problème! Qu'est-ce qui se passe ? Problème n'est pas une panne répertorirée dans ma boule de cristal

    Juste une remarque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim Mle, XCol, XLig, u_b As Integer
    Dim Xfeuille As String
    Dim XClasseur As Variant
    Tu déclares donc Mle, XCol, XLig en Variant. Est-ce volontaire ?

    u_b est déclaré en Integer (j'espère que c'est en variable globale sur un module général). Comme elle a trait à des lignes, j'espère que tu restes dans la limite des 32735
    Et bienvenue

    Edit :
    Je viens de jeter un oeil sur la macro, mais je ne comprends pas ta gestion d'erreur. : faire une gestion dans la boucle en ne traitant pas l'erreur demanderait plutôt, à mon avis, "on error Resume gesterreur".
    A+

  4. #4
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Probléme procédure résolu
    Merci le problème concernait bien la déclaration des variables, désolé de vous avoir préssé, mais je ne suis pas à l'origine du code, mais celui qui l'utilise. Merci encore et merci au forum, désolé pour l'approche maladroite.
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur lors de l'exécution d'une procédure stockée
    Par sab_info dans le forum Développement
    Réponses: 7
    Dernier message: 15/03/2013, 17h27
  2. Erreurs lors de l'exécution d'une procédure
    Par vanesa dans le forum PL/SQL
    Réponses: 2
    Dernier message: 05/01/2009, 18h48
  3. Erreur lors de l'exécution d'une requête avec ADOquery
    Par doolar dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2008, 14h26
  4. [PostgreSQL] [PostGreSQL] Obtention d'une erreur lors de l'exécution d'une requête
    Par cbombabill dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 06/03/2008, 12h56
  5. Erreur lors de l'appel d'une procédure stockée
    Par aperrin dans le forum JDBC
    Réponses: 1
    Dernier message: 04/01/2008, 14h54

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