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 :

Bug sur macro parcourir les feuilles [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut Bug sur macro parcourir les feuilles
    Bonjour le forum
    J' ai construit une procedure qui est censé parcourir toutes les feuilles et sauf quelques unes et me supprimer les lignes si en colonne A une cellule contient le guillemet caractere 34.
    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
    Dim Wksht As Worksheet
    Dim I As Long
    Dim Plage As String
    Dim ChCar As String
     
    ChCar = Chr(34)
     For Each Wksht In Worksheets
        If Wksht.Name <> "Accueil" And Wksht.Name <> "MPage1" And Wksht.Name <> "Resultat" Then 'attention aux noms de feuilles avec accent
            With Wksht
               For I = 1 To 65536
                    If InStr(1, cells(I, 1).Value, ChCar) <> 0 Then
                     Plage = I & ":" & I
                     Rows(Plage).Delete Shift:=xlUp
                     I = I - 1
                    End If
                Next I
            End With
        End If
    Next Wksht
    La macro ne parcourt pas toutes les feuilles, meme probleme avec une autre macro basé sur le mem principe pour la suppression de lignes si cellules vides. Je ne vois pas ou se situe le probleme.
    Quelqu' un peut il me donner une idée svp
    Aladin

  2. #2
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Tu peux essayer de remplacer la ligne principale par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Rows(Plage).Delete Shift:=xlUp
    avec un point devant Row, pour bien dire qu'il s'agit des lignes de la feuille WkSht et non pas celles de la feuille active.

    Cordialement,

    PGZ

  3. #3
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut
    Bonjour Pierre
    Merci d' avoir répondu à mon post, la modifcation n' a donné aucun résultat, la situtaion est toujours la meme
    Aladin

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Aladin,

    Il y a aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If InStr(1, .cells(I, 1).Value, ChCar) <> 0 Then
    Avec un point devant Cells, comme pour Range.

    As-tu plusieurs classeurs ouverts?

    Cordialement,

    PGZ

  5. #5
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut
    Merci Pierre, Suite à la modif tout est OK. Comme je le precisais dans le premier Post, j' ai aussi une dexuieme macro de suppression de ligne si cellule vide en colonne A, basé sur le meme principe de parcours des feuilles qui ne fonctionne pas.
    Le code suppression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:A65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete '
    Sur une feuille ca va mais parcourir toutes les feuilles Ko
    Aladin

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Septembre 2013
    Messages
    783
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2013
    Messages : 783
    Points : 1 562
    Points
    1 562
    Par défaut
    Bonjour,

    Si il n'y a rien de défini pour la feuille, c'est celle active qui est prise en compte pour le Range. Donc je vous suggère de bien la spécifier, du type:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each Wksht In Worksheets
               Wksht.Range("A1:A65536").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Next Wksht

  7. #7
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 352
    Points : 150
    Points
    150
    Par défaut
    Bonsoir le forum
    Merci Pierre, Vincent pour les corrections apportées, qui me serviront plus tard. Tout est OK

    Aladin

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

Discussions similaires

  1. [WD15] Bug sur SQL et les rubriques tableaux
    Par Arnaud B. dans le forum HyperFileSQL
    Réponses: 5
    Dernier message: 19/11/2012, 15h07
  2. [XL-2003] macro impossible sur toutes les feuilles
    Par alucard_xs dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 04/06/2012, 22h23
  3. [SSIS 2K8] Parcourir les feuilles d'un classeur Excel
    Par patriceharel dans le forum SSIS
    Réponses: 3
    Dernier message: 10/02/2009, 16h34
  4. Comment annuler les effets d'une macro sur les feuilles?
    Par jolzeviking dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/06/2008, 14h29

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