VBA rechercher un mot,copier coller plage...

swell004 Messages postés 2 Statut Membre -  
 barnaby -
Bonjour,

Je suis novice en VBA et etant en stage et ayant un peu beaucoup arrondi sur les bord mon niveau en VBA a l entretien, je dois mtnt assumer :)!!

Je souhaite rechercher dans un onglet Sheet1 dans la ligne 8 un mot clef nomme "portfolio", puis copier coller la plage de cellule qui se trouve deux ligne en dessous et qui s etale sur 10 lignes et 5 colonnes a droite. Evidemment il y a pusieurs "portfolio" dans la ligne 8.

Et l'interet de ce programme serait de les coller dans un autre onglet sheet2 de maniere ordonnee, c'est a dire, coller ces plages de cellules les une en dessous des autres (disons a partir de A2)

J ai mis du temps a aller sur un forum car j ai pris le temps pdtt une sem pour voir si je pouvais me debrouiller tout seul mais force est ce constater q pour ce projet, ca ne m a pas suffit!

J ai pense utiliser une fonction Find, mais pour ce qui est de faire comprendre a l'ordi de copier coller les plages en dessous de ce mot "portfolio" c est m est impossible a fare

Merci de votre aide et de votre temps accorde!
Configuration: Windows Vista Internet Explorer 7.0

1 réponse

  1. swell004 Messages postés 2 Statut Membre
     
    j ai fait ca pour l instant :

    Sub test()
    Dim mot As String
    Dim i, k As Integer
    Dim montab(10) As Variant

    For i = 1 To 15
    mot = Worksheets("Sheet1").Range("A" & i & ":Z" & i).Value ' la ca bug

    If mot = "portfolio" Then
    For k = 1 To 10
    montab(k) = Range("A" & i + k & ":Z" & i + k + 5)
    Next
    End If

    Next

    For i = 2 To 10
    Worksheets("Sheet2").Range("A" & i) = montab(i)
    Next

    je ne veux plus me contenter de rechercher le "portfolio" ds la ligne 8 mais dans toute la feuille et ca me met erreur 13 si vous pouviez m aider! :(
    End Sub
    0
    1. barnaby
       
      Salut,

      Beaucoup trop compliqué ton code utilise la méthode de recherche .find
      set f =sheets("Sheet1").Range("A:Z").find(what:="portfolio")
      if not f is nothing then
      first = f.address
      do

      ici tes instructions

      set f =sheets("Sheet1").Range("A:Z").findnext(f)

      loop while not f Is Nothing And f.Address <> firstAddress
      end if

      Bonne continuation
      0