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 :

Problème avec code qui ne fonctionne pas [XL-2003]


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 : 63
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut Problème avec code qui ne fonctionne pas
    Bonjour à tous,

    Dans le fichier joint, j'ai un code Vba qui est censé m'afficher une alerte dès l'ouverture du fichier en cas de dépassement de délai dans le traitement des factures.
    Le délai de traitement ne doit pas dépasser 10 jours. Hors dans mon tableau (feuille Arrivée), le dépassement est de plus de 40 jous donc l'alerte devrait s'actionner, une copie des lignes concernées devraient être faite dans la feuille "Hors délais", mais cela ne fonctionne pas.

    Pouvez-vous regarder mon code et me dire ce qui ne va pas s'il vous plait ?
    Il se trouve dans ThisWorkBook
    Merci par avance
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Points : 723
    Points
    723
    Par défaut
    Bonjour,

    Je viens de modifier ta macro. Cela fonctionne maintenant (cf. fichier joint).

    Pièce jointe 45935

    Tu utilisais des tableaux bien compliqués pour ce qui est à faire, je pense.

    A bientôt.

    EDIT : Je n'ai pas cherché à comprendre comment marchait ton copier/coller. Par contre, ton problème (insuf ne passant pas à true) venait d'une erreur d'étourderie de ta part En effet, lorsque tu faisais ta comparaison, tu as mis "<" au lieu de ">"
    DeaD

  3. #3
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour NEC14 DeaD78 le forum comme j ai compris en déja éviter de mettre le code dans ThisWorkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Explicit
    Private Sub Workbook_Open()
    Macro1
    End Sub
    je recopie pas la deuxieme ligne elle est deja dans Sheets("Hors délais") plus simple tu est parti sur des tableaux je suis reste dessus pas forcement utile pour si peu enfin..
    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
    option explicit
    Sub Macro1()
    Dim t As Variant, t2() As String, X As Long, i As Long, k As Long, z As String
    On Error Resume Next
    Application.ScreenUpdating = False
    Sheets("Hors délais").Range("a2:m" & Range("a65536").End(xlUp).Row).ClearContents
    t = Sheets("Arrivée factures").Range("a3:m" & Range("a65536").End(xlUp).Row)
     X = 1
    For i = 1 To UBound(t)
    If t(i, 13) > 10 Then
    z = z & "facture n°  " & t(i, 2) & Chr(10)
    ReDim Preserve t2(1 To 13, 1 To X)
    For k = 1 To 13
    t2(k, X) = t(i, k)
    Next k: X = X + 1: End If: Next i
    Sheets("Hors délais").Range("a65536").End(xlUp)(2).Resize(UBound(t2, 2), UBound(t2, 1)) = Application.Transpose(t2)
    Erase t, t2: MsgBox "Dépassement de délais pour la (les) facture(s) " & Chr(10) & z, vbInformation, "Avertissement"
    End Sub
    SALUTATIONS

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 63
    Points : 48
    Points
    48
    Par défaut
    Salut,

    pourquoi ne simplifie tu pas ton code de façon radicale, en scruptant simplement ta colonne de dépassement ?
    Un truc du style :
    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
     
     = 3 'première ligne de données du tableau arrivées
    j = 3 'première ligne du tableau hors delais apres effacement des antériorité...
     
    While Worksheets("Arrivée factures").Cells(i, 13).Value <> ""
        If Worksheets("Arrivée factures").Cells(i, 13).Value > 10 Then
            insuf = True
            Worksheets("Arrivée factures").Cells(i, 13).EntireRow.Copy Worksheets("Hors délais").Rows(j).EntireRow
              j = j + 1
        End If
    Wend
     
            If insuf = True Then
                MsgBox "REtard de traitement signalé!"
                Worksheets("Hors délais").Select
            End If
    J'ai pas vérifier le code...

  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 : 63
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Merci DeaD78 et à tous les autres pour votre aide.

    Laetitia ton code est intéressant mais pas adapter à ce que je veux faire, car j'ai besoin d'éditer la feuille contenant les dépassements de délais. Il est vrai que je ne l'avais pas précisé dans mon message.

    Encore milles mercis

    Bon week-end à tous
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

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

Discussions similaires

  1. Problème de addEventListener qui ne fonctionne pas avec un attachMovie
    Par jeremie74 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 27/09/2007, 10h47
  2. [Language] Code qui ne fonctionne pas
    Par kevinf dans le forum Langage
    Réponses: 2
    Dernier message: 21/11/2006, 21h08
  3. Code qui ne fonctionne pas
    Par maxti dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 22/10/2006, 11h45
  4. Problème de htmlspecialchars qui ne fonctionne pas
    Par jeremie74 dans le forum Langage
    Réponses: 3
    Dernier message: 31/07/2006, 17h40
  5. Code qui ne fonctionne pas sur Mac
    Par malbaladejo dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/01/2005, 11h08

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