[Excel] Compatibilité macro

Astrackt -  
wilfried_42 Messages postés 912 Statut Contributeur -
Bonjour,
J'ai créé une macro Excel qui doit trier et ranger un fichier Excel d'environ 4000 lignes. Cette macro fonction tres bien sous Excel 2007 mais ne fonctionne visiblement pas Sur Excel XP. (Message d'erreur : Espace pile insuffisant)

Est ce possible?
Comment rectifier cela?

Merci par avance
Configuration: Windows XP
Firefox 3.0.8

4 réponses

  1. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    Bonjour

    et si tu fournissais ta macro, espace pile insuffisant est une erreur vieille comme l'ordinateur (que je ne pensais pas revoir)...
    il semblerait que tu sortes de boucle de façon anormale ou tu utilises une récurrence illimitée qui provoque un empilement d'adresse qui ne sont jamais désempilées. Sans la macro on ne peut pas voir grand chose...
    0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    bonjour wilfied, Astrack

    Chez moi, (512mo RAM, XL2003) j'ai ce message vers environ 1200 récurrences d'une macro, ce n'est pas une question de dépilage
    Pour étudier le truc et pour le fun , j'avais écrit cette sub ( supprimer les lignes où il y a de marqué "mois de") à faire hurler les puristes !!!

    Sub supprimer_avec_condition()
    
    Application.ScreenUpdating = False
    
    On Error Resume Next
    lig = Columns(1).Find("mois de", Range("A65536"), , xlPart).Row
    Rows(lig).Delete
    If Err.Number > 0 Then: End
    
    supprimer_avec_condition
    
    End Sub


    le message "pile insuffisant" se produit alors que le nettoyage ne soit terminé
    Quoiqu'il en soit, VBA n'aime pas trop les récurrences...
    0
  3. wilfried_42 Messages postés 912 Statut Contributeur 245
     
    re: bonjour michel

    en voici une autre à laquelle je m'attends un peu plus
    For i = 1 to 2000
          for j = 1 to 15
               if cells(i,j) = date then 
                    .......
                    .......
                    goto suite
               end if
          next j
    suite:
    next i
    
    0