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

Access Discussion :

[VBA][EXCEL] pb suppression ligne


Sujet :

Access

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut [VBA][EXCEL] pb suppression ligne
    hello ,

    je souhaite faire une fonction qui supprime ma ligne si :

    dans macellule(i,j).value est vide

    et si macellule(i,j).value<>regex ( code) donc voila ma fonction

    toutes les lignes ne sont pas supprimées qui correspondent à mes criteres de suppression, je ne sais pas trop pourquoi , peut être que quelqu un pourra me dire mon erreur

    enfin voila ma fonction :

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
     
    Public Sub SuppLigne()
     
            'declaration de variables
            '------------------------
     
            Dim i As Integer ' num ligne
            Dim j As Integer ' num colonne
            Dim code As String
            Dim moncode As String
     
     
            Dim reg As New VBScript_RegExp_55.RegExp  ' declaration d un object vbscript regex
     
     
            'assignation des valeurs
            '-----------------------
     
            j = colonB ' j = colonB je fais appel a ma constante ( voir dans module constante )
     
     
             'expression reguliere
             '--------------------
     
             Set reg = New VBScript_RegExp_55.RegExp ' instance de vbscript regex
     
     
             reg.Pattern = "^J[A-G]\d{5}" ' expression reguliere format code
     
            '=============================================================================='
            '= explication de l'expression reguliere :                                    ='
            '= 1ere lettre : J                          => ^J                             ='
            '= 2eme lettre : lettre entre A et G        => [A-G]                          ='
            '= 5 chiffres :                             => \d{5}                          ='
            '=============================================================================='
     
     
            Debug.Print reg.Pattern ' affiche dans  la fenetre de debuggage
     
     
     
     
     
     
            For i = debut To fin  ' de ligne 1 a  ligne 553 parcours la sheet
            ' ( debut et fin constante voir module constante )
     
                Debug.Print i
                moncode = Cells(i, j).Value 'code=la valeur de cette cellule
                code = Replace(moncode, " ", "") 'si moncode dans la string a un espace alors il remplace " " par ""
                Debug.Print code ' affiche dans  la fenetre de debuggage
     
                If Cells(i, j).Value = "" Then
     
                Debug.Print reg.Test(code) ' affiche dans  la fenetre de debuggage
     
                Rows(i).Delete ' si different du code alors je supprime la ligne
     
     
                Else
     
     
                If (reg.Test(code) = False) Then ' si le code n'est pas du format de la regex alors sinon passe au suivant
     
     
                    Debug.Print reg.Test(code) ' affiche dans  la fenetre de debuggage
     
                    Rows(i).Delete ' si different du code alors je supprime la ligne
     
                Else
     
     
                End If
                End If
     
     
            Next i
     
            MsgBox ("lignes vides ou sans code ( JA10110 ) supprimées ( empty rows or without codes deleted ) ")
     
     
     
    End Sub

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 342
    Points : 4 298
    Points
    4 298
    Par défaut
    Salut,

    j'ai eu le meme soucis a plusieurs moments que j'utilisait Excel et la suppression de ligne

    En fait pour supprimer des lignes, il ne faut pas faire une boucle en commencant au début de ton fichier mais il faut partir de la fin

    Ta boucle deviendrait donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = fin to debut step -1
    ....
    next i
    Vala j'espère t'avoir aidé

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 344
    Points : 158
    Points
    158
    Par défaut
    oui j ai essayé ca fonctionne

    par contre j ai mis une condition if cells(i,j).value=0 alors je supprime la ligne mais ca fonctionne pas

Discussions similaires

  1. [VBA Excel] Pb Suppression de lignes non filtrées
    Par Filippo dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/09/2008, 11h55
  2. [VBA-Excel] copier des lignes de données d'un fichier à un autre
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/07/2006, 10h17
  3. [VBA EXCEL] Copier des lignes
    Par ben7777 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/07/2006, 18h22
  4. [VBA][Excel]supprimer des lignes vierges
    Par Angel79 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/01/2006, 13h17
  5. [VBA][Excel]Insérer une ligne
    Par loverdose dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/02/2005, 16h27

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