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 :

Lors de la suppression de lignes, certaines lignes sont "oubliées"


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut Lors de la suppression de lignes, certaines lignes sont "oubliées"
    Bonjour,

    j'ai fais une macro qui fais la chose suivante:
    elle fait un parcoure total de la feuille "suivi des demandes", si la valeur de la colonne "T" est "TER" ou "ANU", elle copie la ligne de la colonne "A" à la colonne "AO" dans une autre feuille qui s'appelle "Demandes closes".

    le problème c'est qu'elle ne me retourne pas toutes les lignes qu'il faut, il faut que je clique sur le bouton qui déclenche la macro une deuxième fois, pour qu'elle me retourne une autre partie des lignes, et ainsi de suite.

    sachant que c'est pas un problème d'espace, car j'ai vérifié.

    voila le code:

    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
    Sub ExtractionListeCloturée()
     
    Application.DisplayAlerts = False
     
      Dim DerLig As Long, Lig As Long
      Dim FeuilDst As Worksheet, DerLD As Long
     
      ' Définir la valeur de l'Objet FeuilDst
      ' Nom de la feuille de Destination
        Set FeuilDst = Sheets("Demandes closes")
     
     
      ' Avec la Feuille "suivi des demandes"
      With Sheets("Suivi des demandes")
     
        ' Trouver la dernière ligne
        DerLig = .Range("A" & Rows.Count).End(xlUp).Row
     
        ' Pour chaque ligne
        For Lig = 3 To DerLig
     
     
        Select Case .Range("T" & Lig).Value
     
            'Si l'on a l'une des valeurs suivantes : "TER", "ANU"
            Case "TER", "ANU"
     
            'Colorer le numéro en bleu
            .Range("B" & Lig).Font.Color = vbBlue
     
            'Récupérer la dernière ligne de la feuille de destination
             DerLD = FeuilDst.Range("A" & Rows.Count).End(xlUp).Row
     
            'Inscrire les valeurs
            .Range("A" & Lig & ":AO" & Lig).Copy
            FeuilDst.Range("A" & DerLD + 1 & ":AO" & DerLD + 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            .Range("A" & Lig).EntireRow.Delete
     
            Case Else
     
        End Select
     
        Next Lig
     
      End With
     
    Application.DisplayAlerts = True
    End Sub

    svp si vous avez une idée de la cause, aidez moi.

    MERCI

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour,
    Pas facile sans le fichier initial, mais je chercherais du côté du 'delete row', etant donné que tu es en 'display alert false'
    Tu peux peut-être annulé cette ligne pour voir si tu as bien un message d'alerte.
    Si oui, facile à contourner avec un 'SendKeys'
    N'oubliez pas le si votre problème est solutionné.

  3. #3
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    c vrai j'ai mis la ligne du delete en commentaire, et ça m'a apporté toute les lignes.
    comment je peux contourner ce probleme exactement? merci

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 921
    Points
    55 921
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Lors d'une suppression de lignes, il faut toujours commencer par le bas du tableau et remonter, sinon, tu vas systématiquement louper la ligne qui suit une ligne supprimée et donc, si deux lignes devant être supprimées se suivent, tu vas louper la suppression de la deuxième.

    Tu dois donc avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Lig = DerLig to 3 Step -1
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre régulier
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Points : 79
    Points
    79
    Par défaut
    SUPERRRRRRRRRR Merci bcp Pierre Fauconnier pour la solution et l'information.
    et merci aussi à frandermeulen.

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

Discussions similaires

  1. [XL-2007] Suppression Auto de certaines lignes
    Par malababar dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 03/04/2010, 12h16
  2. [XL-2003] ma fonction retourne #VALEUR! lors de la suppression d'une ligne
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 18/12/2009, 18h17
  3. Erreur lors de la suppression de lignes vides
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 03/04/2008, 10h56
  4. [sed]Suppression de saut de ligne dans certains cas
    Par Anthony.Desvernois dans le forum Linux
    Réponses: 11
    Dernier message: 09/07/2007, 11h33
  5. Problème lors de la suppression de lignes
    Par Tintou dans le forum Langage SQL
    Réponses: 7
    Dernier message: 04/07/2007, 09h09

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