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 :

2 boucles imbriquées [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut 2 boucles imbriquées
    Bonjour
    Une première boucle supprime toutes les lignes différentes de "Essai" , je souhaite qu'elle tourne sur toutes les sheets du fichier sauf une sheet "Feuil1" boucle 2, mais l'imbrication des 2 boucles ne fonctionne pas, il faut que je sélectionne chaque sheet et que je lance le code pour supprimer les lignes inutiles, peut-être faut il déclarer une variable manquante?
    Merci pour l'aide

    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
    Sub Boucles()
     
     Dim sht As Worksheet
     For Each sht In Worksheets
      Debug.Print sht.Name
      If sht.Name <> "Feuil1" Then
     
     
       For n = Range("A65536").End(xlUp).Row To 1 Step -1
          If InStr(Range("A" & n), "Essai") = 0 Then Rows(n).Delete
        Next n
     
     
      End If
     Next
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En ajoutant l'objet sht devant les range et rows cela fonctionnera. Sans cela, le test se fait sur la feuille active.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For n = sht.Range("A65536").End(xlUp).Row To 1 Step -1
      If InStr(sht.Range("A" & n), "Essai") = 0 Then sht.Rows(n).Delete
    Next n
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    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
    Sub Boucles()
    Dim Sht As Worksheet
    Dim i As Long
     
    Application.ScreenUpdating = False
    For Each Sht In Worksheets
        With Sht
            If .Name <> "Feuil1" Then
                For i = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
                    If InStr(.Range("A" & i), "Essai") = 0 Then .Rows(i).Delete
                Next i
            End If
        End With
    Next Sht
    End Sub

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 120
    Par défaut
    Salut le forum

    En ajoutant un With
    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
     
    Sub Boucles()
     Dim n As Long
     Dim sht As Worksheet
     
    For Each sht In Worksheets
      With sht
        Debug.Print .Name
        If .Name <> "Feuil1" Then
          For n = .Range("A65536").End(xlUp).Row To 1 Step -1
            If InStr(.Range("A" & n), "Essai") = 0 Then .Rows(n).Delete
          Next n
        End If
      End With
    Next sht
    End Sub
    Mytå_Qc

  5. #5
    Membre éprouvé Avatar de Vadorblanc
    Profil pro
    Inscrit en
    Février 2008
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 309
    Par défaut
    Bonjour Corona, Mercatog, Mytå_Qc
    Un grand merci à tous les trois, chacune de vos proposition fonctionne.
    Très cordialement à vous.

    Mytå_Qc comment écris tu ton å dans ton nom ?

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

Discussions similaires

  1. Problème de boucles imbriquées
    Par Gnux dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 09/12/2005, 21h26
  2. boucle imbriquée
    Par zhoom dans le forum C
    Réponses: 4
    Dernier message: 07/11/2005, 14h10
  3. [Débutant]Boucle imbriquée avec des bornes différentes
    Par Hayato dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 29/08/2005, 17h23
  4. Boucles imbriquées
    Par Immobilis dans le forum ASP
    Réponses: 28
    Dernier message: 14/01/2005, 14h17
  5. [XSL]boucle imbriquée avec condition
    Par kor dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 11/01/2005, 15h19

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