Excel a rencontré un problème et doit fermé

SABHARZALI -  
SABHARZALI Messages postés 21 Statut Membre -
Bonjour à tous
J'ai vraiment du mal à utiliser mon classeur excel 2007 sous windows XP et qui contient des macros.
en fait chaque fois que j importe des modifications sur mon classeur et que j'enregistre ce dernier j'ai ce message d'erreur "excel a rencontré un problème et doit fermé" et bien évidemment je perds toutes les modifications. c'est vraiment pénible surtout qu'il s'agit d'un classeur de gestion de vente et suivi de paiement clients et fournisseur.
a titre d infos j utilise d'autres classeurs ne contenant pas des macros et ils fonctionnent correctement.
Merci pour votre aide.

5 réponses

  1. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Bonjour,

    Il s'agit d'un problème de syntaxe dans une macro qui bloque Excel, mais il est impossible d'aller plus loin dans la réponse sans connaitre le code et voir quelle ligne du code se met en erreur?

    lorsque le code plante vas faire un tour dans le visual basic et regarde quelle ligne est en jaune
    0
  2. SABHARZALI Messages postés 21 Statut Membre
     
    merci pour votre attention.
    lorsque le problème figure, j ai le message d erreur ensuite excel se ferme automatiquement et je n ai pas un visuel sur le code VBA qui provoque le problème
    0
  3. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Il faudrait voir tes codes ou avoir ton fichier pour en dire plus
    0
    1. SABHARZALI Messages postés 21 Statut Membre
       
      Option Explicit

      Sub listenonencaisser()
      Dim sh As Object
      Dim shrec As Worksheet
      Dim va As Variant, li As Integer
      Set shrec = Sheets("RECAP")
      shrec.Range("A2:C" & shrec.Cells(Rows.Count, 1).End(xlUp).Row + 1).Clear
      li = 2
      For Each sh In Worksheets
      If sh.Name <> "RECAP" And sh.Name <> "paramètres" Then
      For Each va In sh.Range("F13:F" & sh.Cells(Rows.Count, 1).End(xlUp).Row)
      If va <= Date And va.Offset(0, 7) <> "ENCAISSE" Then
      shrec.Cells(li, 1) = sh.Cells(1, 4).Value
      shrec.Cells(li, 2) = va.Offset(0, -4).Value
      shrec.Cells(li, 3) = va.Offset(0, 3).Value
      li = li + 1
      End If
      Next va
      End If
      Next sh
      Set shrec = Nothing
      End Sub
      0
    2. SABHARZALI Messages postés 21 Statut Membre
       
      Option Explicit

      Private Sub ComboBox1_Change()
      Sheets(ComboBox1.Value).Select
      UserForm1.Hide
      End Sub
      Private Sub UserForm_Initialize()
      ListerOnglets2
      ComboBox1.ListIndex = 0
      End Sub
      Sub ListerOnglets2()
      ' Liste les onglets de type "Feuille" et "Graphique"
      Dim i As Integer
      For i = 1 To Sheets.Count
      ComboBox1.AddItem (Sheets(i).Name)
      Next i
      End Sub
      0
  4. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    Il manque les codes associés à l'Userform

    en attendant remplace UserForm1.Hide par Unload Me et teste voir
    0
    1. SABHARZALI Messages postés 21 Statut Membre
       
      j ai eu erreur d exécution '91'
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Mike-31 Messages postés 18405 Date d'inscription   Statut Contributeur Dernière intervention   5 147
     
    Re,

    J'ai testé ton code sans problème, peut être un problème de format de cellule mais la encore il faudrait voir le fichier que tu peux alléger et anonymiser que tu peux joindre à partir de ce lien

    https://www.cjoint.com/

    regarde cette ligne dans ton code le Offset(0,-4), es tu sur de ce -4
    shrec.Cells(li, 2) = va.Offset(0, -4).Value
    0