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 :

Tester l'existence d'une zone combinée [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Par défaut Tester l'existence d'une zone combinée
    Bonjour à tous,

    J'ai le code suivant qui est bon
    (en gros, il supprime les lignes en fonction de la présence ou non d'éléments en ligne C et I, en partant de la fin jusqu'au début)

    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 RowsDelete2()
    
    Dim derniereligne As Long, i As Long
    
    derniereligne = Sheets("SAISIE").Range("C" & Rows.Count).End(xlUp).Row
    
    Sheets("SAISIE").Select
    
    For i = derniereligne To 2 Step -1
    If ActiveSheet.Range("C" & i).Value <> "" And ActiveSheet.Range("I" & i).Value = "0" Then
     ActiveSheet.Shapes("Zone combinée " & i).Delete
     ActiveSheet.Rows(i).EntireRow.Delete
    End If
    Next i
    
    End Sub
    Simplement sur certaines de ces lignes il existe une zone combinée que je veux supprimer (elle porte le numéro de ligne i et devrait être supprimé par le code souligné).

    Mais comme ces zones combinées ne sont pas présentes à chaque fois, il me renvoie un message d'erreur, dès le test des premiers lignes qui ne contiennent justement pas de zones combinées, puisque pour excel ces zones sont introuvables.

    Il faudrait donc que je teste l'existence / la présence d'une zone combinée sur la ligne i (If ?) et qu'ensuite si présence il y a, le code souligné s'exécute.
    Je ne sais pas gérer cette situation.


    Merci de votre aide.

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé 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 : 72
    Localisation : France

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

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

    Il ne faut pas trop abuser de ce genre de méthode, mais tu peux neutraliser l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    On Error resume next
        ActiveSheet.Shapes("Zone combinée " & i).Delete
    On error goto 0
    Sinon, tu devras créer une fonction fShapeExists, qui utiliseras aussi la gestion d'erreurs.

    Cordialement,

    PGZ

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 55
    Par défaut
    Super PGZ.
    Ca marche niquel.

    Merci de ton aide!

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/08/2005, 14h24
  2. tester l existance d une table
    Par mick84m dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/04/2005, 11h24
  3. [JDBC]Tester l'existence d une table
    Par juflata dans le forum JDBC
    Réponses: 7
    Dernier message: 29/06/2004, 15h27
  4. [ADO] Tester l'existence d'une table
    Par nd25 dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 05/09/2002, 13h55

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