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 :

Code fonctionne mal


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Code fonctionne mal
    Bonjour à tous,

    Le code ci-dessous me permet d'afficher à l'ouverture d'un fichier toutes les factures non traitées au-delà de 10 jours.
    Les factures sont saisies dans la feuille "Arrivéefactures". Une copie des factures non traitées est faite et collée dans la feuille "Hors délais"
    Hors, pour le moment, ma feuille est vide mais le message m'indiquant qu'il y a des factures non traitées apparaît quand même.

    Je ne trouve pas d'où peut provenir ce bug. Pouvez-vous m'aider s'il vous plait ?
    Merci par avance

    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
     
    Sub Test1()
    Dim sht As Worksheet, shtHD As Worksheet
    Dim LastLig As Long, LastLigHD As Long, I As Integer
    Dim insuf As Boolean
     
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
     
    Set sht = Sheets("Arrivéefactures")
    Set shtHD = Sheets("Hors délais")
     
    With sht
        LastLig = .Range("T65536").End(xlUp).Row
        insuf = False
        For I = 2 To LastLig
            If .Range("T" & I).Value > .Range("S" & I).Value Then
                insuf = True
                Exit For
            End If
        Next I
     
        If insuf Then
            If MsgBox("Il y a des factures non traitées, voulez-vous les consulter ?", vbYesNo, "Avertissement") = vbYes Then
                shtHD.Visible = True
                shtHD.Select
                shtHD.Cells.ClearContents
                LastLigHD = 1
                For I = 2 To LastLig
                    If .Range("T" & I).Value > .Range("S" & I).Value Then
                        .Range("A" & I & ":R" & I).Copy shtHD.Range("A" & LastLigHD)
                        LastLigHD = LastLigHD + 1
                    End If
                Next I
            End If
        End If
    End With
    Set sht = Nothing
    Set shtHD = Nothing
     
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
     
     
    End Sub
    J'ai bien regardé dans toutes les colonnes si il y a des informations, mais toutes mes cellules sont vides, il n'y a rien dans la feuille, donc ce message ne devrait pas apparaître. C'est un mystère pour moi !!!!

  2. #2
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour,

    J'ai comparé le code avec celui mis en place pour 2011 et 2012, et il est identique en tous points. Sauf que pour 2013, bien que la feuille soit vide, le message apparaît.

    J'ai beau le tourner dans tous les sens, je ne comprends pas.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 46
    Par défaut
    Bonjour,

    Si la feuille est vide alors le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       LastLig = .Range("T65536").End(xlUp).Row
    doit donner LastLig = 1. A vérifier en debug.
    Sinon c'est mystérieux en effet à première vue.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu compare tes colonnes T et S et comme tu parles de dates ("au-delà de 10 jours") je suppose que les deux colonnes sont bien au format Date et que les valeurs réelles sont de type Double et non String ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If .Range("T" & I).Value > .Range("S" & I).Value Then
    Tu effectue cette comparaison mais où compare-tu les dates avec le Delta de 10 jours ?
    Ce ne serait pas plutôt comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    If .Range("T" & I).Value > (.Range("S" & I).Value + 10) Then
    Peux-tu poster un exemple de classeur ?

    Hervé.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour Theze, Bonjour enernaej,

    Les colonnes S et T ne contiennent que des "X". Le fichier pèse 1.50Ko, un peu gros à envoyer. Ce fichier existe depuis 2008 et jusqu'à ce jour je n'ai rencontré aucun problème, et puis tout d'un coup ça ne fonctionne plus.

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    As-tu essayé de placer un espion avec un arrêt si insuf = True ?
    Cela te permettrait de voir quelle ligne provoque le changement d'état de insuf.

    Cordialement.

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

Discussions similaires

  1. [Toutes versions] Code VBA qui fonctionne mal
    Par Eddy95500 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 07/07/2015, 19h10
  2. [XL-2007] code qui fonctionne mal
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/06/2012, 19h02
  3. [MySQL] code et bdd qui fonctionne mal
    Par arckaniann dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 10/05/2011, 19h20
  4. Un alert() en plus et mon code fonctionne, sans il foire :|
    Par narnou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/03/2006, 14h44
  5. un DELETE qui fonctionne mal
    Par HULK dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/02/2006, 19h59

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