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 :

[VBA-E]Comment "conserver" une selection


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Par défaut [VBA-E]Comment "conserver" une selection
    Bonjour à tous,

    Dans une boucle, quel est le code qui permet de conserver plusieurs lignes selectionner (ces lignes peuvent ne pas se suivre).
    Afin de pouvoir "deleter" la selection après la boucle.

    (je ne sais pas comment aller chercher cette info dans la FAQ ...)

    Merci a tous pour votre aide

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonjour , Annick.w

    en utilisant "Union"

    un petit morceau de code à adapter

    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
    20
     
    Sub testA()
    Dim zAParcourir As Range 'Zone à parcourir
    Dim rL As Range 'ligne parcourue..
    Dim zADetruire As Range 'Zone à effacer
     
    Set zAParcourir = ThisWorkbook.Sheets(1).Range("A1").CurrentRegion
     
    For Each rL In zAParcourir.Rows
    If rL.Cells(1) = "X" Then 'par exemple s'il y as X dans 1° colonne...
      If zADetruire Is Nothing Then
         Set zADetruire = rL ' Pour la 1° ligne trouvée
      Else
        Set zADetruire = Union(zADetruire, rL) 'Rajoute une ligne
      End If
    End If
    Next
     
     zADetruire.Select 'Selectionne la zone pour montrer le resultat...
    End Sub

    pour effacer les lignes remplace .Select par .Delete (pas besoin de select..)

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Par défaut
    Bonjour bbil,
    Je n'ai pas très bien compris ton code, peux tu regarder ce que j'ai fait.

    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
    Sub TITI()
    Range("a1").Select
    Do
        If ActiveCell.Value = "40100000" And ActiveCell.Value <= "40110000" Then
            ActiveCell.EntireRow.Delete
        ElseIf ActiveCell.Value >= 41100000 And ActiveCell.Value <= 41110000 Then
            ActiveCell.EntireRow.Delete
        ElseIf ActiveCell.Value = "42810000" Then
            ActiveCell.EntireRow.Delete
        ElseIf ActiveCell.Value = "48860000" Then
            ActiveCell.EntireRow.Delete
        ElseIf ActiveCell.Value = 48870000 Then
            ActiveCell.EntireRow.Delete
        End If  
        ActiveCell.Offset(1, 0).Select
    Loop While ActiveCell.Value <> ""
    End Sub
    Je ne sais pas inserer un code !!!!

    Je dois supprimer les lignes qui commencent par ces N°, et là ou ça ne marche plus, c'est lorsque 2 lignes a supprimées se suivent. Lorsque la 1iere ligne est supprimèe, l'Offset est décalé et il saute la 2ième.
    Je comprends ce qui cloche mais je n'arrive pas a le resoudre.

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Par défaut
    Ouskel'n'or,
    Est ce que j'ai bien compris, tu me dis de remplacer la boucle do par une boucle for ?

    J'ai essayé, mais rien ne se passe...

    PS : J'ai supprimè les fourchettes.

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Annick.w,
    pourrai tu nous préciser les conditions de "delete" de tes lignes...? une valeur dans colonne A..?

  6. #6
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Par défaut
    Oui, oui, bbil, ce sont des valeurs en colonne A .

  7. #7
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Citation Envoyé par Annick.w
    Oui, oui, bbil, ce sont des valeurs en colonne A .
    pourrai tu m'en dire plus.. j'ai du mal à déchiffrer ton code pour déterminer "la régle" qui permet de savoir en fonction de la valeur en A si l'on doit effacer ou pas la ligne..?

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

Discussions similaires

  1. [VBA E]adresse de cellule d'une selection
    Par zoumzoum59 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/07/2006, 23h37
  2. [VBA][Excel] Comment faire pour faire une boucle?
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 29
    Dernier message: 19/12/2005, 14h48

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