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 400 dans script VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2021
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Juin 2021
    Messages : 17
    Par défaut Code 400 dans script VBA
    Bonjour à tous,

    J'ai une macro VBA pour supprimer les lignes qui ne contiennent pas CCPACK dans la colonne 29 de mon fichier. Cela me remonte un code 400 sur la ligne en gras :

    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
    '*********************************
    ' DelLign <>CCPACK
    '*********************************
    Sub DelLign()
    
    
    Dim onglet As Worksheet
    Dim dernière_colonne As Long
    Dim dernière_ligne As Long
    Set onglet = Worksheets(1)
    
    dernière_ligne = onglet.Cells(Rows.Count, 1).End(xlUp).Row
    dernière_colonne = onglet.Cells(1, Columns.Count).End(xlToLeft).Column
    
    
    
        Range("AC2").Select
        onglet.Range(onglet.Cells(1, 1), onglet.Cells(dernière_ligne, dernière_colonne)).AutoFilter Field:=29, Criteria1:="<>*CCPACK*", Operator:=xlAnd
            Range(Selection, Selection.End(xlDown)).Select
        Selection.Delete Shift:=xlUp
        onglet.Range(onglet.Cells(1, 1), onglet.Cells(dernière_ligne, dernière_colonne)).AutoFilter Field:=29
        
    End Sub
    Pourriez-vous me dire quelle est mon erreur ?

    Je vous remercie par avance,

  2. #2
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    peut être tu appelle le code depuis un autre onglet donc j'ai juste onglet. devant chaque range
    aussi et si tu fais le filtre sur une seule colonne je ne voie pas pourquoi , Operator:=xlAnd
    essayer avec
    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
    Sub DelLign()
     
     
    Dim onglet As Worksheet
    Dim dernière_colonne As Long
    Dim dernière_ligne As Long
    Set onglet = Worksheets(1)
     
    dernière_ligne = onglet.Cells(Rows.Count, 1).End(xlUp).Row
    dernière_colonne = onglet.Cells(1, Columns.Count).End(xlToLeft).Column
        onglet.Range("AC2").Select
        onglet.Range(onglet.Cells(1, 1), onglet.Cells(dernière_ligne, dernière_colonne)).AutoFilter Field:=29, Criteria1:="<>*CCPACK*"
        onglet.Range(Selection, Selection.End(xlDown)).Select
        Selection.Delete Shift:=xlUp
        onglet.Range(onglet.Cells(1, 1), onglet.Cells(dernière_ligne, dernière_colonne)).AutoFilter Field:=29
     
    End Sub

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Salut,
    Sans connaître ton projet complet, j'ai juste créé un petit tableau ou j'ai inscrit "CCPACK' de facon aléatoire dans la colonne AC2 et des données dans les lignes adjacentes.
    J'ai fait tourner la macro ci-dessous et le résultat est un tableau où seules les lignes contenant CCPACK sont visibles les unes en dessous des autres.
    J'ai supposé que tu ne filtrais que la colonne AC2, et donc la remarque de BENNASR est pertinente et pas besoin de xlAnd.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub DelLign()
        Dim onglet As Worksheet
        Dim dernière_ligne As Long
        Set onglet = Worksheets(1)
        dernière_ligne = onglet.Cells(Rows.Count, 1).End(xlUp).Row
        onglet.Range(onglet.Cells(1, 29), onglet.Cells(dernière_ligne, 29)).AutoFilter Field:=1, Criteria1:="<>*CCPACK*"
        onglet.Range("AC2").Select
        Range(Selection, Selection.End(xlDown)).Select
        Selection.Delete Shift:=xlUp
        onglet.ShowAllData
    End Sub

Discussions similaires

  1. Integration code java dans script Javascript
    Par Anysse dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 14/08/2007, 00h34
  2. Réponses: 7
    Dernier message: 11/03/2007, 09h35
  3. Réponses: 2
    Dernier message: 08/03/2007, 10h50
  4. [PHP-JS] Inclure du code ASP dans un script PHP
    Par daquin dans le forum Langage
    Réponses: 7
    Dernier message: 04/09/2006, 18h20
  5. Utiliser du code SQL dans VBA
    Par a2line dans le forum Requêtes et SQL.
    Réponses: 25
    Dernier message: 30/05/2006, 14h53

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