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

Microsoft Office Discussion :

Code fonctionne en pas à pas, mais pas lors de l'exécution (F5)


Sujet :

Microsoft Office

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Code fonctionne en pas à pas, mais pas lors de l'exécution (F5)
    Bonjour,

    J'ai un petit soucis avec VBA.
    J'ai crée une macro qui marche bien en exécution pas à pas mais qui ne fonctionne pas avec une exécution automatique.
    Le principe de ma macro est de lire des données dans ma feuille excel les stocker dans un tableau puis recalculer la feuille et recommencer.
    A la fin ma macro copie mon tableau dans une plage dans ma feuille excel.

    Cela marche bien en mode pas à pas mais dans un mode d'exécution sans arrêt ma macro ne recalcule pas la feuille en question et mémorise la valeur du cas d'avant dans mon tableau .

    Est ce que quelqu'un peut m'aider?
    exemple.xlsmexemple.xlsm
    Merci à vous ..
    Merimar

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 475
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour,

    Un changement dans ton code en rouge.

    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
    Option Base 1
    Sub calcul_rente()
    
    ' declaration des variables
    'Dim annee_cal As Integer
    Dim limite As Integer
    Dim limite1 As Variant
    'Dim duree_rente As Long
    'Dim duree_restante As Long
    Dim Num_rentier As String
    'Dim type_rente As String
    'Dim age As Integer
    'Dim Proba_nonRev As Double
    'Dim Proba_revalo As Double
    Dim aa() As Double
    Dim tps1 As Date
    Dim tps2 As Date
    
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    
    tps1 = Time
    
    Feuil10.Range("E1") = tps1
    
    Feuil10.Activate
    
    ligne = 4
    debut = 3
    Feuil10.Range("J4:V7000").ClearContents
    
    Feuil10.Range("A" & ligne).Select
    x = Feuil10.Range("A4").End(xlDown).Row
    ReDim aa(1 To x, 1 To 23) As Double
    Do While ActiveCell <> ""
    
               'Récuparation de certaines variables
              Num_rentier = Feuil10.Cells(ligne, Rows(debut).Find("Rentier").Column)
              limite = Feuil10.Cells(ligne, Rows(debut).Find("Limite").Column)
              limite1 = Feuil10.Cells(ligne - 1, Rows(debut).Find("Limite").Column)
    
       ' recalcul de la table de mortalité
                   
        If limite1 <> limite Then
        Feuil4.Activate
          Feuil4.Range("E2").Value = limite
           Feuil4.Calculate
           SendKeys "{F9}"
          End If
          
              
              
         ' Calcul arrérage
        
           Feuil2.Activate
           Feuil2.Range("exemple").Value = Num_rentier
           Cells(1, 1) = ligne
           Feuil2.Calculate
            SendKeys "{F9}"
           
    ' copier résultats cas non revalorisation
     
      aa(ligne - debut, 1) = Feuil2.Range("age").Value
     aa(ligne - debut, 2) = Feuil2.Range("duree_effectuee").Value
     aa(ligne - debut, 3) = Feuil2.Range("duree_restante").Value
     aa(ligne - debut, 4) = Feuil2.Range("Arrerage_NonReval").Value
     
     dbtrois = debut - 1
     If ligne = 4 Then
       If aa(ligne - debut, 4) = aa(ligne - dbtrois, 4) And aa(ligne - dbtrois, 4) <> 0 Then
       Feuil2.Calculate
        SendKeys "{F9}"
       aa(ligne - debut, 4) = Feuil2.Range("Arrerage_NonReval").Value
       End If
     End If
     aa(ligne - debut, 5) = Feuil2.Range("arrerage_reel_NonRev").Value
     aa(ligne - debut, 6) = Feuil2.Range("arrerage_estime_NonRev")
     aa(ligne - debut, 7) = Feuil2.Range("BE_NonRev")
     aa(ligne - debut, 8) = Feuil2.Range("BE_reel_NonRev")
     aa(ligne - debut, 9) = Feuil2.Range("BE_estime_NonRev")
    
     aa(ligne - debut, 10) = Feuil2.Range("Cout_NonRev")
     aa(ligne - debut, 11) = Feuil2.Range("Cout_reel_NonRev")
     aa(ligne - debut, 12) = Feuil2.Range("Cout_estime_NonRev")
    
    ' copier résultats cas Revalorisation
     aa(ligne - debut, 13) = Feuil2.Range("Arrerage_Reval").Value
     aa(ligne - debut, 14) = Feuil2.Range("arrerage_reel_Rev").Value
     aa(ligne - debut, 15) = Feuil2.Range("arrerage_estime_Rev")
    
     aa(ligne - debut, 16) = Feuil2.Range("BE_Rev")
     aa(ligne - debut, 17) = Feuil2.Range("BE_reel_Rev")
     aa(ligne - debut, 18) = Feuil2.Range("BE_estime_Rev")
    
     aa(ligne - debut, 19) = Feuil2.Range("Cout_Rev")
     aa(ligne - debut, 20) = Feuil2.Range("Cout_reel_Rev")
     aa(ligne - debut, 21) = Feuil2.Range("Cout_estime_Rev")
     aa(ligne - debut, 22) = Feuil2.Range("prob_dece_nonrev")
     aa(ligne - debut, 23) = Feuil2.Range("prob_dece_revalo")
    
    For i = 1 To 23
    Debug.Print aa(ligne - debut, i)
    Next i
    ligne = ligne + 1
    Feuil4.Range("E2").FormulaLocal = "=SI(Type_rente=L1;117;annee_fin-annee_naiss)"
    Feuil10.Activate
    Range("A" & ligne).Select
    Loop
    
    Feuil10.Range(Cells(4, Rows(debut).Find("age").Column), Cells(UBound(aa, 1), Rows(debut).Find("P.décès theorique revalo").Column)).Select
    Feuil10.Range(Cells(4, Rows(debut).Find("age").Column), Cells(UBound(aa, 1), Rows(debut).Find("P.décès theorique revalo").Column)) = aa
    
    Range("A4").Select
    
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    
    tps2 = Time
    Feuil10.Range("E2") = tps2
    MsgBox "Les données ont été chargées de " & tps1 & " à " & tps2 & ". "
    End Sub

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Merci
    J'ai essayé le code en calcul automatique, le problème est que quand j’exécute la macro je perd la main sur excel? est ce que cela est normal? comment améliorer la vitesse d’exécution ? Merci pour votre aide

Discussions similaires

  1. Code qui fonctionne en pas à pas (F8), mais pas lors de l'exécution
    Par ANOVA dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/09/2014, 19h17
  2. Code qui fonctionne depuis un module mais pas depuis un workbook
    Par Gualino dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/10/2011, 19h48
  3. Réponses: 1
    Dernier message: 07/04/2006, 14h35
  4. Réponses: 9
    Dernier message: 08/03/2006, 13h27
  5. Réponses: 4
    Dernier message: 27/09/2005, 23h00

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