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 :

Supprimer des lignes dans plusieurs feuilles de calcul


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Supprimer des lignes dans plusieurs feuilles de calcul
    Bonjour le forum,

    dans un fichier excel contenant 10 feuilles, je supprime dans 6 de ces feuilles les lignes (entre 1 et 2050) qui ne comprennent pas le code BE1 en colonne H. Je fais cela dans chaque feuille via un code que j'ai récupéré sur la toile (mes excuses de ne pas me souvenir du nom du site et du nom de l'auteur du code). Ce code est le suivant:
    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
    Sub KillLigne()
     Dim Valeur As String, Colonne As Integer, FirstLine As Long, LastLine As Long
         ' Valeur      : valeur à comparer au contenu de la cellule
         ' Colonne    : colonne où se trouve la valeur à vérifier
         ' FirstLine  : première ligne à vérifier
         ' LastLine   : dernière ligne à vérifier
     
         Dim lngL As Long
     
         Application.ScreenUpdating = False
         Application.DisplayAlerts = False
         For lngL = 2050 To 1 Step -1
              If Cells(lngL, 8).Value <> "BE1" Then
                   Rows(lngL).Delete Shift:=xlShiftUp
              End If
         Next lngL
         Application.DisplayAlerts = True
         Application.ScreenUpdating = True
    End Sub
    J'aimerais transformer ce code pour que automatiquement il passe dans les feuilles 1,2 3 4 5 et 6 du fichier excel et que donc je ne doive le lancer qu'une seule fois plutot que 6 fois.
    Pourriez vous m'aider ?
    D'avance je vous remercie.
    Djepi.

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Il te suffit juste de boucler sur les feuilles

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    For i = 1 to 6
         ActiveWorkbook.Sheets(i).Select
         For lngL = 2050 To 1 Step -1
              If Cells(lngL, 8).Value <> "BE1" Then
                   Rows(lngL).Delete Shift:=xlShiftUp
              End If
         Next lngLNext
    Next i

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2010
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Bonjour PC75

    merci pour ta réponse.
    En fait j'ai été un peu vite dans la description de ce que je veux faire. Mes feuilles sont bien les 6 premières dans le fichier mais elles ne s'appellent pas feuille1, 2,...6. Elles portent des noms comme "facin", "facout", "ncin", "ncout",
    "avin" et "avout". Ton code est-il bon à condition que les feuilles soient les 6 premières (à gauche) ou bien faut-il modifier le code pour nommer chacune des 6 feuilles par son nom?
    Pardon si la question est basique mais je suis très très débutant.
    Merci beaucoup d'avance.
    Djepi

  4. #4
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Re,

    ActiveWorkbook.Sheets(i).Select sélectionnera la feuille correspondant à la valeur de i, quelque soir son nom.

    Ainsi, si i vaut 1, ActiveWorkbook.Sheets(i).Select sélectionnera la première feuille.
    Cela évite d'avoir à faire ActiveWorkbook.Sheets("facin").Select

Discussions similaires

  1. Réponses: 10
    Dernier message: 24/02/2014, 15h22
  2. Supprimer des lignes dans une feuille Excel
    Par thefutureisnow dans le forum VB.NET
    Réponses: 2
    Dernier message: 04/04/2011, 13h48
  3. Réponses: 5
    Dernier message: 11/08/2008, 15h25
  4. Réponses: 3
    Dernier message: 21/07/2006, 13h22
  5. [VBA-E]Supprimer macro (code dans code feuille de calcul)
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 07/04/2006, 16h37

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