Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Sélectionner des lignes contenant un "d_" dans la colonne B

  • Initiateur de la discussion Initiateur de la discussion SEBDEBAZ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

SEBDEBAZ

XLDnaute Nouveau
Bonjour

Je cherche à selectionner toutes les lignes qui contiennent "d_" dans la colonne B à l'aide de Visual Basic.


Merci d'avance.
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Bonjour Seb

il faut utiliser la methode find de VB, mais sans plus d'explication sur ce que tu veux faire de ces lignes ....
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Bonjour et Merci beaucoup,je vais essayer le find

Le but est de sélectionner toutes les lignes qui contiennent dans leur colonne B "d_" pour copier ces lignes et les coller dans un autre classeur.Ceci dans une macro.

Le fait qu'il y ait "d_" dans cette colonne me permet de différencier des composants de nomenclature en tant que "débit".leur désignation commence tot le temps par "d_" puis la désignation.je les différencie donc parmis d'autres composants.
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Bonjour à tous,
Code:
Sub test()
Dim Plage As Range, c As Range
With Worksheets(1).Range("B1:B" & Range("B65500").End(xlUp).Row)

    Set c = .Find("d_")
    If Not c Is Nothing Then
        firstAddress = c.Address
        Set Plage = c
        
        Do
            Set c = .FindNext(c)
            Set Plage = Union(Plage, c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
Plage.Select
End Sub
Cordialement
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Merci Spitnolan08,

Désolé, j'ai oublié de préciser que j'étais en version 2000.
La macro s'arrête sur : "plage select", juste à la fin

C'est bizarre puisque tous le reste du code passe sans problème.As tu une idée?
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Re,
Essaye ceci :
Code:
Sub test()
Dim Plage As Range, c As Range
Dim Adr As String
With Worksheets(1).Range("B1:B" & Range("B65500").End(xlUp).Row)

    Set c = .Find("d_")
    If Not c Is Nothing Then
        firstAddress = c.Address
        Adr = c.Address
        Do
            Set c = .FindNext(c)
            Adr = Adr & "," & c.Address
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
Range(Adr).Select
End Sub
Fonctionne sur 2003 mais sur 2000?????

Cordialement
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Merci beaucoup pour votre intérêt et votre aide en particulier à Spitnolan08 et mutzik

Je ne comprends pas Spitnolan08 ça me sélectionne des cellules au lieu des lignes et ce ne sont pas des cellules contenant un "d_".

Dans le fichier joins, il y a un exemple .

Merci encore
 

Pièces jointes

Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Re,
Je ne comprends pas Spitnolan08 ça me sélectionne des cellules au lieu des lignes
C'est normal, je n'avais pas bien lu donc le code ne sélectionne que les cellules correspondantes. (Sans le fichier exemple, il était difficile de connaître la finalité...)
et ce ne sont pas des cellules contenant un "d_".
Par contre là je ne comprends pas : chez moi, c'est nickel...et je ne vois d'ailleurs pas pourquoi ce ne le serait pas.

Je regarde pour la ligne
Cordialement
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Re,
je te propose :
Code:
Sub test2()
'***Pour sélectionner les lignes correspondant au critère.
Dim Plage As Range, c As Range
Dim lig As String
With Worksheets(1).Range("B1:B" & Range("B65500").End(xlUp).Row)

    Set c = .Find("d_")
    If Not c Is Nothing Then
        firstAddress = c.Address
        lig = c.Row & ":" & c.Row
        Do
            Set c = .FindNext(c)
            lig = lig & "," & c.Row & ":" & c.Row
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
Range(Adr).Select
End Sub
Cordialement

Edit : Je crois savoir pourquoi tu n'as pas le bon résultat : Modifies le n° de With Worksheets(1) si c'est la 2ème page qui t'interesse et pour que le code fonctionne il faut que la bonne page soit activée. (S'applique également au 1er code transmis)
 
Dernière édition:
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Re, Concernant mon edit, modifies le code en :
Code:
Sub test2()
'***Pour sélectionner les lignes correspondant au critère.
Dim Plage As Range, c As Range
Dim lig As String
With ActiveSheet.Range("B1:B" & Range("B65500").End(xlUp).Row)

    Set c = .Find("d_")
    If Not c Is Nothing Then
        firstAddress = c.Address
        lig = c.Row & ":" & c.Row
        Do
            Set c = .FindNext(c)
            lig = lig & "," & c.Row & ":" & c.Row
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
ActiveSheet.Range(lig).Select
End Sub
Cela te traitera la page active dans tous les cas.

Cordialement
 
Dernière édition:
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

1000 MERCI Spitnolan08

CA MARCHE!!!!!!!!!!

Par contre il ne veut pas me faire un "Selection.Copy".Bizarre quand même
Car après il faut que je les colle dans une autre fichier.
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Bonsoir le fil.
Bonsoir, SEBDEBAZ, Spitnolan08

En suivant cette discussion, je pense qu(elle peut répondre à mon probléme.
Je cherche à utiliser un clearcontent pour chaque ligne dont la premiere cellule = 0.
En fait : aprés une série de formules, par le biais d'un copier/coller paste spéciale valeur, j'ai une plage de cellules renseignées (AJ17:AU876), aprés tri de cette plage colonne (AJ17:AJ876), j'ai des lignes renseignées avec des codes de 5 caractéres et des valeurs 0 dans (AJ17:AJ876), mais le nombres de lignes varie à chaque traitement
Je cherche à sélectionner les valeurs 0 dans (AJ17:AJ876) et effacer le contenu de la plage AJ:AU à chaque fois que la cellule est = 0
L'objectif est de transférer les lignes renseignées dans un autre classeur en utilisant a partir de AJ17, une instruction currentrégion.copy

Pouvez vous m'expliquer comment adapter le code de cette discussion.
J'utilise bien Excel en ce qui concerne les formules complexe et imbriquées, mais VBA je débute

Merçi d'avance

Bien à vous macjade62
PS: j'utilise pc XPSP2 et Excel 2003
 
Re : Sélectionner des lignes contenant un "d_" dans la colonne B

Bonsoir,
Pouvez vous m'expliquer comment adapter le code de cette discussion.
Code:
Sub test()
'***Pour sélectionner les lignes correspondant au critère.
Dim Plage As Range, c As Range
Dim Adr As String
With ActiveSheet.Range("AJ17:AJ" & Range("AJ65500").End(xlUp).Row)

    Set c = .Find(0, LookIn:=xlValues)
    If Not c Is Nothing Then
        firstAddress = c.Address
        Adr = c.Address
        lig = c.Row & ":" & c.Row
        Do
            Set c = .FindNext(c)
            Adr = Adr & "," & c.Address
            lig = lig & "," & c.Row & ":" & c.Row
        Loop While Not c Is Nothing And c.Address <> firstAddress
    End If
End With
ActiveSheet.Range(lig).Select
Selection.clearcontents
End Sub
Devrait convenir

Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Réponses
7
Affichages
329
Réponses
10
Affichages
295
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…