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 :

modifier une variable "range"


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 35
    Points
    35
    Par défaut modifier une variable "range"
    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 suppression()
    
        Dim lngLimite As Long
        Dim rngCellule As Range, rngPlage As Range
    
        lngLimite = xlFlReponse.Range("A1:A65536").End(xlDown).Row
        Set rngPlage = xlFlReponse.Range("A1:A" & lngLimite)
    
        For Each rngCellule In rngPlage
        
        If rngCellule.Value = "Néant" Then
             rngCellule.EntireRow.Select
             Selection.Delete Shift:=xlUp
             rngCellule = rngCellule.Address - 1
            
        End If
        Next
    
    End Sub

    bonjour,

    j'aimerai supprimer les lignes d'une feuille dans lesquelles "Néant" se trouve dans la colonne A

    j'ai donc fait le programme ci-dessus, le souci est avec "rngCellule", car quand plusieurs "Néant" se succèdent, mon programme ne les détecte pas, du au faite que je supprime la ligne en entier, et que je décalé le reste du classeur d'une ligne.

    j'ai pensé, qu'il fallait avant la fin du "if", décrémenter "rngCellule", mais je ne sais pas comment m'y prendre

    faut-il utiliser "set" ?


    merci pas avance pour votre aide !


    coordialement

  2. #2
    Membre chevronné Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Points : 2 168
    Points
    2 168
    Par défaut
    l'astuce la plus simple est de parcourir le tableau a l'envers. Après j'ai jamais essayé de regardé le sens de parcour avec la commande for each
    Désolé
    « Il n'y a pas de recette miracle qui permet aux gens d’écrire des programmes corrects sans avoir à réfléchir. Il faut apprendre aux gens comment réfléchir »

  3. #3
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bonjour, la commande Find peut aussi être utile

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Pourquoi ne pas utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub suppression()
     Dim lngLimite&, i&
     lngLimite = Range("A65536").End(xlDown).Row
     
     For i = lngLimite To 1 Step -1
     
     If Cells(i, 1) = "Néant" Then
     Cells(i, 1).EntireRow.Select
     Selection.Delete Shift:=xlUp
     
     End If
     Next
    End Sub

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    merci a vous tous pour votre participation,

    effectivement Jacques_jean ta solution est beaucoup plus simple et fonctionnelle qui plus est


    cependant pour ma culture quelqu'un pourrai répondre à ma question initiale ?


    merci encore !

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/07/2006, 18h32
  2. Modifier une variable globale
    Par bahet dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/04/2006, 18h04
  3. modifier une variable dans un fichier
    Par Guismay dans le forum Langage
    Réponses: 7
    Dernier message: 11/09/2005, 19h46

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