2010-09-22 6 views
1

Je veux écrire un programme dans Visual Basic où je regarde la colonne L d'une feuille de calcul et recherche des cellules dans la colonne L qui contiennent "123". Je veux ensuite sélectionner les lignes qui contiennent "123" dans la colonne L, les copier et les coller dans une nouvelle feuille de calcul. Comment ferais-je cela? J'ai créé une macro, mais je ne suis pas sûr de la manière de la modifier afin de pouvoir trouver plusieurs éléments et obtenir toutes les lignes pour ces éléments multiples. Voici une partie de ce que la macro m'a donné:Dans Visual Basic pour Excel 2007, comment sélectionner des lignes qui contiennent un certain modèle?

Columns("L:L").Select 
Selection.Find(What:="123", After:=ActiveCell, LookIn:=xlFormulas, _ 
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False).Activate 
Rows("1058:1058").Select 
Selection.Copy 
Sheets("123").Select 
Rows("4:4").Select 
range("C4").Activate 
Selection.Insert Shift:=xlDown 
Rows("5:5").Select 
range("C5").Activate 

Répondre

3

recherche tous les 123s dans la colonne L et copie les lignes correspondant à Feuille2.
Modifiez au besoin.

Sub CopyRows() 
    Dim FoundRange As Range 
    Dim c As Range 

    For Each c In Application.Intersect(Columns("L"), UsedRange) 
    If c.Value like "*123*" Then 
     If FoundRange Is Nothing Then 
     Set FoundRange = c 
     Else 
     Set FoundRange = Application.Union(FoundRange, c) 
     End If 
    End If 
    Next 

    If Not FoundRange Is Nothing Then 
    FoundRange.EntireRow.Copy Worksheets("Sheet2").Range("A4") 
    End If 

End Sub 
+1

Vous pouvez choisir Si c.Value Comme "* 123 *" pour coïncider avec la partie xl de la recherche que l'OP utilise. –

+0

@Dick J'utilise au moins 15 caractères pour être d'accord avec vous. – GSerg

Questions connexes