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 :

Suppression plage colonne selon critères [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Points : 171
    Points
    171
    Par défaut Suppression plage colonne selon critères
    Bonjour à tous

    Je souhaiterai supprimé des colonne qui sont comprises entre deux bornes.
    Chaque bornes correspond à un texte précis dans la ligne 1


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    i = 1
    limiteMin = 0
    limiteMax = 0
    For i = 1 To nombreColonne
        Cells(1, i).Select
        If Cells(1, i) = "xxx" Then
            limiteMin = i
        End If
        If Cells(1, i) = "yyy" Then
            limiteMax = i
        End If
    Next i


    Ensuite je récupere les bornes et tente de supprimé la plage avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("limiteMin:limiteMax-3").Delete Shift:=xlToLeft


    Mais sans succès.
    J'ai essayé diverses méthodes, mais je pense que c'est un probleme de syntaxe

    L'erreur est :
    Erreur d'execution 1004
    La methode Range de l'objet _Global à echoué

    En mode débogague ma ligne Range correspond à :

    qui sont bien les colonnes que je souhaite supprimé.

    Votre aide sera la bienvenue

    Merci
    Qui ne tente rien, ne tente rien !

  2. #2
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    une poposition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim c As Range
    Dim Deb As String, Fin As String
     
    Application.ScreenUpdating = False
    With Sheets("Feuil1")                                                'à adapter
        Set c = .Rows(1).Find("xxx", LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then Deb = c.Address
        Set c = .Rows(1).Find("yyy", LookIn:=xlValues, lookat:=xlWhole)
        If Not c Is Nothing Then
            If c.Column > 3 Then Fin = c.Offset(0, -3).Address
            Set c = Nothing
        End If
        If Len(Deb) * Len(Fin) > 0 Then .Range(Deb & ":" & Fin).EntireColumn.Delete
    End With
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Points : 171
    Points
    171
    Par défaut
    Merci pour votre réponse rapide.

    Après l'avoir adapter, le code fonctionne.

    J'ai aussi réussi avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Cells(1, limiteMin), Cells(1, limiteMax - 3)).EntireColumn.Delete
    Merci encore
    Qui ne tente rien, ne tente rien !

  4. #4
    Expert éminent sénior 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
    Points : 31 877
    Points
    31 877
    Par défaut
    Une précision quand même, utiliser la méthode Find est plus rapide que de faire une boucle sur ta ligne.
    Bon, dans ce cas ce n'est pas très significatif mais c'est l'idée. Toujours préférer les méthodes directes aux boucles si elles donnent le même résultat.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  5. #5
    Membre habitué
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2010
    Messages
    149
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2010
    Messages : 149
    Points : 171
    Points
    171
    Par défaut
    Bon à savoir pour l'avenir.

    Merci encore
    Qui ne tente rien, ne tente rien !

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

Discussions similaires

  1. Suppression lignes vides selon critères
    Par stsym dans le forum VBA Access
    Réponses: 4
    Dernier message: 02/05/2013, 07h36
  2. Suppression de lignes selon critères
    Par gege765 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/10/2012, 19h41
  3. Cacher des colonnes selon critères
    Par Charlesraheb dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/07/2012, 10h42
  4. Suppression lignes identiques selon critères
    Par stsym dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 08/06/2011, 05h37
  5. Decompter les valeurs distinctes dans une colonne selon critéres
    Par neo79 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 23/08/2010, 22h17

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