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 :

VBA - Contenu illisible à l'ouverture du fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Service
    Inscrit en
    Février 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Service
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 1
    Par défaut VBA - Contenu illisible à l'ouverture du fichier
    Bonjour!

    Quand j'ouvre le fichier excel, le message d'erreur suivant apparait:

    "Désolé...Nous avons trouvé un problème dans le contenu de NomDuFichier.xlsm, mais nous pouvons essayer de récupérer le maximum de contenu. Si la source de ce classeur est fiable, cliquez sur Oui."

    Après avoir cliqué sur "Oui", un second message d'erreur apparaît:

    "Excel a pu ouvrir le fichier en supprimant ou en réparant le contenu illisible:
    - Enregistrements supprimés: Tri dans la partie /xl/worksheets/sheet2.xml"

    Excel me force ensuite à enregistrer une nouvelle version du fichier, si j'ai utilité le macro, lors de la réouverture de celui-ci.

    J'utilise un macro VBA pour trier automatiquement les données puis pour éliminer les dupliqués. Voici le code de Sheet2.xlm:

    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
     
    Private Sub CommandButton2_Click()
     
    'TRIER LES DONNÉES
    Dim FinalRow As Long
     
    'Find last used row in destination sheet
    FinalRow = Range("A" & Rows.Count).End(xlUp).Row
     
    With Worksheets("CTB").Sort
        .SortFields.Add Key:=Range("B1"), Order:=xlAscending
        .SortFields.Add Key:=Range("A1"), Order:=xlAscending
        .SortFields.Add Key:=Range("C1"), Order:=xlAscending
        .SortFields.Add Key:=Range("D1"), Order:=xlAscending
        .SortFields.Add Key:=Range("G1"), Order:=xlAscending
        .SetRange Range("A1:H" & FinalRow)
        .Header = xlYes
        .Apply
     
     End With
     
    '***ENLEVER LES DOUBLONS***
    Dim x As Integer
    Dim y As Integer
    Dim LastRow As Long
     
    'FIND THE LAST USED ROW IN A SHEET AND COPY PASTE BELOW IT
     
    'Find last used row in destination sheet
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
     
    For x = 2 To LastRow
     
    For y = LastRow To 2 Step by - 1
     
        If Worksheets("CTB").Range("A" & x).Value = Worksheets("CTB").Range("A" & y).Value _
            And Worksheets("CTB").Range("B" & x).Value = Worksheets("CTB").Range("B" & y).Value _
            And Worksheets("CTB").Range("C" & x).Value = Worksheets("CTB").Range("C" & y).Value _
            And Worksheets("CTB").Range("D" & x).Value = Worksheets("CTB").Range("D" & y).Value _
            And x <> y _
        Then
            Worksheets("CTB").Rows(y).Delete
            LastRow = LastRow - 1
     
        End If
     
    Next y
     
    Next x
     
    End Sub
    Quelqu'un peut-il m'aider à corriger le code pour éviter l'apparition de messages d'erreur?

    Merci!

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Je ne vois pas ce qui pourrait provoquer ça, je sais juste que VBA arrive à faire des choses impossibles et lorsqu'on rouvre le fichier, Excel ne comprend pas le contenu.
    Un exemple, si on crée une validation liste dans une cellule par VbE et que le contenu dépasse 255 caractères, il n'y a pas de déclenchement d'erreur, pas tant qu'on ne redémarre pas le fichier.
    Si tu essais de le faire "à la main", Excel produit une erreur de suite lors de la fermeture de la fenêtre de validation.

    Tu dois donc rechercher, à mon avis, la manip qui est impossible à faire "à la main".

    Autre chose, je te conseille de passer sur l'utilisation des tableaux structurés, ça te faciliterait l'écriture du code (la dernière ligne est connu par la structure par exemple, pas besoin de la chercher)

    Attention aussi à l'utilisation de Range sans préciser la feuille sur laquelle tu travailles.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. contenu illisible à l'ouverture fichier excel
    Par grimgrim dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/12/2015, 21h04
  2. [VBA-E]Procedure d'ouverture de fichiers xls
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/03/2007, 09h09
  3. [VBA-E] Masquer l'ouverture des fichiers
    Par alsimbad dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 14/02/2007, 16h32
  4. [VBA - Excel] Problème d'ouverture de fichier
    Par seiryujay dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/12/2006, 10h55
  5. (VBA-E) Erreur sur ouverture de fichier
    Par Stutak dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 27/08/2006, 15h11

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